代码托管 CODEARTS REPO-使用MR预合并:使用示例

时间:2025-03-05 17:56:36

使用示例

下述示例展示了“开启MR预合并”“未开启MR预合并”的脚本,可见“开启MR预合并”的脚本更简洁、高效。

  • “开启MR预合并”,当MR创建后,则服务端会帮助用户生成一个临时合并节点,进而用户可以直接下载已临时合并的代码。具体操作步骤如下:
  1. 初始化本地代码仓,其中repo_url为合并请求仓库地址。

    git init  
    git remote add origin ${repo_url}

  2. 拉取服务端临时合并节点到本地分支。如下图所示,合并请求标题下的“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

  3. 检出分支,即可获得预合并后代码

    git checkout ${repo_MR_iid}/merge

“未开启MR预合并”,用户需要在客户端分别下载合并请求源分支、合并请求目标分支的代码,并在构建执行机自行完成合并动作。具体操作步骤如下:

  1. 初始化本地代码仓,其中repo_url为合并请求仓库地址。

    git init  
    git remote add origin ${repo_url}

  2. 拉取并检出合并请求目标分支,其中,“repoTargetBranch”为合并请求目标分支。

    git fetch origin +refs/heads/${repoTargetBranch}:refs/remotes/origin/${repoTargetBranch}
    git checkout ${repoTargetBranch}

  3. 拉取合并请求源分支到本地分支,如下图所示,合并请求标题下的“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

  4. 本地执行合并,即可获得预合并后代码。

    git merge refs/remotes/origin/${repo_MR_iid}/head --no-edit

support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0111.html