Git: Einen Commit rückgängig machen
Zuletzt aktualisiert
Wie du einen Commit rückgängig machst, hängt davon ab, um welchen Commit es geht und ob er schon gepusht wurde. Ein älterer Commit tief in deiner Historie - oder alles, was bereits geteilt ist - verlangt nach git revert, das einen neuen Commit hinzufügt, der ihn umkehrt, ohne irgendetwas umzuschreiben. Eine Reihe frischer lokaler Commits lässt sich einfach mit git reset entfernen. Wenn du nur den jüngsten Commit rückgängig machen musst, behandelt die Seite zum Rückgängigmachen des letzten Commits jede Variante dieses schnellen Handgriffs.
Probiere diese Befehle im Terminal-Playground aus - eine echte Shell in deinem Browser, nichts zu installieren.
Welcher Befehl zu verwenden ist
| Situation | Command |
|---|---|
| Einen älteren Commit rückgängig machen, alles danach behalten | git revert <hash> |
| Einen bereits gepushten Commit rückgängig machen | git revert <hash> |
| Die letzten 3 lokalen Commits rückgängig machen, Arbeit behalten | git reset --soft HEAD~3 |
| Die letzten 3 lokalen Commits rückgängig machen, Arbeit verwerfen | git reset --hard HEAD~3 |
| Einen Bereich mit neuen Umkehr-Commits rückgängig machen | git revert HEAD~3..HEAD |
reset vs revert
| Behavior | git reset | git revert |
|---|---|---|
| Schreibt die Historie neu | Ja | Nein |
| Sicher bei gepushten Commits | Nein | Ja |
| Erstellt einen neuen Commit | Nein | Ja |
| Funktioniert bei alten Commits mitten in der Historie | Nein | Ja |
| Kann Änderungen verwerfen | Ja (--hard) | Nein |
Durchgearbeitetes Beispiel
Mache einen bestimmten älteren Commit rückgängig - selbst einen bereits gepushten - ohne die Commits danach anzutasten.
| Step | Command | Result |
|---|---|---|
| 1 | git log --oneline | Finde den Hash des fehlerhaften Commits (z. B. a1b2c3d) |
| 2 | git revert a1b2c3d | Ein neuer Commit kehrt ihn um; spätere Commits bleiben unberührt |
| 3 | git push | Teile die Korrektur - keine Historie wurde umgeschrieben |
FAQ: Git-Commit rückgängig machen
Wie mache ich einen älteren Commit rückgängig, ohne die Commits danach zu verlieren?
git revert <hash>. Revert erstellt einen neuen Commit, der nur den von dir genannten umkehrt - jeder Commit danach bleibt exakt so, wie er war. Finde den Hash zuerst mit git log --oneline. Kollidiert der Revert mit späteren Änderungen, hält Git an, damit du sie lösen und git revert --continue ausführen kannst.Wie mache ich mehrere Commits auf einmal rückgängig?
git reset --soft HEAD~3 die letzten drei und behält ihre Änderungen gestaged (mit --hard verwirfst du sie). Bei gepushten Commits revertest du stattdessen den Bereich: git revert --no-commit HEAD~3..HEAD kehrt alle drei um, und ein einzelnes git commit hält das Rückgängigmachen fest.Wie mache ich einen bereits gepushten Commit rückgängig?
git revert <hash> statt reset. Revert erstellt einen neuen Commit, der die Änderungen des Ziel-Commits rückgängig macht, und lässt die Historie intakt. Das ist der sichere Weg, geteilte Commits rückgängig zu machen: Gepushte Historie mit reset umzuschreiben, zwingt alle anderen, ihre Kopien abzugleichen.