Gibt es eine Möglichkeit, einen Commit zu ändern, ohne dass vi
(oder Ihr $EDITOR
) Mit der Option angezeigt wird, Ihre Commit-Nachricht zu ändern, aber einfach die vorherige Nachricht erneut zu verwenden?
Seit der Version 1.7.9 können Sie auch git commit --amend --no-edit
, um Ihr Ergebnis zu erhalten.
Beachten Sie, dass dies keine Metadaten aus dem anderen Commit enthält, z. B. den Zeitstempel, der für Sie möglicherweise wichtig ist oder nicht.
git commit -C HEAD --amend
wird machen was du willst. Die Option -C übernimmt die Metadaten aus einem anderen Commit.
Eine andere (alberne) Möglichkeit ist git commit --amend <<< :wq
, Wenn Sie vi (m) als $EDITOR
Haben.
Um die akzeptierte Antwort zu erweitern, können Sie auch Folgendes tun:
git commit --amend --no-edit -a
um die aktuell geänderten Dateien hinzuzufügen.
Verwenden der akzeptierten Antwort zum Erstellen eines Alias
oops = "!f(){ \
git add -A; \
if [ \"$1\" == '' ]; then \
git commit --amend --no-edit; \
else \
git commit --amend \"[email protected]\"; \
fi;\
}; f"
dann kannst du machen
git oops
und es wird alles hinzugefügt und mit der gleichen Nachricht geändert
oder
git oops -m "new message"
ersetzen der Nachricht zu ändern