我意外地做了一个
git push --force
在公共存储库上并恢复到以前的提交。如何解决这个问题?我仍然在我的本地计算机上有正确的版本,但无法将它们推送到github存储库,它说一切都是最新的。我知道这对我来说非常愚蠢!
答案 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
,以查看将推送的提交列表。