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

Git远程仓库已推送错误合并的修复步骤正确性验证问询

修正你的Git操作步骤,避免提交树混乱

咱们先理清楚你的场景:你误将stage分支合并到了任务分支ISSUE-1771,并且已经推送到远程仓库,现在想要安全撤销这个合并,同时把ISSUE-1771的正确代码合并回stage对吧?你的思路方向是对的,但步骤里有几个关键错误,我帮你修正并解释清楚:

首先:正确撤销误合并的提交

从你给出的提交记录来看,你需要撤销的是那个合并提交(哈希0b72152),而不是之前的87f0fc3——87f0fc3是你ISSUE-1771分支合并前的最后一个正常任务提交,不是你要回退的对象。

正确的撤销步骤:

  1. 确保你在ISSUE-1771分支上:
    git checkout ISSUE-1771
    
  2. 针对合并提交执行revert操作(-m 1表示保留第一个父节点的状态,也就是ISSUE-1771合并前的代码状态):
    git revert 0b72152 -m 1
    

    这里要注意:-m参数仅用于合并提交(有多个父节点的提交),如果用在普通提交上会报错,这也是你原来步骤的核心问题。

  3. 将生成的revert提交推送到远程仓库:
    git push origin ISSUE-1771
    

这样操作后,ISSUE-1771的代码就回到了合并前的状态,而且是通过新增一个revert提交来实现的,不会改写已经推送到远程的历史,完全不用担心提交树混乱。

然后:将ISSUE-1771的正确代码合并到stage

你原来的步骤有重复操作,且缺少拉取远程stage最新代码的环节,修正后的步骤如下:

  1. 确保你已经完成上面的revert提交推送(这一步很重要,不然合并的还是错误的代码)
  2. 切换到stage分支:
    git checkout stage
    
  3. 先拉取远程stage的最新代码,避免合并冲突:
    git pull origin stage
    
  4. 合并ISSUE-1771分支的代码:
    git merge ISSUE-1771
    
  5. 如果合并过程中出现冲突,手动解决冲突后提交,最后推送到远程stage:
    git push origin stage
    

为什么你的原步骤有问题?

  • 你原本打算revert的87f0fc3是普通提交,不是合并提交,使用-m 1会报错,而且这也不是你要撤销的误合并操作;
  • 后续合并步骤重复了git push origin ISSUE-1771,且没有先拉取远程stage的最新代码,容易导致合并冲突或提交历史不一致。

按照修正后的步骤操作,就能安全解决你的问题,同时保持提交树的清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:11:12