Skip to main content

Gitlab设置MR自动勾选Squash commits

1. 问题背景

Gitlab提MR时可以勾选Squash commits,勾选后可以将将多个commit压缩合并成一次commit。

【说明】:默认情况下每此提MR都需要手动勾选一下,可以设置里设置默认勾选。

2. 单项目设置

2.1. 权限要求

项目需要 Maintainer / Owner 权限。

3. 操作路径

进入到项目页面,项目左侧菜单 → 设置(Settings)合并请求(Merge requests),找到 Squash commits when merging(合并时压缩提交)。修改完成后,页面滚动到底部,点击Save Changes(保持变更)

3.1. 四个选项说明

选项效果
Do not allow(不允许)禁用squash,复选框不显示
Allow(允许)MR默认不勾选,用户可以手动勾选
Encourage(鼓励)新建MR时自动勾选Squash,用户可以手动取消勾选(就是你要的效果)
Require(强制)强制squash,复选框隐藏,用户无法关闭

3.2. 常见踩坑

  1. 设置完老MR不生效:只对新MR生效,老MR点Edit手动勾选。
  2. 看不到Encourage选项:版本过低,普通GitLab Free版本支持该选项。
  3. 用户无法取消勾选:选成了Require(强制),改成Encourage即可。

4. 分组/实例全局设置

  • 企业版可以在 Group设置 → Merge requests,给整个分组下所有项目统一设置 Encourage。
  • 管理员可以在实例管理页面设置全局默认值。