代码托管 CODEARTS REPO-使用MR预合并:使用示例
时间:2025-05-22 08:11:13
使用示例
下述示例展示了“开启MR预合并”和“未开启MR预合并”的脚本,可见“开启MR预合并”的脚本更简洁、高效。
- “开启MR预合并”,当MR创建后,则服务端会帮助用户生成一个临时合并节点,进而用户可以直接下载已临时合并的代码。具体操作步骤如下:
- 初始化本地代码仓,其中repo_url为合并请求仓库地址。
git init git remote add origin ${repo_url}
- 拉取服务端临时合并节点到本地分支。如下图所示,合并请求标题下的“10”即为“repo_MR_iid”,“merge-requests/${repo_MR_iid}/merge”表示临时合并节点,“${repo_MR_iid}/merge”表示本地分支。
git fetch origin +refs/merge-requests/${repo_MR_iid}/merge:refs/remotes/origin/${repo_MR_iid}/merge
图1 合并请求IID - 检出分支,即可获得预合并后代码
git checkout ${repo_MR_iid}/merge
“未开启MR预合并”,用户需要在客户端分别下载合并请求源分支、合并请求目标分支的代码,并在构建执行机自行完成合并动作。具体操作步骤如下:
- 初始化本地代码仓,其中repo_url为合并请求仓库地址。
git init git remote add origin ${repo_url}
- 拉取并检出合并请求目标分支,其中,“repoTargetBranch”为合并请求目标分支。
git fetch origin +refs/heads/${repoTargetBranch}:refs/remotes/origin/${repoTargetBranch} git checkout ${repoTargetBranch}
- 拉取合并请求源分支到本地分支,如下图所示,合并请求标题下的“10”即为“repo_MR_iid”,“merge-requests/${repo_MR_iid}/head”表示合并请求源分支,“${repo_MR_iid}/head”表示本地分支。
git fetch origin +refs/merge-requests/${repo_MR_iid}/head:refs/remotes/origin/${repo_MR_iid}/head
图2 合并请求IID - 本地执行合并,即可获得预合并后代码。
git merge refs/remotes/origin/${repo_MR_iid}/head --no-edit
support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0111.html