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

Git合并错误恢复咨询:误合分支后合规修正方案及问题解析

解决方案与问题解析

符合仓库策略的修复方案

1. 修复design-main分支(移除禁止的测试文件)

  • 拉取并切换到design-dev分支:
    git checkout design-dev
    git pull origin design-dev
    
  • 合并当前design-main的错误状态到design-dev,触发测试文件的引入:
    git merge origin/design-main
    
  • 删除所有测试文件并提交更改:
    git rm -r T-files-v2
    git commit -m "Remove forbidden test files from design branch"
    
  • 推送修改到远程design-dev:
    git push origin design-dev
    
  • 向管理员发起PR,将design-dev合并到design-main。合并完成后,design-main将恢复为仅包含D-files-v2的合规状态,且未改写历史。

2. 更新test-main到预期状态

  • 拉取并切换到test-dev分支:
    git checkout test-dev
    git pull origin test-dev
    
  • 合并最新的design-main到test-dev,同步设计文件更新:
    git merge origin/design-main
    
  • 推送修改到远程test-dev:
    git push origin test-dev
    
  • 向管理员发起PR,将test-dev合并到test-main。合并完成后,test-main将达到D-files-v2 + T-files-v2的预期状态。

git revert导致后续合并异常的原因

使用git revert -m 1 <错误合并提交ID>时,Git会创建一个反向提交,这个提交的作用是撤销合并提交带来的所有变更——具体到这个场景,就是删除了从test-dev合并进来的T-files-v2。

但Git的合并逻辑依赖于提交的历史关系:当后续将design-main合并到test-main时,Git会识别到design-main存在一个“拒绝T-files-v2”的提交记录,因此会将这个反向提交的变更应用到test-main上,最终导致test-main中原本合法的T-files-v2被删除,无法达到预期状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:53:12