合并分支
在采用多分支开发工作流时,建议开发组长将主分支设置为保护分支,开发者创建临时开发分支,完成后向主分支发起合并请求。通过持续集成和代码评审后,开发者将开发分支合并至主分支。
创建合并请求
支持通过命令行或在 CODING DevOps 平台手动创建合并请求。
通过命令行创建:
git push origin local-branch:mr/target-branch/local-branch
手动创建:
- 在代码仓库详情页面,进入「合并请求」页签,然后点击右上角创建按钮。
- 指定合并请求的源分支与目标分支。当源分支与目标分支对比后没有发现冲突,系统提示源分支可合并到目标分支。你可以通过「文件改动」页签查看文件差异。
通过设置合并请求可指定合并请求的默认目标分支。
- 填写合并请求的标题、描述,关联资源。
当源分支的提交不领先于目标分支时,不可创建合并请求。
解决不可自动合并的请求
当源分支与目标分支对比后发现存在冲突,系统提示源分支和目标分支不可自动合并。你可以在「对比」页签查看文件改动记录,解决冲突后才能继续合并分支。
例:当 branch-01
合并入 master
分支时提示有冲突时,可以先在本地切换至 master
分支并运行命令:
git merge branch-01
找到冲突文件,此时冲突文件会标识冲突内容并询问保留何种内容。选择需保留的内容,保存后重新提交 commit,完成后切换至 branch-01
分支并输入命令:
git merge master
再将修改后的代码推送至远端仓库即可。
发起评审
在发起一次分支合并请求时,建议让相关人员参与到代码审视中,以确保准合并代码的正确性。
评审者在完成合并请求评审之后,将会在该合并请求详情页面显示评审结果。
检查合并状态
除了上述常见的人工代码审查外,结合 CODING 持续集成,我们还提供了自动化代码评审工具集成的解决方案。基于预定义的规则先行对代码进行扫描,当代码质量有问题时会拒绝合并代码。只有通过了自动化工具检查的代码才允许合并,显著提高代码审查效率。
开启状态检查
仅保护分支支持开启状态检查。勾选之后,要求状态检查(CI 任务)全部运行通过后才允许合并。在持续集成中的触发规则内需要选中「创建合并请求时触发构建」,这样才能在创建合并后立即触发构建任务。
查看状态检查结果
完成上述设置后,在正确触发构建任务的情况下,可以看到合并检查的状态。如果没有显示如图界面,可能是没有在 CI 构建任务中选择「创建合并请求时触发构建」。
你可以点击右上角的刷新按钮随时获取最新状态,成功后会在下方出现分支已经合并的提示,失败则会拒绝合并。状态检查有四种状态:
- 进行中:你可以耐心地等待构建完成。
- 成功:此时合并请求可以正常合并。
- 失败:构建过程发生错误,合并检查不通过,你可以修改代码、推送触发新的构建任务直到构建成功完成。
- 异常:构建过程发生了异常,可以尝试进行手动触发。
如果存在多个状态检查的情况下,只有所有的状态检查都成功通过后才会允许分支合并。你也可以在代码浏览、提交历史、分支列表中查看状态检查过程。
确认合并
- 合并的目标分支为保护分支
若合并请求的发起者为分支管理员,那么可以自行合并。若发起者为普通成员,那么需要通过分支管理员的评审才能完成合并。
- 合并的目标分支为非保护分支
发起者无需经过评审与授权,可以自行发起并完成分支合并。
如需了解如何修改默认分支与设置保护分支,参考设置默认分支或设置保护分支。
删除源分支
合并分支时,勾选删除源分支,可在合并分支时删除源分支。
Fast-Forward 模式合并
常规的分支合并时会默认产生一个合并提交记录。若勾选了 「Fast-Forward 模式合并」,远端仓库会在合并时判断是否符合 Fast-Forward 规则。若符合则此合并不会产生新的合并提交记录;若不勾选此模式,则会在合并时保留过往开发记录并产生一个新的合并记录。
此选项相当于使用 git merge 时添加 –ff 参数。
通过设置合并请求可实现合并请求默认删除源分支及默认以 Fast-Forward 模式合并。
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。