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-editIhr 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 --amendwird tun was du willst. Die -COption übernimmt die Metadaten aus einem anderen Commit.
git config --global alias.amend 'commit --amend -C HEAD'. Sie können dann git amendals 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 <<< :wqwenn Sie vi (m) als haben $EDITOR.
... <<< ZZkö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