Wie umkehren ich ein bestimmtes Stück von einem in git commit?
-
27-09-2019 - |
Frage
Ich frage mich, ob es einen Weg, um schnell Reverse-spezifische großes Stück ist von einem Commit.
ich eine diff
zwischen zwei Commits erzeugen kann oder HEAD
den Unterschied zu sehen.
Wie umkehren ich nur eines dieser großen Stücke (oder besser noch, eine Reihe spezifischer hunks)?
Lösung
git checkout -p $REF -- path/to/file
Wo $REF
a ref Name oder ID begehen, der angibt, die verpflichten Sie die Datei Zustand zu nehmen. selektiv revert Zum Beispiel, um Änderungen in der letzten Übertragung, Nutzung HEAD^
gemacht.
Andere Tipps
git difftool $REF -- /path/to/file
Dabei gilt $REF
a ref Name oder ID begehen, der angibt, die verpflichten Sie die Datei Zustand zu nehmen. selektiv revert Zum Beispiel, um Änderungen der letzten begehen, verwenden sie HEAD ^ gemacht.
Diese Frage wurde bereits von @cdhowie beantwortet, aber ich finde es etwas schönere, um eine interaktive difftool wie meld
verwenden selektiv wiederherstellen alte große Stücke / Zeilen Code, vor allem, wenn es ein neu eingeführten, schwer zu findende Fehler im Code.
eine gelöschte Datei wiederherstellen aus einem früheren begehen habe ich die Antwort hier:
finden und eine gelöschte Datei in einem Git-Repository
git checkout <deleting_commit>^ -- <file_path>