合并请求的全称为 Merge Request,下文将简称为 MR。
项目管理员可以在代码仓库的设置 > 合并请求页面设置合并请求的基础设置、调整默认合并方式、修改 MR 默认目标分支与设置合并提交信息模板(Accept Merge Request)。
基础设置
是否默认删除源分支
删除源分支有助于保持仓库整洁,打开此开关后,MR 请求将自动勾选图中的开关。如不需要删除源分支,合并者取消勾选此按钮即可。
是否默认以 Fast-Forward 模式合并
此功能主要用于维护主干分支的整洁。这种模式的合并过程将不会在目标分支中留下曾与源分支进行合并的历史信息。源分支的提交信息将直接与目标分支融合,而不会产生一个两者曾经发生过合并行为的提交记录,相当于使用 git merge 命令时添加 –ff 参数。
状态检查
开启此功能后,所有的 MR 将在源分支自动触发持续集成任务,通过后才能允许合并至目标分支。
合并前必须获得所有评审者的允许合并
此功能主要用于确保所有的 MR 经评审者全体同意后才能够被允许合并,无论目标分支是否为保护分支。
合并方式
当源分支有多个提交的时候,提供三种合并模式:
默认直接合并:会产生一个合并提交。
默认 Squash 合并:会把源分支的多个提交合并成一个提交,用户可以取消这个行为。
只能 Squash 合并:强制把源分支的多个提交合并成一个提交,用户不能取消。
默认目标分支
指定了默认分支之后,在创建合并请求时会自动设置该分支为目标分支。建议使用主干分支为合并请求的默认目标分支。
合并提交消息模板
所有的合并请求都会在目标分支中留下一个提交消息,例如 Git 中的默认消息为 Accept Merge Request #xxx,您可以在此处修改这条消息模板,更加清晰的记录合并结果。
提交消息变量
变量名 | 变量描述 | 变量示例 |
${source_branch} | 源分支 | feature/demo |
${target_branch} | 目标分支 | main |
${title} | 合并请求标题 | 这是一个合并请求的标题 |
${id} | 合并请求的引用事项号 | #1 |
${url} | 合并请求访问链接 | https://team-name.coding.net/p/project-name/d/depot-name/git/merge/21 |
${reviewer} | 合并请求评审人员 | @开发组长 |
${approver} | 合并请求允许合并人员 | @开发组长 |
${acceptor} | 合并请求合入分支人员 | @开发组员 |
${creator} | 合并请求创建人 | @开发组员 |