【问题标题】:How to overwrite over all commits after a specific commit without having to git pull?如何在特定提交后覆盖所有提交而无需 git pull?
【发布时间】:2018-08-27 05:59:16
【问题描述】:

git reset --hard <specific commit from earlier> 然后做了一些新的提交。当我尝试推送这些新更改时,系统会提示我 git pull 以获取在 <specific commit from earlier> 之后所做的更改。我试图只写这些更改 git 提示我拉。这是一个简单的项目,所以我只有一个主分支。最好的纠正方法是什么?

【问题讨论】:

    标签: git git-reset


    【解决方案1】:

    通过执行git reset --hard <earlier commit> 然后尝试推送它,您实际上是在尝试修改历史记录(通过删除它)。除非在git push 上给出--force--force-with-lease(最好)标志,否则不允许修改历史记录。

    请记住,如果其他人拥有旧版本的分支,您可能需要通知他们,以便他们可以更正其副本以匹配新历史记录。

    更多信息请访问man git-push

    【讨论】:

      【解决方案2】:

      您可以使用以下命令强制推送您的更改:

      git push origin <your_branch_name> --force

      【讨论】:

        猜你喜欢
        • 2012-05-09
        • 1970-01-01
        • 2018-02-22
        • 1970-01-01
        • 2018-10-20
        • 2020-12-27
        • 1970-01-01
        • 2014-10-03
        • 2016-06-03
        相关资源
        最近更新 更多