Menu
Coddy logo textTech

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.

git revert lässt den fehlerhaften Commit stehen und fügt einen neuen Commit hinzu, der ihn umkehrt - die Historie wird nie umgeschrieben.

Syntax

CommandWhat it does
git revert HEADMacht den jüngsten Commit rückgängig
git revert <hash>Macht einen bestimmten Commit per Hash rückgängig
git revert HEAD~2..HEADMacht 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.

CommandWhat it does
git revert --continueSetzt nach dem Lösen der Konflikte fort
git revert --abortBricht den laufenden Revert ab
git revert --skipÜberspringt den aktuellen Commit und fährt fort

revert vs reset

Behaviorgit revertgit reset
Schreibt die Historie umNeinJa
Sicher bei gepushten CommitsJaNein
Erstellt einen neuen CommitJaNein
Macht einen Commit in der Mitte rückgängigJaUmstä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.
Coddy programming languages illustration

Lerne Git mit Coddy

LOS GEHT'S