GitLab MR压缩合并时如何拼接所有提交信息?
GitLab 14.9.2-ee 压缩合并提交信息配置方案
针对你的需求——在GitLab 14.9.2-ee版本中,让压缩合并后的提交信息自动拼接MR内所有提交内容(同时剔除不需要的合并提交),该版本没有内置的直接设置选项,但可以通过以下几种方式实现类似效果:
1. 合并时手动编辑提交信息
在MR的合并界面选择「压缩合并」后,GitLab会弹出提交信息编辑框(默认填充MR标题)。此时你可以:
- 手动复制MR内所有需要保留的提交内容(如
[Notes]: Note1、[Notes]: Note2) - 剔除不需要的合并提交内容
- 将整理后的内容粘贴到编辑框中完成合并
2. 本地预整理提交后推送
在推送MR前,本地通过交互式变基提前压缩并整理提交信息:
- 执行命令:
git rebase -i HEAD~<提交数量>(比如你有3个提交就用HEAD~3) - 在弹出的编辑界面中,将不需要的合并提交标记为
squash或fixup,保留需要的提交 - 编辑最终的提交信息,按照你的模板格式整理内容
- 推送整理后的分支到GitLab,此时MR合并时直接使用该提交信息
3. 自定义CI/CD脚本辅助生成提交信息
如果项目有CI/CD配置权限,可以编写脚本自动收集MR内的提交信息:
- 脚本通过GitLab API获取当前MR的所有提交记录
- 过滤掉合并提交(可通过提交信息中的「Merge commit」关键词识别)
- 拼接符合模板要求的提交内容
- 将生成的内容作为合并提交信息的模板(需要配合合并前的触发逻辑)
内容的提问来源于stack exchange,提问作者Or b
相关产品推荐
相关产品推荐

