首页/开发/Git 与协作速查/GitHub 自动合并(auto-merge)
协作与代码评审75 条

GitHub 自动合并(auto-merge)

开启仓库的 Allow auto-merge 后,PR 可在满足全部合并条件时自动合入:适合等待 CI 与审批完成后无需人工点击的场景。

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

自动合并是什么

GitHub 的自动合并(auto-merge)是一种排队机制:开启之后,PR 会在满足全部合并前置条件时自动合入,不需要人再点一次合并按钮。它自动化的只是最后一步,评审、必需检查、会话解决这些条件仍要由人推动达成,门禁不会被绕过。适合「CI 跑完就合」这类边界清晰的低风险改动。

基本信息

启用位置仓库 Settings → General → Allow auto-merge
使用方式PR 页面 Enable auto-merge,可先选定合并方式
触发条件必需检查全部通过且审批满足时自动执行
命令行gh pr merge <编号> --auto --squash
依赖分支保护规则中定义的必需检查与审批要求

典型使用场景

  • 依赖机器人升级、文档修订等低风险改动:检查通过就自动合入
  • 跨时区协作:CI 在夜间通过后不必等人上线点击合并
  • 同类小 PR 批量排队,减少重复的人工点击
  • 团队要求统一合并方式(例如一律 squash)时,避免手动选错

常用示例

常用示例
gh pr merge 128 --auto --squash             # 排队,条件满足后以 squash 方式合并
gh pr merge 128 --auto --merge              # 指定以合并提交方式合入
gh pr view 128 --json mergeable,mergeStateStatus  # 查看可合并状态与原因
gh pr checks 128                            # 查看必需检查是否通过
gh pr view 128 --json reviewDecision        # 确认审批是否已满足

合并状态读法

状态含义处理方式
BLOCKED有条件未满足(审批或检查)逐项确认缺口后再等
BEHIND分支落后于基分支更新分支后重新入队
DIRTY存在冲突解决冲突再推送
CLEAN条件满足待合并自动合并会执行
自动合并在分支保护允许的前提下才生效。如果 PR 被阻塞(缺少审批、检查失败),排队不会替你绕过门禁,需要先把阻塞项修好才会继续。
先开启自动合并再继续推大改动有风险:新提交一旦让检查重新通过,可能在你还没有复查时就被合入。更稳妥的顺序是推完、复查、再开启排队。

易错点

  • 先开自动合并再推大改动,可能在自己没复查时被合入,要注意推送与开启的先后顺序
  • 被保护规则阻塞(缺审批、检查失败)时不会自动合入,只看到处于排队中容易误以为在等待条件
  • 基分支变化后 PR 变成落后状态,需要更新分支才能继续,队列不会自动处理
  • 把排队误当成立即合并,提前在后续分支上继续改动,造成重复返工

数据来源与参考

  • GitHub Docs:Automatically merging a pull request
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌