Wenn Sie die Frage erneut lesen, klingt es so, als ob Sie Änderungen in Ihrem Arbeitsbaum rückgängig machen möchten und nicht Änderungen, die zuvor festgeschrieben wurden. Einige der anderen Antworten lassen jedoch den Eindruck entstehen, dass meine Lesung möglicherweise falsch ist. Könntest Du das erläutern?
Wenn sich die Änderungen nur in Ihrer Arbeitskopie befinden, können Sie dies am einfachsten tun, indem Sie die Änderungen vornehmen, die Sie beibehalten möchten:
git add -i <file>
Werfen Sie dann die Änderungen weg, die Sie nicht behalten möchten, indem Sie die Indexversion überprüfen:
git checkout -- <file>
Dann entfernen Sie die Änderungen, wenn Sie sie noch nicht inszenieren möchten:
git reset -- <file>
Dieses Rezept setzt nur ausgewählte Änderungen an der Datei (oder den von Ihnen angegebenen Dateien) zurück und erstellt kein temporäres Commit, das dann zurückgesetzt werden muss.
Wenn Sie nur einige der in früheren Festschreibungen vorgenommenen Änderungen selektiv anwenden möchten, können Sie zuerst eine Datei auf den vorherigen festgeschriebenen Status zurücksetzen:
git reset <commit_before_first_unwanted_change> -- <file>
Dann können Sie dem vorherigen Rezept folgen git add -i <file>
, um die Änderungen, die Sie behalten möchten, git checkout -- <file>
zu git reset -- <file>
inszenieren, die unerwünschten Änderungen wegzuwerfen und die Änderungen zu "entfernen".