当我打算将它放在我的本地存储库中时,我意外地使用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?
答案 0 :(得分:0)
你的留言遗失了吗?我相信它应该说像
在再次推送之前合并远程更改(例如'git pull')
关于拒绝推送的部分之后。因此,这意味着远程分支可能比您的本地更改更新,例如别人推动了改变。在这种情况下,我建议不要强迫推,因为你可能会抛弃其他人的承诺。
你可以:
git pull
首先应该有效)git revert
代替撤消您的提交。这将最终引入第二次提交,恢复你的第一次提交,因此它们都将在历史中(https://git-scm.com/docs/git-revert)。这并不理想,但重写远程分支的历史永远不会。