如何在Git上重新推送固定提交?

时间:2014-06-09 15:19:29

标签: git bitbucket-server

我修复了一些代码并用不正确的提交消息推送它。当我试图修复提交消息时,我意外地恢复了提交。现在的情况是:

  • 最新提交=正确提交消息,但先前提交的更改已撤消
  • 以前的提交=正确的提交内容,但错误的提交消息

所有这些都已经推送到服务器。

我希望摆脱最新提交,更改上一次提交的提交消息,并将其推送回服务器。

我对Atlassian Source Tree的解决方案感到满意,但命令行也没问题。

2 个答案:

答案 0 :(得分:5)

如果它是最后一次提交,那很简单:

git commit --amend

这会使编辑器显示最后一次提交消息,并允许您编辑消息。 (如果要删除旧消息并使用新消息,可以使用-m。)

然后当你推动时,执行此操作:

git push --force <repository> <branch>

参考:Changing git commit message after push (given that no one pulled from remote)

答案 1 :(得分:0)

你不应该修改已经被公开推送的提交,因为你的队友可能已经将其拉出来了,当他们拉动时git会将你的新提交与旧提交合并,并在推送时将其恢复(请参阅此{{ 3}}在progit中了解细节)。

我建议你保持原样(可能只是添加一个带有扩展消息的新提交,以便人们在原始提交消息中得到你想要的内容)。

如果你真的需要从历史记录中删除它,你需要所有提交你的提交的队友在新版本的提交中重新提交新的提交。