2014-04-17 2 views
0

Il y a un commit, poussé etc dans l'histoire de notre repo. J'ai le SHA, et je voudrais courir l'équivalent de git revert /one/folder/* THESHAID, mais git revert ne semble pas avoir la capacité de changer seulement un dossier spécifique.Comment annuler une partie d'un commit?

Existe-t-il un moyen de répliquer cette fonctionnalité?

+0

Vous pouvez modifier manuellement le patch pour qu'il contienne des changements dans le choix répertoire seulement, puis rétablir le patch (patch -R -p1 ) & comm. – brokenfoot

Répondre

1

Ceci est assez farfelu, il n'y a pas de surprise, il n'y a pas un bouton-poussoir pour cela, surtout lorsque la méthode de la force brute est si facile:

git revert that_commit   # do the whole revert 
git reset --hard HEAD^   # in what turns out to have been a throwaway commit 
git checkout [email protected]{1} -- one/folder # and just take what you want of the results 
+0

Je viens de voter pour fermer cela comme un dup aussi, la réponse de @ vcsjones est conceptuellement plus propre mais plus clunkier dans l'exécution, faites votre choix. – jthill

+0

J'ai vérifié l'autre réponse .. la logique de ces commandes me semble beaucoup plus logique ... – Damon

Questions connexes