使用“git commit --amend”后如何推送到仓库

23

我提交了一个commit并push到仓库。之后我使用git commit --amend修改了commit消息,在弹出的窗口中输入了新的消息。我可以通过git log看到新的消息。在所有这些过程之后,我的git status显示如下。我不知道如何将此更改推送到仓库。

On branch master
Your branch and `origin/master` have diverged,
and have 1 and 1 different commit(s) each, respectively.

希望能得到一个可行的解决方案。


你是否同意再次分割提交记录,并在已发布(泄露?)的头部构建? - Thilo
如果你可以避免在提交到公共场所(其他人可以看到的地方)后修改提交,那么你绝对应该这样做。这也适用于变基。 - Matthew G
1个回答

28

2012年:如果您可以接受修改远程存储库上的历史记录(例如,您刚刚推送了该提交,并且没有进行新的提交),则可以尝试a

git push --force 

然而,首先请阅读 "如何将修改后的提交推送到远程git仓库?": 如果有人已经从该仓库拉取了代码,他/她可能会不高兴。

另一种方法在 "Git:推送修改后的提交" 中描述。
正如 cpeisert 在评论 "master 分支和 'origin/master' 分支分叉了,如何 '合并' 分支?" 中所述,这解释了你的警告信息。


2022年:请注意 git push --force-with-leasegit push --force 更加安全。
同时,您还可以使用 git push --force-if-includes(Git 2.30+),该命令会尝试确保被强制推送的内容是在检查即将被替换的远程引用的最新提交后创建的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接