Git: Den letzten Commit rückgängig machen
Zuletzt aktualisiert
Um den jüngsten Commit rückgängig zu machen, entscheide, was mit seinen Änderungen geschehen soll. Behalte sie mit git reset --soft HEAD~1 gestaged, behalte sie mit einem einfachen git reset HEAD~1 ungestaged oder verwirf sie mit git reset --hard HEAD~1. Ist der Commit nur leicht fehlerhaft, korrigiert ihn git commit --amend an Ort und Stelle. Ist er bereits gepusht, verwende git revert, statt die Historie umzuschreiben. Um einen älteren Commit oder mehrere auf einmal rückgängig zu machen, sieh dir die Seite zum Rückgängigmachen eines Commits an.
Probiere diese im Terminal-Playground aus - eine echte Shell in deinem Browser, nichts zu installieren.
Entscheide, was mit den Änderungen geschehen soll
| Goal | Command |
|---|---|
| Commit rückgängig machen, Änderungen gestaged behalten | git reset --soft HEAD~1 |
| Commit rückgängig machen, Änderungen ungestaged behalten | git reset HEAD~1 |
| Commit rückgängig machen, Änderungen verwerfen | git reset --hard HEAD~1 |
| Den letzten Commit korrigieren (Nachricht oder Dateien) | git commit --amend |
| Einen bereits gepushten Commit rückgängig machen | git revert HEAD |
Durchgearbeitetes Beispiel
Mache den letzten Commit rückgängig und committe ihn mit einer besseren Nachricht neu.
| Step | Command | Result |
|---|---|---|
| 1 | git reset --soft HEAD~1 | Commit entfernt, Änderungen bleiben gestaged |
| 2 | git commit -m "clearer message" | Dieselben Änderungen neu committen |
FAQ: Git letzten Commit rückgängig machen
Wie mache ich den letzten Commit rückgängig, behalte aber die Änderungen?
git reset --soft HEAD~1 aus. Das entfernt den letzten Commit, lässt seine Änderungen aber gestaged, sodass du sie sofort neu committen kannst. Damit die Änderungen stattdessen ungestaged in deinem Arbeitsverzeichnis liegen, verwende git reset HEAD~1 (der Standardmodus).Wie mache ich den letzten Commit rückgängig und lösche die Änderungen?
git reset --hard HEAD~1 aus. Das entfernt den Commit und verwirft seine Änderungen aus deinem Arbeitsverzeichnis. Es ist destruktiv: Falls du die Arbeit noch brauchen könntest, verwende stattdessen --soft oder stelle sie später über git reflog wieder her.Was, wenn ich nur die Commit-Nachricht korrigieren muss?
git commit --amend. Es öffnet den letzten Commit erneut, sodass du seine Nachricht bearbeiten (und bei Bedarf Dateien neu stagen) kannst, ohne einen separaten Commit zu erstellen. Vermeide es, einen bereits gepushten Commit zu amenden, da dies die Historie umschreibt.Wie mache ich den letzten Commit nach dem Push rückgängig?
git revert HEAD. Revert erstellt einen neuen Commit, der den letzten umkehrt, und lässt die Historie intakt: die sichere Wahl für geteilte Branches. Das Zurücksetzen eines gepushten Commits zwingt alle anderen, einen umgeschriebenen Branch abzugleichen.