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. 常见踩坑
- 设置完老MR不生效:只对新MR生效,老MR点Edit手动勾选。
- 看不到Encourage选项:版本过低,普通GitLab Free版本支持该选项。
- 用户无法取消勾选:选成了
Require(强制),改成Encourage即可。
4. 分组/实例全局设置
- 企业版可以在 Group设置 → Merge requests,给整个分组下所有项目统一设置 Encourage。
- 管理员可以在实例管理页面设置全局默认值。