首页/开发/Git 与协作速查/GitLab 保护分支与合并控制

GitLab 保护分支与合并控制

控制谁能推送、谁可合并以及是否允许强推;与合并请求审批、流水线门禁组合,约束主干合入路径。

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

保护分支是什么

GitLab 的保护分支决定谁能推送、谁可以合并,以及是否允许强推。它是约束主干合入路径的基础设施:只有和审批规则、必需流水线组合起来,才能同时管住「谁能写进去」和「写进去要经过什么」。哪些分支需要保护要按风险面来定,而不是只锁默认分支。

基本信息

配置路径Settings → Repository → Protected branches
控制点允许推送、允许合并、是否允许强推
联动机制合并请求审批规则与必需的流水线
基础组合主干禁止强推 + 必须走合并请求

典型使用场景

  • 默认分支只允许维护者推送,日常改动一律走合并请求
  • 发布分支同样纳入保护,避免发布线被直接改写
  • 关闭强推,保证主干历史始终可追溯
  • 配合审批规则,规定改动必须经过几人批准
  • 为紧急修复预留例外通道,并写明事后审计方式
  • 新成员加入时用保护规则限制误操作的影响范围

常见配置思路

常见配置思路
# Settings → Repository → Protected branches
# 默认分支:允许推送仅维护者,合并需审批,强推关闭
# 发布分支:同样禁止强推,允许合并的角色单独配置
# 例外通道:紧急修复直推需两人确认,事后补记录

控制点读法

控制点含义常见取值
允许推送谁可以直接写入该分支仅维护者 / 无人
允许合并谁能把合并请求合入维护者或指定角色
允许强推是否可以改写该分支历史关闭
必需流水线合并前是否要求流水线通过开启
主干禁止强推加必须走合并请求,是保护历史的常见基础配置。先把它做上,再按团队情况增加审批与流水线要求。
例外通道要写清适用条件、审批人和事后补记录的方式,否则例外用着用着就会变成常态。

易错点

  • 只锁默认分支不锁发布分支,发布线仍可能被直接改写,应按风险面配置
  • 例外通道(如紧急修复直推)没有写清适用条件与事后审计方式,例外会变成常态
  • 保留强推权限时一次误操作就能改写主干历史,应配合关闭强推与本地防护
  • 保护规则与审批规则的分支匹配写得不一致,产生「这个分支其实没被保护」的错觉
  • 配置完成后不用测试合并请求验证,问题要等到真正的发布改动时才暴露

数据来源与参考

  • GitLab 官方文档:Protected branches
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌