Sie können verwenden git checkout -p, um einzelne Hunks aus dem Unterschied zwischen Ihrer Arbeitskopie und dem Index zum Zurücksetzen auszuwählen. Ebenso git add -pkönnen Sie Hunks auswählen, die dem Index hinzugefügt werden sollen, und git reset -pSie können einzelne Hunks aus dem Unterschied zwischen Index und HEAD auswählen, um aus dem Index auszusteigen.
$ git checkout -p file/to/partially/revert
# or ...
$ git checkout -p .
Wenn Sie Ihr Git-Repository vorab als Snapshot erstellen möchten, um diese Änderungen vor dem Zurücksetzen beizubehalten, gehe ich wie folgt vor:
$ git stash; git stash apply
Wenn Sie das häufig verwenden, möchten Sie es möglicherweise als Alias verwenden:
[alias]
checkpoint = !git stash; git stash apply
Das Zurücksetzen einzelner Hunks oder Zeilen kann noch einfacher sein, wenn Sie einen guten Editor-Modus oder ein Plugin verwenden, das möglicherweise die Auswahl von Zeilen unterstützt, die direkt zurückgesetzt werden sollen, da -pdie Verwendung manchmal etwas umständlich sein kann. Ich benutze Magit , einen Emacs-Modus, der für die Arbeit mit Git sehr hilfreich ist. In Magit können Sie ausführen magit-status, die Unterschiede für die Änderungen finden, die Sie zurücksetzen möchten, die Zeilen auswählen, die Sie zurücksetzen möchten (oder einfach den Cursor auf Hunks setzen, die Sie zurücksetzen möchten, wenn Sie stattdessen jeweils einen Hunk zurücksetzen möchten jeweils eine Zeile) und drücken Sie k, um diese bestimmten Zeilen zurückzusetzen. Ich kann Magit nur empfehlen, wenn Sie Emacs verwenden.