公共存储库上的git push force

时间:2013-11-16 06:27:28

标签: git repository push

我意外地做了一个

  

git push --force

在公共存储库上并恢复到以前的提交。如何解决这个问题?我仍然在我的本地计算机上有正确的版本,但无法将它们推送到github存储库,它说一切都是最新的。我知道这对我来说非常愚蠢!

1 个答案:

答案 0 :(得分:1)

放松一下,如果你在覆盖之前拥有原始HEAD的提交,那么可以 git push --force。这只是以git正确的方式告诉它。

你得到的“一切都是最新的”,因为你说的不对。当发生这种情况时,它不会推动你的想法。

找到要重新推送的分支,或者甚至只是要重新推送的提交(sha)。假设你的github遥控器的名称是“origin”,假设你想要修复“master”,你可以像这样推回:

git push origin the_branch:master --force

甚至:

git push origin the_sha:master --force

但在你这样做之前,我建议用diff来仔细检查:

git diff the_branch..origin/master

git diff the_sha..origin/master

或使用diff替换上面的rev-list,以查看将推送的提交列表。