Gibt es eine Möglichkeit, ein Commit zu ändern, ohne dass vi
(oder Ihr $EDITOR
) die Option zum Ändern Ihrer Commit-Nachricht angezeigt wird, sondern einfach die vorherige Nachricht wiederverwendet wird?
Gibt es eine Möglichkeit, ein Commit zu ändern, ohne dass vi
(oder Ihr $EDITOR
) die Option zum Ändern Ihrer Commit-Nachricht angezeigt wird, sondern einfach die vorherige Nachricht wiederverwendet wird?
Antworten:
Seit der Version 1.7.9 von Git können Sie auch git commit --amend --no-edit
Ihr Ergebnis abrufen .
Beachten Sie, dass dies keine Metadaten aus dem anderen Commit wie den Zeitstempel enthält, die für Sie möglicherweise wichtig sind oder nicht.
git commit -C HEAD --amend
wird tun was du willst. Die -C
Option übernimmt die Metadaten aus einem anderen Commit.
git config --global alias.amend 'commit --amend -C HEAD'
. Sie können dann git amend
als Verknüpfung verwenden.
--amend
, wird das Autorendatum auch ohne andere Option beibehalten (aber das Festschreibungsdatum wird geändert). Als solches habe ich meinen alten Kommentar entfernt.
—amend
. Sie können ein neues Commit erstellen, aber dieselbe Nachricht wie das vorherige Commit verwenden. Das mag nicht nützlich klingen, aber meine Commit-Nachricht ist standardmäßig, wenn ich nur meine Arbeit speichere, ohne mir eine nette Commit-Nachricht —message=“Work in progress (untested)”
Eine andere (dumme) Möglichkeit ist, git commit --amend <<< :wq
wenn Sie vi (m) als haben $EDITOR
.
... <<< ZZ
könnte noch weniger tippen;)
... <<< :x
:)
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 \"$@\"; \
fi;\
}; f"
dann kannst du tun
git oops
und es wird alles hinzufügen und mit der gleichen Nachricht ändern
oder
git oops -m "new message"
das Ersetzen der Nachricht zu ändern