Git Revert
Zuletzt aktualisiert
git revert macht einen Commit rückgängig, indem es einen neuen Commit erstellt, der die Umkehrung seiner Änderungen anwendet. Da es die Historie ergänzt statt sie umzuschreiben, ist revert der sichere Weg, einen bereits gepushten Commit rückgängig zu machen - anders als git reset zwingt es niemanden dazu, einen umgeschriebenen Branch abzugleichen.
Probiere diese Befehle im Terminal-Playground aus - eine echte Shell in deinem Browser, nichts zu installieren.
Syntax
| Command | What it does |
|---|---|
git revert HEAD | Macht den jüngsten Commit rückgängig |
git revert <hash> | Macht einen bestimmten Commit per Hash rückgängig |
git revert HEAD~2..HEAD | Macht einen Commit-Bereich rückgängig |
git revert -n <hash> | Macht rückgängig, committet aber noch nicht (nur stagen) |
git revert -m 1 <merge-hash> | Macht einen Merge-Commit rückgängig und behält Elternteil 1 |
Während eines Reverts
Wenn der Revert auf einen Konflikt stößt, löse ihn und fahre fort.
| Command | What it does |
|---|---|
git revert --continue | Setzt nach dem Lösen der Konflikte fort |
git revert --abort | Bricht den laufenden Revert ab |
git revert --skip | Überspringt den aktuellen Commit und fährt fort |
revert vs reset
| Behavior | git revert | git reset |
|---|---|---|
| Schreibt die Historie um | Nein | Ja |
| Sicher bei gepushten Commits | Ja | Nein |
| Erstellt einen neuen Commit | Ja | Nein |
| Macht einen Commit in der Mitte rückgängig | Ja | Umständlich |
git revert - Häufige Fragen
Was ist der Unterschied zwischen git revert und git reset?
git revert fügt einen neuen Commit hinzu, der die Änderungen eines früheren rückgängig macht, und lässt die Historie intakt - sicher für Commits, die du bereits gepusht hast. git reset verschiebt deinen Branch-Zeiger zurück und schreibt die Historie um, was bei lokalen Commits in Ordnung ist, aber bei geteilten Branches gefährlich. Nutze revert, um öffentliche Commits rückgängig zu machen, und reset für lokale.Wie mache ich einen bereits gepushten Commit rückgängig?
Führe
git revert <hash> aus (oder git revert HEAD für den neuesten) und pushe dann den neuen Revert-Commit. Da revert die Historie nicht umschreibt, ist das der richtige Weg, einen geteilten Commit rückgängig zu machen - kein Force-Push und keine Störung für Teamkollegen, die ihn bereits gepullt haben.Wie mache ich einen Merge-Commit rückgängig?
Ein Merge-Commit hat zwei Elternteile, also muss Git wissen, welche Historienlinie beibehalten werden soll. Nutze
git revert -m 1 <merge-hash>, wobei -m 1 Git anweist, den ersten Elternteil (normalerweise den Branch, in den du gemergt hast) zu behalten. Einen Merge rückgängig zu machen nimmt die gemergten Änderungen zurück, behält den Merge aber in der Historie.Kann ich mehrere Commits auf einmal rückgängig machen?
Ja. Übergib einen Bereich wie
git revert HEAD~2..HEAD, um die letzten beiden Commits rückgängig zu machen, oder liste mehrere Hashes auf. Git erstellt standardmäßig einen Revert-Commit pro rückgängig gemachtem Commit; füge -n hinzu, um alle Rücknahmen ohne Commit zu stagen, und erstelle dann selbst einen einzigen Commit.Kann ich das online üben?
Ja. Öffne den Terminal-Playground, um
git revert in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt das Rückgängigmachen von Änderungen ebenfalls Schritt für Schritt.