Combien de livraisons avez-vous besoin de revenir en arrière et sélectionner à partir de? Si c'est juste une, peut-être prendre une branche juste avant, extrayez le fichier que vous avez commis, et ensuite utiliser git add -p
pour l'ajouter comment vous vouliez qu'il. Ensuite, vous pouvez retourner à l'endroit où vous étiez et extraire le fichier à partir de votre temp branche.
c'est:
git checkout -b temp troublesome-commit^
git checkout troublesome-commit -- path/to/file
git add -p path/to/file
git commit -c troublesome-commit
git checkout @{-1}
git checkout temp -- path/to/file
git commit path/to/file
git branch -D temp
D'autres options incluent de revenir et de l'édition de s'engager avec git rebase -i
(marquage de la valider en tant que edit
, puis de faire un git reset HEAD^
et de refaire la validation en cas de chute dans l'interpréteur de commandes).
Si les changements que vous devez sélectionner à partir, sont réparties sur une série de commits, il peut être préférable de les extraire, les patchs (ou un patch couvrant l'ensemble des cas) et de la main-d'éditer le patch, prenant les changements que vous voulez garder et de nourrir les résiduelle en git apply --reverse
.