2012-04-19 19 views
374

Gibt es eine Möglichkeit, ein Commit ohne vi (oder $EDITOR) zu ändern, indem Sie die Option zum Ändern Ihrer Commit-Nachricht anzeigen, aber einfach die vorherige Nachricht erneut verwenden?Wie kann ein Commit geändert werden, ohne die Commit-Nachricht zu ändern (die vorherige erneut zu verwenden)?

+1

duplizieren: http://stackoverflow.com/questions/5307417/can-i-skip-the-commit-message-step-when-i-run-git-commit-amend –

+4

Ich würde meine eigene Frage downvote nach dem Lernen auf die harte Tour das Übel der Änderung. –

+10

Solange Sie sich an gewisse Regeln halten (wie zum Beispiel, dass Sie nicht etwas ändern, was bereits vorangetrieben wurde), gibt es keinen Grund, warum eine Änderung eine schlechte Sache sein muss. – paullb

Antwort

567

Seit Version git 1.7.9 können Sie auch git commit --amend --no-edit verwenden, 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 wichtig sein kann oder nicht.

+27

Sie können Erleichtern Sie es auch, das --no-edit-Flag durch Hinzufügen eines Alias ​​zu ändern: "affect = commit -a --amend --no-edit" – Jherico

+16

Sie müssen lieben 'git README.md && git commit --amend hinzufügen --no-edit && git push -f' –

+0

Ich hatte gehofft, dass dies ohne '--amend' funktionieren würde, aber es scheint, dass es nicht :( –

81

git commit -C HEAD --amend wird tun, was Sie wollen. Die Option -C übernimmt die Metadaten von einem anderen Commit.

+7

Nur um Andys Antwort hinzuzufügen. Wenn Sie dies häufig tun, können Sie einen Alias ​​dafür einrichten, indem Sie 'git config --global alias.amend 'commit --amend -C HEAD'' verwenden. Sie können dann 'git affen' als Abkürzung verwenden. – mikej

+7

Komm schon, Leute, sei nicht faul, verbessere git und benutze den eingebauten Befehl, den Shaggle vorschlägt! Plus eine für -C Option. –

+3

Nicht nur Zeitstempel, sondern auch die Autoreninformation! – user1338062

32

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

+18

Auch wenn das für diesen Anwendungsfall nicht notwendig ist, war mir nicht bewusst, dass Sie eine Verbindung zu vim herstellen können. Das eröffnet einige faszinierende Möglichkeiten. Tolles Trinkgeld. –

+3

'... <<< ZZ' könnte noch weniger tippen;) – Ruslan

+1

..und noch weniger -' ... <<<: x' :) – skwisgaar