Git Commit --amend
Zuletzt aktualisiert
git commit --amend ersetzt den neuesten Commit durch einen neuen und ermöglicht es dir, dessen Nachricht zu korrigieren oder Dateien hinzuzufügen, die du zu stagen vergessen hast. Es fügt keinen zweiten Commit hinzu; es schreibt den letzten neu. Da sich dadurch der Hash des Commits ändert, solltest du nur Commits amenden, die du noch nicht gepusht hast.
Probiere diese Befehle im Terminal-Playground aus - eine echte Shell in deinem Browser, nichts zu installieren.
Syntax
| Command | What it does |
|---|---|
git commit --amend | Bearbeitet den letzten Commit und seine Nachricht |
git commit --amend -m "new message" | Ändert die Nachricht des letzten Commits inline |
git commit --amend --no-edit | Fügt gestagte Dateien hinzu, behält die gleiche Nachricht |
Häufige Fälle
| Goal | Command |
|---|---|
| Einen Tippfehler in der letzten Nachricht korrigieren | git commit --amend -m "fixed message" |
| Eine vergessene Datei zum letzten Commit hinzufügen | git add file dann git commit --amend --no-edit |
| Einen bereits gepushten Commit amenden (Vorsicht) | amenden, dann git push --force-with-lease |
Git commit --amend FAQ
Wie ändere ich die Nachricht meines letzten Commits?
Führe
git commit --amend -m "new message" aus, um sie inline zu ersetzen, oder git commit --amend, um deinen Editor zu öffnen und sie dort neu zu schreiben. Das schreibt den letzten Commit mit der neuen Nachricht neu - tu das nicht bei einem bereits gepushten Commit, es sei denn, du bist bereit, einen Force Push durchzuführen.Wie füge ich eine vergessene Datei zum letzten Commit hinzu?
Stage die Datei mit
git add <file> und führe dann git commit --amend --no-edit aus. Das Flag --no-edit behält die bestehende Commit-Nachricht bei und faltet lediglich die neu gestagten Änderungen in den vorherigen Commit ein.Erstellt git commit --amend einen neuen Commit?
Nein - es ersetzt den letzten Commit, anstatt einen hinzuzufügen. Das Ergebnis sieht aus wie ein einzelner Commit, ist aber technisch ein neuer Commit mit einem neuen Hash, der an die Stelle des alten tritt. Deshalb erfordert das Amenden gemeinsamer Historie einen Force Push.
Ist es sicher, einen gepushten Commit zu amenden?
Nur mit Vorsicht. Amenden schreibt den Commit neu, sodass du nach dem Pushen
git push --force-with-lease benötigst, was jeden stören kann, der das Original bereits gepullt hat. Bevorzuge auf einem gemeinsamen Branch einen neuen Commit oder git revert statt zu amenden.Kann ich das online üben?
Ja. Öffne den Terminal-Playground, um
git commit --amend in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt auch das Korrigieren von Commits Schritt für Schritt.