首页/开发/Git 与协作速查/GitHub 分支保护规则

GitHub 分支保护规则

对主干等分支设置保护:要求 PR 合并、必需评审、必需状态检查与线性历史,阻止直接推送绕过评审。

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

分支保护规则是什么

对主干等关键分支设置保护规则:要求通过评审请求合并、设定必需评审人数、要求状态检查通过,必要时要求线性历史或签名提交。它的作用是让「绕过评审直接推送」在机制上无法完成,而不是依赖团队自觉。

基本信息

配置入口仓库设置中的分支保护规则页面
常见规则必须通过评审请求合并、必需评审数、必需状态检查、签名提交、线性历史
豁免设置可允许管理员绕过,范围越小越好
生效范围规则可按分支名或通配模式精确匹配
配套机制与代码所有者评审、合并队列叠加使用

典型使用场景

  • 团队要求所有改动都经过他人评审
  • 主干需要保持随时可发布的状态
  • 关键分支不允许任何人直接推送
  • 要求流水线检查通过才允许合并
  • 合规与审计要求变更过程可追溯

规则组合示意

规则组合示意
# 在分支保护规则页面勾选以下项目(示意)
# 合并前必须提交评审请求
# 必需批准数:1 到 2 人
# 必需状态检查:构建与测试通过
# 线性历史(可选)
# 管理员绕过(按团队情况决定)
gh api repos/{owner}/{repo}/branches/main/protection | head -40   # 查看当前规则

规则与作用

规则作用
必需评审请求禁止向主干直接推送
必需批准数保证至少有一位他人看过改动
必需状态检查流水线未通过就无法合并
线性历史主干保持直线,便于回溯与二分
规则拦机器、评审质量靠人:两者配套才能守住主干质量,仅有规则并不能阻止低质量改动被合入。
状态检查与流水线的作业名绑定,作业改名后旧规则会失效,调整流水线时要同步检查分支保护设置。

易错点

  • 规则过严(例如要求过多审批人)会促使成员寻找变通路径,应按风险分级设置
  • 状态检查名称变更后旧规则失效,表现为等待中的检查一直不出现,容易被误判成流水线故障
  • 管理员绕过选项被随意开启,审计时才发现关键改动其实未经评审
  • 规则与合并队列的入口条件不匹配,评审请求长期卡在入口之外无人处理

数据来源与参考

  • GitHub 官方文档:About protected branches
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌