GitLab合并前置MR后,如何保留堆叠Merge Request的审批状态?
问题
我有如下堆叠的Merge Request(MR)链:
MR1– 分支B合并至分支AMR2– 分支C合并至分支B
上述两个MR均已完成评审并获得审批。当我合并MR1后,分支B被删除,GitLab会自动将MR2的目标分支从B改为A,这符合预期,但MR2的审批记录被清除,需要重新请求同事评审(项目审批规则要求MR至少有一项审批)。请问GitLab中是否有设置可在上述场景下保留MR的审批状态?
解决方案
GitLab提供了专门的设置来解决这个问题,操作步骤如下:
- 打开目标项目,进入左侧菜单栏的「设置」→「合并请求」页面。
- 在「审批规则」板块中,找到「当目标分支变更时保留审批」的选项,勾选启用。
- 滚动到页面底部,点击「保存更改」完成配置。
启用该设置后,当MR的目标分支因上游分支被合并删除而自动变更时,已通过的审批记录会被保留,无需重新发起评审。
注意事项:
- 该设置仅对启用后新建的MR生效,已存在的MR无法自动应用此规则。
- 若项目使用了自定义审批规则(如指定特定角色、用户或群组审批),该设置同样生效,不会因目标分支变更重置符合规则的审批记录。
内容的提问来源于stack exchange,提问作者Adil Hussain
相关产品推荐
相关产品推荐

