You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何回退通过git pull合并到远程的GitHub Pull Request?

回退误操作的解决方案

由于你直接在目标分支执行git pull origin <source branch>并推送,本质是将源分支的所有提交线性追加到了目标分支,未生成合并提交。这种场景下不能使用git reset(会改写公共分支历史,影响其他协作者),推荐通过反向合并的方式撤销变更,步骤如下:

  1. 切换到目标分支并拉取最新远程内容:

    git checkout <目标分支名>
    git pull origin <目标分支名>
    
  2. 找到目标分支误操作前的提交哈希(即拉取源分支之前的最后一个提交),可通过git log查看,记为<旧提交哈希>。基于该提交创建临时分支:

    git checkout -b temp-revert <旧提交哈希>
    
  3. 使用ours合并策略,将当前目标分支合并到临时分支——此操作会生成合并提交,但保留临时分支(误操作前状态)的内容:

    git merge -s ours <目标分支名>
    
  4. 切换回目标分支,合并临时分支:

    git checkout <目标分支名>
    git merge temp-revert
    
  5. 将变更推送到远程仓库:

    git push origin <目标分支名>
    

执行完成后,目标分支会回到误操作前的状态,且通过新增合并提交完成撤销,不会破坏公共分支的历史记录,对其他协作者更友好。

补充:若能明确源分支提交的范围,也可使用git revert <起始提交哈希>..<结束提交哈希>批量撤销,但50+提交的场景下,反向合并的方式更高效。

内容的提问来源于stack exchange,提问作者Mansi Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:49:57