我有gitlab存储库,我需要在合并到目标分支之前在本地测试每个合并请求。如何将合并请求作为新分支提取/获取?
答案 0 :(得分:26)
将合并请求拉到新分支
git fetch origin merge-requests/REQUESTID/head:BRANCHNAME
即
git fetch origin merge-requests/10/head:file_upload
结帐到新创建的分支
git checkout BRANCHNAME
即(git checkout file_upload
)
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)