Menu
Coddy logo textTech

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

SituationCommand
Einen älteren Commit rückgängig machen, alles danach behaltengit revert <hash>
Einen bereits gepushten Commit rückgängig machengit revert <hash>
Die letzten 3 lokalen Commits rückgängig machen, Arbeit behaltengit reset --soft HEAD~3
Die letzten 3 lokalen Commits rückgängig machen, Arbeit verwerfengit reset --hard HEAD~3
Einen Bereich mit neuen Umkehr-Commits rückgängig machengit revert HEAD~3..HEAD

reset vs revert

Behaviorgit resetgit revert
Schreibt die Historie neuJaNein
Sicher bei gepushten CommitsNeinJa
Erstellt einen neuen CommitNeinJa
Funktioniert bei alten Commits mitten in der HistorieNeinJa
Kann Änderungen verwerfenJa (--hard)Nein

Durchgearbeitetes Beispiel

Mache einen bestimmten älteren Commit rückgängig - selbst einen bereits gepushten - ohne die Commits danach anzutasten.

StepCommandResult
1git log --onelineFinde den Hash des fehlerhaften Commits (z. B. a1b2c3d)
2git revert a1b2c3dEin neuer Commit kehrt ihn um; spätere Commits bleiben unberührt
3git pushTeile 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?
Verwende 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?
Bei rein lokalen Commits entfernt 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?
Verwende 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.
Wann sollte ich reset und wann revert verwenden?
Reset, wenn die Commits dir allein gehören und noch lokal sind: Es setzt den Branch einfach zurück, als hätte es sie nie gegeben. Revert, wenn der Commit gepusht, geteilt oder mitten in der Historie ist: Es macht die Änderungen mit einem neuen Commit rückgängig, den alle gefahrlos pullen können.
Kann ich das online üben?
Ja. Öffne den Terminal-Playground, um diese Befehle 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