首页/开发/Git 与协作速查/git merge 章鱼式合并多分支
合并变基与冲突71 条

git merge 章鱼式合并多分支

一次把多个分支同时并入当前分支(octopus 策略);只在没有冲突时可用,适合发布前批量并入互不重叠的分支。

Git 与协作速查开发更新于 2026-10-13

章鱼式合并是什么

章鱼式合并一次把多个分支同时并入当前分支,为每个被并入的分支各生成一个父提交。它只适用于没有冲突的场合:只要任一分支存在冲突,整个操作就会中止,也不会留下部分结果。发布前把若干互不重叠的分支一次性并起来,是它最典型的用法。

基本信息

用途一次合并多个分支
语法git merge <分支1> <分支2> <分支3>
限制出现冲突即整体中止,无法逐个解决
结果拓扑生成的合并提交有多个父提交
适用条件各分支改动互不重叠

典型使用场景

  • 发布前把多个互不重叠的功能分支一次性并入主干
  • 把若干独立修复分支批量合并到维护分支
  • 并行开发但改动区域完全不冲突时减少操作次数
  • 集中并入文档或多语言资源类改动
  • 快速合并若干个长期独立的小分支

常用示例

常用示例
git switch main                           # 切到接收合并的分支
git merge feature/a feature/b feature/c    # 一次并入多个无冲突分支
git log --oneline --graph -10              # 查看合并后的拓扑结构
git show --stat HEAD                        # 查看合并提交涉及哪些文件

合并方式对比

方式合并提交适用情况
逐个合并每个分支产生一个合并提交需要分别解决冲突
章鱼式合并一个提交含多个父提交全部分支都没有冲突时
快进合并不产生合并提交目标分支可以直接前移
有冲突时不要硬用章鱼式合并:改成逐个合并,每个分支单独解决冲突并留下可以回溯的合并提交。
章鱼式合并产生的提交有多个父提交,部分图形化工具展示不够直观,团队需要能接受这种拓扑结构。

使用前的准备

  • 确认各分支之间没有改动重叠的文件
  • 先本地试跑一次,确认不会产生冲突
  • 合并后立刻查看拓扑结构,确认父提交数量符合预期
  • 在评审记录里说明这是一次批量合并,便于他人理解历史

易错点

  • 任一分支有冲突则整个操作失败且不保留部分结果,需要改为逐个合并重做
  • 生成的合并提交有多个父提交,部分图形化工具展示不友好,团队需要接受这种拓扑
  • 用它合并存在依赖关系的分支会掩盖真正的问题,依赖关系应按顺序处理
  • 合并后如需回退会一次撤掉全部被并入的分支,粒度太粗,回退时没有选择余地

数据来源与参考

  • Git 官方文档:git-merge(octopus 策略)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌