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

Git多分支合并冲突咨询:feature与main分支合并顺序及操作命令

分支合并方案与冲突解决指南

最优合并顺序建议

不要先合并领先的feature1到main,也无需先将feature2、3合并至feature1。正确流程是:

  1. 先让落后的feature2、3同步main的最新代码,减少后续合并冲突
  2. 按需求先合并feature3到main,再合并feature2到main
  3. 最后将feature1与更新后的main合并,统一处理冲突

具体Git操作步骤

1. 拉取main分支最新代码

git checkout main
git pull origin main

2. 同步main到feature3并合并至main

  • 切换到feature3分支,合并main的代码:
git checkout feature3
git merge main
  • 若出现冲突,按下方「冲突解决方法」处理,完成后提交:
git add .
git commit -m "merge main into feature3, resolve conflicts"
  • 切回main,合并feature3:
git checkout main
git merge feature3
git push origin main

3. 同步更新后的main到feature2并合并至main

  • 切换到feature2分支,合并当前最新的main(已包含feature3):
git checkout feature2
git merge main
  • 处理冲突(方法同上)后提交:
git add .
git commit -m "merge main into feature2, resolve conflicts"
  • 切回main,合并feature2:
git checkout main
git merge feature2
git push origin main

4. 合并feature1到main

此时main已经包含feature2、3的内容,接下来处理feature1的合并:

git checkout feature1
git merge main
  • 处理feature1与main(含feature2、3)的冲突后提交:
git add .
git commit -m "merge main into feature1, resolve conflicts"
  • 切回main合并feature1:
git checkout main
git merge feature1
git push origin main

合并冲突解决方法

当Git提示merge conflict时:

  1. 用git status查看冲突文件,这类文件会被标记为both modified
  2. 打开冲突文件,Git会用特殊标记分隔不同分支的内容:
    <<<<<<< HEAD
    当前分支(如feature3)的内容
    =======
    合并进来的分支(如main)的内容
    >>>>>>> main
    
  3. 手动编辑文件,保留需要的内容,删除所有Git标记(<<<<<<<、=======、>>>>>>>)
  4. 确认所有冲突处理完成后,执行:
    git add <冲突文件名>
    # 或批量添加:git add .
    git commit
    
    此时Git会自动生成合并提交信息,确认后保存即可。

替代方案:用rebase同步分支(可选)

如果偏好线性提交历史,可以用rebase替代merge来同步main到feature分支:
比如同步main到feature3:

git checkout feature3
git rebase main

处理冲突后执行git rebase --continue,完成后再合并到main。注意:rebase会改写提交历史,若分支已推送到远程,需谨慎使用(可能需要git push -f,不建议在多人协作分支上操作)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:15:49