2012-04-19 40 views
374

有沒有一種方法可以在沒有vi(或您的$EDITOR)的情況下修改提交,並提供修改提交消息的選項,但只需重新使用以前的消息?如何在不改變提交信息的情況下修改提交(重用前一個)?

+1

重複:http://stackoverflow.com/questions/5307417/can-i-skip-the-commit-message-step-when-i-run-git-commit-amend – 2013-03-06 20:17:10

+4

我會downvote我自己的問題在學習了艱難的方式之後修改的罪惡。 – 2014-08-11 06:35:47

+10

只要你遵守某些規則(比如不修改已經推送的東西),沒有理由爲什麼修改必須是壞事。 – paullb 2014-10-20 09:48:25

回答

567

既然git 1.7.9版本,你也可以用git commit --amend --no-edit來得到你的結果。

請注意,這不包括來自其他提交的元數據,例如對您而言可能重要或可能不重要的時間戳。

+27

您可以還可以通過添加別名來更輕鬆地默認爲--no-edit標誌:「amend = commit -a --amend --no-edit」 – Jherico 2013-04-22 21:00:44

+16

你必須愛上'git add README.md && git commit --amend --no-edit && git push -f' – 2014-02-13 10:44:49

+0

我希望這可以在沒有'--amend'的情況下工作,但它似乎不會:( – 2015-08-18 00:58:27

81

git commit -C HEAD --amend會做你想做的。 -C選項從另一個提交獲取元數據。

+7

只需添加到Andy的答案。如果這是你經常做的事情,那麼你可以使用'git config --global alias.amend'commit --amend -C HEAD''爲它設置一個別名。然後你可以使用'git modify'作爲快捷方式。 – mikej 2012-04-19 21:35:35

+7

來吧,不要懶惰,請升級git並使用Shaggle建議的內置命令!加一個-C選項。 – 2012-06-26 15:56:50

+3

不僅時間戳,而且作者信息! – user1338062 2015-08-27 15:20:59

32

如果您已將vi(m)設置爲$EDITOR,則另一個(愚蠢的)可能性爲git commit --amend <<< :wq

+18

即使這個用例沒有必要,我也沒有意識到你可以管到vim。這開闢了一些有趣的可能性。偉大的提示。 – 2016-01-11 20:38:11

+3

'... <<< ZZ'可能更少打字;) – Ruslan 2016-09-04 12:10:28

+1

..甚至更少 - '... <<<:x' :) – skwisgaar 2016-12-01 14:19:11

相關問題