wake-up-neo.net

Wie kann ein Commit geändert werden, ohne die Commit-Nachricht zu ändern (wobei die vorherige wiederverwendet wird)?

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?

551

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.

853
Shaggie

git commit -C HEAD --amend wird machen was du willst. Die Option -C übernimmt die Metadaten aus einem anderen Commit.

105
Andy Ross

Eine andere (alberne) Möglichkeit ist git commit --amend <<< :wq, Wenn Sie vi (m) als $EDITOR Haben.

50
galva

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.

4
Rambatino

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

2
aljgom