撤消' git push'

时间:2017-07-06 20:03:22

标签: git

当我打算将它放在我的本地存储库中时,我意外地使用git push将项目推送到Git(应该在git commit之后停止)。

我想撤消这个git push,以便服务器repo返回到特定的提交。我查看了其他问题,例如this one,但git push -f对我不起作用并提出错误:To prevent you from losing history, non-fast-forward updates were rejected. 我甚至试过

git push -f origin CommitSHA:mainline

我认为-f标签会强制推送,无论我是否正在推送先前的提交。我该如何修复此错误以便我可以撤消git push?

1 个答案:

答案 0 :(得分:0)

你的留言遗失了吗?我相信它应该说像

  

在再次推送之前合并远程更改(例如'git pull')

关于拒绝推送的部分之后。因此,这意味着远程分支可能比您的本地更改更新,例如别人推动了改变。在这种情况下,我建议不要强迫推,因为你可能会抛弃其他人的承诺。

你可以:

  • 无论如何都要这样做(git pull首先应该有效)
  • 使用git revert代替撤消您的提交。这将最终引入第二次提交,恢复你的第一次提交,因此它们都将在历史中(https://git-scm.com/docs/git-revert)。这并不理想,但重写远程分支的历史永远不会。