【问题标题】:Issues with undoing 'git push'撤消“git push”的问题
【发布时间】:2017-12-10 23:48:48
【问题描述】:

当我打算将一个项目简单地放在我的本地存储库中时,我不小心使用 git push 将它推送到了 Git(应该在 git 提交后停止)。

我想撤消这个 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?

【问题讨论】:

    标签: git


    【解决方案1】:

    你的消息是不是缺少了什么?我相信它应该说类似

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

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

    你可以:

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

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 2015-09-03
      • 2014-11-03
      • 2012-10-31
      • 2012-02-29
      • 2020-08-23
      • 2016-10-03
      • 2013-01-06
      相关资源
      最近更新 更多