首页/开发/CI/CD 与发布速查/GitLab 受保护分支与保护变量
工具链要点63 条

GitLab 受保护分支与保护变量

受保护分支/标签限制推送与合并权限;标记为 protected 的变量只在受保护上下文(如受保护分支流水线)可用,用于把发布凭据留给受控流程。

CI/CD 与发布速查开发更新于 2026-10-13

受保护分支与保护变量是什么

受保护分支与标签限制推送与合并权限;标记为保护的变量只在受保护上下文(如受保护分支与标签的流水线)可用,用于把发布凭据留给受控流程。权限按角色控制谁能推送与合并,配合受保护环境与审批构成生产发布的完整门禁。

基本信息

保护对象分支、标签
变量联动保护变量仅在受保护分支或标签流水线展开
权限按角色控制推送与合并
配合受保护环境加审批
上下文合并请求流水线不属于受保护上下文
豁免紧急变更走后补记录的例外流程
维护定期复核角色与保护范围

保护项与效果

保护项限制效果
分支推送与合并权限主干仅受控人员可写
标签创建与删除权限发布标签可信
保护变量仅受保护上下文可见凭据不进入普通流水线
受保护环境部署审批上线需批准

使用受保护变量

使用受保护变量
deploy-prod:
  stage: deploy
  script: [./deploy.sh prod]
  environment: production
  # 仅主干分支触发,命中受保护上下文
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'
  # 保护变量在此类分支流水线才展开

典型使用场景

  • 生产发布:凭据仅在主干分支流水线中可用,降低泄露面
  • 主干保护:限制直接推送,变更必须经合并请求
  • 标签发布:限制标签创建权限,保证发布版本可信
  • 环境审批:受保护环境要求批准后再部署
  • 权限审计:定期核对保护规则与人员角色是否匹配
  • 最小范围:保护主干与发布标签即可,规则过宽难以维护
合并请求流水线不在受保护分支上下文:依赖保护变量的发布作业要以分支流水线形态设计。保护规则变更要与团队同步。
保护规则要能落地:角色与保护范围脱节时,规则只会被例外流程绕过。

易错点

  • 发布作业依赖保护变量却安排在 MR 流水线:变量为空导致失败
  • 保护规则过宽:直接把主干推送权限放开给所有人,保护形同虚设
  • 保护标签缺失:任意人员可打发布标签,版本凭证失去可信度
  • 依赖保护变量却不限制规则:普通分支流水线拿不到变量而失败,误判为变量损坏

数据来源与参考

  • GitLab Docs《Protected branches》
  • GitLab Docs《Protected variables》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌