Commits Zurücksetzen
Swipe um das Menü anzuzeigen
Im umfangreichen Bereich der Versionskontrolle mit Git tritt häufig das Szenario auf, dass Änderungen, die durch einen bestimmten Commit eingeführt wurden, rückgängig gemacht werden müssen. Gründe hierfür können das Entdecken eines Fehlers, die Erkenntnis, dass eine Funktion noch nicht produktionsreif ist, oder der Wunsch nach einer anderen Herangehensweise sein.
Glücklicherweise stellt Git den Befehl git revert zur Verfügung, um einen neuen Commit zu erstellen, der die durch den spezifischen Commit eingeführten Änderungen durch das Umkehren dieser Änderungen rückgängig macht.
Den letzten Commit rückgängig machen
Um den letzten Commit rückgängig zu machen, verwende folgenden Befehl:
git revert HEAD
HEAD ist ein Zeiger auf den neuesten Commit im aktuellen Branch.
Da es nur einen Branch gibt, zeigt HEAD auf den neuesten Commit. Dieser Befehl erstellt einen neuen Commit, der die Änderungen des vorherigen rückgängig macht. Git öffnet den Standard-Texteditor, um bei Bedarf die Commit-Nachricht zu bearbeiten. Speichern und schließen Sie den Editor, um das Revert abzuschließen.
Beispiel-Workflow
Fügen Sie zunächst eine neue Zeile zur Datei recipe.txt mit dem nächsten Schritt hinzu und committen Sie die Änderung direkt, ohne den Staging-Bereich zu verwenden:
echo "8. Peel the eggs" > recipe.txt
git commit -a -m "Add another step to the recipe"
Zeige nun die detaillierten Informationen dieses Commits mit dem Befehl git show und HEAD an:
git show HEAD
Ups, alle vorherigen Zeilen wurden gelöscht, weil der falsche Ausgabebefehl verwendet wurde — > statt >>, wodurch die Datei überschrieben wurde.
Kein Problem; mit dem Befehl git revert lassen sich diese Änderungen im neuesten Commit rückgängig machen:
git revert HEAD
Wie Sie sehen, öffnet sich der Standard-Texteditor (Vim in diesem Fall) mit einer Standard-Commit-Nachricht. Lassen Sie diese vorerst unverändert, aber in realen Projekten wird empfohlen, den Grund für das Zurücksetzen anzugeben, zum Beispiel:
Revert "Add another step to the recipe"
Reason for rollback: the recipe.txt was overwritten.
This reverts commit b1148490543882f038069a0233a5d7e0b33f6221.
Um Änderungen zu speichern und Vim zu verlassen, die Escape-Taste und zweimal den Großbuchstaben Z drücken.
Abschließend die Änderungen in den beiden letzten Commits anzeigen:
git log -p -2
Im Grunde wurde erwartungsgemäß ein neuer Commit mit den umgekehrten Änderungen erstellt.
Mit den Pfeiltasten nach oben oder unten scrollen und mit der q-Taste beenden.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen