更改上次提交消息而不提交最新更改

时间:2012-07-01 23:19:38

标签: git

我理想的工作流程包括以下步骤

  1. 编辑代码
  2. 编译
  3. git commit -a -m“commit message”
  4. 开始运行新的二进制文件,测试等(可能需要10多分钟)
  5. 启动新的更改,而二进制文件仍在运行
  6. 当步骤#4完成后,编辑步骤#3的提交消息,而不提交步骤#5中引入的更改,添加,例如,“test FOO failed”
  7. 我无法使用git commit -a --amend -m "new commit message",因为这也会提交新的更改。我不确定我是否想要分期或分支。我希望我可以编辑提交消息而不提交任何新的更改。有可能吗?

3 个答案:

答案 0 :(得分:12)

这里没有必要藏匿或做任何其他事情。

git commit --amend -m 'Your new message.'

不会提交任何新的更改(请注意缺少-a标志),前提是您尚未将它们显式添加到索引中(例如,使用git add)。

答案 1 :(得分:4)

只需:

$ git stash
$ git commit --amend -m "Your Modified Message"
$ git stash apply

答案 2 :(得分:2)

您也可以使用:

git rebase -i HEAD^

这将打开您的文本编辑器,让您更改上次提交。您需要使用pick替换行开头的单词reword,保存文件并退出。之后,将打开一个新的文本编辑器,让您更改提交消息。

这听起来比建议的git commit --amend方法更有效,但也适用于较旧的提交。因此,如果您发现要在过去十次提交中更改两条消息,则可以运行git rebase -i HEAD~10并再次将单词pick更改为reword并更改这两条消息。

只是为了好奇:-i代表交互式变基