Comment inverser un gros morceau spécifique d'un engagement dans git?
-
27-09-2019 - |
Question
Je me demande s'il y a un moyen de gros morceau spécifique rapidement inverse d'un commettras.
Je peux générer un diff
entre deux ou commits HEAD
pour voir la différence.
Comment inverser juste un de ces gros morceaux (ou mieux encore, un ensemble de hunks spécifiques)?
La solution
git checkout -p $REF -- path/to/file
Où $REF
est un nom ref ou commit ID qui spécifie le vous engage veulent prendre l'état de fichier. Par exemple, aux changements de manière sélective revert fait dans le dernier commit, l'utilisation HEAD^
.
Autres conseils
git difftool $REF -- /path/to/file
où $REF
est un nom ref ou commit ID qui spécifie le vous engage veulent prendre l'état de fichier. Par exemple, aux changements de manière sélective revert fait dans le dernier commit, l'utilisation HEAD ^.
Cette question a été déjà répondu par @cdhowie, mais je trouve un peu plus agréable d'utiliser un difftool interactif comme meld
pour restaurer de manière sélective les anciens hunks / lignes de code, en particulier s'il y a un nouveau présenté, difficile à trouver bug dans le code.
Pour récupérer un fichier supprimé d'un commettras précédent je la réponse ici:
trouver et restaurer un fichier supprimé dans un dépôt Git
git checkout <deleting_commit>^ -- <file_path>