在GitHub中编辑git commit消息

时间:2012-05-23 21:52:49

标签: git github commit post-commit

提交后,是否有任何方法可以在GitHub.com中在线编辑提交消息?

从命令行,可以执行

git commit --amend -m "New commit message"

正如another question中正确建议的那样。

尝试git pull然后git push已经有效(没有任何其他提交同时受到干扰)。

但可以通过GitHub网站完成吗?

7 个答案:

答案 0 :(得分:117)

GitHub执行此操作的说明:

  1. 在命令行上,导航到包含要修改的提交的存储库。
  2. 键入git commit --amend,然后按Enter键。
  3. 在文本编辑器中,编辑提交消息并保存提交。
  4. 使用git push --force example-branch命令强制推送旧提交。
  5. 来源:https://help.github.com/articles/changing-a-commit-message/

答案 1 :(得分:87)

不,这不是直接可能的。每个Git提交的哈希也是基于提交消息计算的。更改提交消息时,更改提交哈希。如果你想推送那个提交,你必须强制推送(git push -f)。但是,如果已经有人撤回了您的旧提交并开始基于该提交的工作,他将不得不将他的工作重新设置为您的新提交。

答案 2 :(得分:30)

您需要git push -f假设之前没有人撤过其他提交。当心,你正在改变历史。

答案 3 :(得分:3)

不,因为提交消息与提交SHA /哈希相关,如果我们更改它,则提交SHA也会更改。我使用的方法是在该提交上创建注释。我不能想到另一种方式。

答案 4 :(得分:3)

对于intellij用户: 如果您希望以交互方式对过去的提交进行更改,而这些更改不会被推送,请按照 Intellij 中的以下步骤操作:

  • 选择版本控制
  • 选择日志
  • 右键单击要修改其注释的提交
  • 点击 reword
  • 完成

希望有帮助

答案 5 :(得分:0)

对于Android Studio / intellij用户:

  • 选择版本控制
  • 选择日志
  • 右键单击要重命名的提交
  • 点击编辑提交消息
  • 写您的提交消息
  • 完成

答案 6 :(得分:0)

我被要求修改我在 github 上提交的补丁提交消息,(最后到了这里。)这就是我为完成工作所做的。

git clone git@github.com:YOURNAME/EXAMPLE.git; cd EXAMPLE; git fetch --all; git pull --all
git checkout -b patch-2 origin/patch-2 # create local patch-2 branch
git commit --amend # update the commit message
git push -f

这适用于分支上的最后一次提交。如果有问题的提交更深,您将需要做一些更复杂的事情。 (我不知道是否需要 fetch 和 pull,但我只是在处理其他事情时跳过那一行以节省时间。)