首页/开发/Git 与协作速查/新提交重置审批的设置
协作与代码评审75 条

新提交重置审批的设置

GitLab 可配置推送新提交时移除已有批准(Reset approvals on push),确保批准对应评审过的版本;关闭它则需要额外的「最后推送人不可批准」类约束。

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

新提交重置审批是什么

GitLab 可配置「推送新提交时移除已有批准」(Reset approvals on push),确保批准只对应被评审过的版本;关闭它则需要额外的「最后推送人不可批准」类约束来兜底。这是把「评审结果与被评代码绑定」的机制。

基本信息

位置项目 Settings → Merge requests → Approvals
开启效果每次推送新提交,已有批准全部重置
关闭时建议配合作者与最后推送人不可自批的约束
权衡严格设置降低流转速度,宽松设置依赖自律
相关设置最少批准数、批准人范围(按角色/组)
观测合并时长与重置次数可作流程健康度指标

典型使用场景

  • 高风险仓库:要求批准必须对应最新版本,开启重置。
  • 评审加速:被重置后评审人只需复核增量改动,比全量重评快。
  • 变更说明:推送后告知评审人「本轮只改 X」,减少重复沟通。
  • 合规基线:审批链与代码版本对应,审计时可回放。
  • 流程调优:统计重置频率,定位反复推送的根因。
  • 例外管理:紧急场景走管理员通道,事后补记录。
  • 新成员引导:把「重置意味着什么」写进评审指南,减少困惑。

检查配置路径

检查配置路径
Project → Settings → Merge requests
  Approvals
    - Reset approvals on push(推荐开启)
    - Prevent approval by author(按需)
    - Prevent approvals by users who add commits(按需)

设置组合与效果

设置效果注意事项
重置批准:开新提交后批准作废严格,适合高风险仓库
重置批准:关批准长期有效依赖自律,需自批约束兜底
禁止作者批准作者不能自己批配合最少批准数使用
最少批准数低于数量不能合并按风险定 1 到 2 人
被重置后评审人只需复核增量改动,通常比重新全量评审快;在 MR 里说明「本轮只改 X」能加速流转;重置频繁时先查原因(CI 不稳、推送习惯),再谈流程调整。;设置调整后观察一周的流转数据再定稿。

易错点

  • 重置后若无人复核,MR 会卡在等待审批而作者以为已就绪:关注状态变化并主动催办。
  • 大改动拆分推送会让审批反复重置:建议集中推送并说明改动范围。,或先约定「评审通过后不再重推,改动另开 MR」。
  • 关闭重置又不加自批约束,会出现「批完又改」的漏洞,合规审计过不去。
  • 把最少批准数与重置策略分开调整容易出组合漏洞,改设置前先画一遍期望流程。

数据来源与参考

  • GitLab Docs:Merge request approvals(reset approvals on push)
  • GitHub Docs:Dismiss stale approvals
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌