Comment inverser un morceau spécifique d'un commit dans git?
Je me demande s'il existe un moyen d'inverser rapidement un morceau spécifique d'un commit.
Je peux générer un diff
entre deux commits ou HEAD
pour voir la différence.
Comment puis-je inverser un seul de ces mecs (ou mieux encore, un ensemble de mecs spécifiques)?
3 réponses
git checkout -p $REF -- path/to/file
Où $REF
est un nom de ref ou un ID de commit qui spécifie le commit à partir duquel vous voulez prendre l'état du fichier. Par exemple, pour annuler sélectivement les modifications apportées lors de la dernière validation, utilisez HEAD^
.
git difftool $REF -- /path/to/file
Où $REF
est un nom de ref ou un ID de commit qui spécifie le commit à partir duquel vous voulez prendre l'état du fichier. Par exemple, pour annuler sélectivement les modifications apportées lors de la dernière validation, utilisez HEAD^.
Cette question a déjà été répondue par @cdhowie, mais je trouve qu'il est un peu plus agréable d'utiliser un difftool interactif comme meld
pour restaurer sélectivement de vieux morceaux/lignes de code, surtout s'il y a un bug nouvellement introduit, difficile à trouver dans le code.
Pour récupérer un fichier supprimé d'un commit précédent, j'ai utilisé la réponse ici:
De Trouver et de restaurer un fichier supprimé dans un dépôt Git
git checkout <deleting_commit>^ -- <file_path>