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

时间:2017-07-09 02:50:03

标签: git gitlab git-merge

我有gitlab存储库,我需要在合并到目标分支之前在本地测试每个合并请求。如何将合并请求作为新分支提取/获取?

4 个答案:

答案 0 :(得分:26)

  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

  3. OR与单个命令

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

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

答案 1 :(得分:6)

GitLab在线文档中也记录了这一点: https://gitlab.com/help/user/project/merge_requests/index.md#checkout-merge-requests-locally

他们提供此脚本(git别名):

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

然后你可以使用这个命令:

  

git mr origin 4

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

答案 2 :(得分:0)

您也可以添加行

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

发送到您的.git/config,让git fetch获取所有合并请求。

答案 3 :(得分:0)

GitLab 中有一个 Check out分支按钮。

enter image description here


然后,您可以从 第1步中复制注释。获取并签出此合并请求的分支

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

enter image description here