git commit --amend
Definition und Verwendung
Bei der Arbeit mit Git vergisst man oft, den Commit zu erstellen oder eine Datei zu stagen. Der Befehl git commit --amend ist der einfachste Weg, solche Fehler zu korrigieren. Er wird verwendet, um die neuesten Commits zu bearbeiten. Anstatt einen völlig neuen Commit zu erstellen, können Sie diesen Befehl ausführen, um zwischengespeicherte Änderungen mit dem vorherigen Commit zu kombinieren. Darüber hinaus kann dieser Befehl die Nachricht des vorherigen Commits ändern, ohne dessen Snapshot zu verändern. Beachten Sie, dass git commit --amend den aktuellen Commit vollständig ersetzt. Im Folgenden werden wir einige Anwendungsmöglichkeiten für git commit --amend vorstellen.

Ändern der Nachricht des neuesten Git-Commits
Wenn Sie einen Commit erstellt haben und dabei einen Fehler in der Commit-Nachricht gemacht haben, können Sie git commit --amend ausführen, um die Nachricht des vorherigen Commits zu ändern, ohne dessen Snapshot zu verändern. Mit der Option -m können Sie eine neue Nachricht direkt über die Befehlszeile übergeben, ohne dass ein Editor geöffnet wird.
git commit --amend
git commit --amend -m "an updated commit message"Ändern von bereits committeten Dateien
Stellen Sie sich vor, Sie haben einige Dateien geändert, die Sie in einem einzigen Snapshot committen möchten, aber Sie haben vergessen, eine der Dateien beim ersten Mal hinzuzufügen. Sie können dieses Problem lösen, indem Sie die andere Datei stagen und den Commit mit dem Flag --amend durchführen. Fügen Sie das Flag --no-edit hinzu, um Ihren Commit zu ändern, ohne die Commit-Nachricht zu verändern. Dadurch wird der falsche Commit durch den korrekten ersetzt, und der Arbeitsablauf sieht wie folgt aus:
git commit --amend --no-edit
# Modify project.py and text.py
git add project.py
git commit
# You forgot to add the changes from text.py
git add text.py
git commit --amend --no-editVermeiden Sie das Ändern öffentlicher Commits
Tatsächlich sind geänderte Commits neue Commits, und nach dem Ändern eines Commits wird der vorherige Commit nicht aus dem aktuellen Branch entfernt. Daher sollten Sie niemals einen Commit ändern, an dem andere Teammitglieder arbeiten, da dies zu erheblichen Problemen bei der Zusammenarbeit führen wird. Wie Sie feststellen werden, sind die Folgen dieselben wie beim Zurücksetzen eines öffentlichen Snapshots.
Practice
Welche der folgenden Aussagen über den Befehl `git commit --amend` sind gemäß dem W3Docs Git-Tutorial korrekt?