如何在本地检出合并请求,并创建新的本地分支?

How to checkout merge request locally, and create new local branch?

我在那里有 GitLab 存储库,在合并到目标分支之前,我需要在本地测试每个合并请求。

如何pull/fetch 将请求合并为一个新分支?

  1. 将合并请求拉到新分支

    git fetch origin merge-requests/REQUESTID/head:BRANCHNAME

    git fetch origin merge-requests/10/head:file_upload

  2. 结帐到新创建的分支

    git checkout BRANCHNAME

    即 (git checkout file_upload)

或使用单个命令

git fetch origin merge-requests/REQUESTID/head:BRANCHNAME && git checkout BRANCHNAME

git fetch origin merge-requests/18/head:file_upload && git checkout file_upload

这也记录在 GitLab 在线文档中: https://docs.gitlab.com/ee/user/project/merge_requests/reviewing_and_managing_merge_requests.html#checkout-merge-requests-locally-through-the-head-ref

他们提供了这个脚本(git 别名):

[alias]
    mr = !sh -c 'git fetch  merge-requests//head:mr-- && git checkout mr--' -

那么你可以使用这个命令:

git mr origin 4

因此将创建一个新的本地分支 mr-origin-4

您还可以添加行

fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*

您的 .git/configgit fetch 获取所有合并请求。

GitLab 中有一个 Check out branch 按钮。


然后您可以复制 步骤 1 中的评论。获取并检查此合并请求的分支

git fetch <repo> <branch>
git checkout -b <branch>