6

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

  1. 编辑代码
  2. 编译
  3. git commit -a -m "提交信息"
  4. 开始运行新的二进制文件、测试等(可能需要 10 多分钟)
  5. 开始新的更改,而二进制文件仍在运行
  6. 当第 4 步完成后,编辑第 3 步的提交消息,而不提交第 5 步中引入的更改,例如添加“测试 FOO 失败”

我不能使用git commit -a --amend -m "new commit message",因为这也会提交新的更改。我不确定我是否要为分期或分支而烦恼。我希望我可以只编辑提交消息而不提交任何新更改。可能吗?

4

3 回答 3

15

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

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

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

于 2012-07-02T03:13:16.400 回答
4

只是:

$ git stash
$ git commit --amend -m "Your Modified Message"
$ git stash apply
于 2012-07-01T23:35:05.770 回答
2

您还可以使用:

git rebase -i HEAD^

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

这听起来比建议的git commit --amend方法多一点工作,但也适用于较旧的提交。因此,如果您发现要更改最近十次提交中的两条消息,您可以再次运行git rebase -i HEAD~10并将单词更改为并更改这两条消息。pickreword

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

于 2014-03-05T17:34:04.640 回答