在GitLab中通过命令行合并合并请求

5

我正在尝试找到一种通过命令行合并GitLab中的合并请求的方法。

有没有人知道如何实现这个目标,而不是从GUI界面合并相同的请求。

非常感谢任何提示!谢谢!


1
将合并请求作为分支本地检出并合并。请参考Checkout merge requests locally - phd
有趣的解决方法,但这是否意味着在检出合并请求后本地分支的新推送会创建一个新的远程分支并将其合并,而不是原始的合并请求?我只想简单地合并在gitlab上存在的原始合并请求。 - Jose
1
然后您需要使用API命令行包装器,例如git-spindelgitlabgitlab-clicli-gitlab - phd
谢谢phd,这正是我想避免的,安装额外的东西。我的问题是想找到一种不需要任何附加组件的方法,并且是否存在可以用来执行此操作的现有gitlab ABI。 - Jose
3个回答

4
您可以像合并其他分支一样合并它:
git checkout target-branch
git merge feature-branch
git push

Gitlab界面将显示合并请求已合并。

谢谢你的信息,Oxley。我正在寻找类似于在Git中可以使用命令将合并提交与合并提交编号或SHA编号合并的功能。Gerrit审查$COMMIT_ID --message'"提交更改到GIT。'"--submit - Jose
如果您尝试合并的分支受到保护,这将无法工作。即使您被允许从UI合并MR(因此单击“合并”按钮将执行完全相同的操作)。 - Marc Plano-Lesay

2
需要使用git CLI版本2.10+。来源:与Michael Friedrich一起进行的第一次GitLab和CI/CD研讨会@ 1:01:20
快速测试示例,略有修改自上述视频。
# create a small test branch
git checkout master
git pull
git checkout -b "Testing_Create_MR_from_git_cmdline"
echo "Please delete this file" > BogusPleaseDelete.txt
git add -A
git commit -m "Testing create MR from Git command line"

# Create Gitlab MR from Git CLI
git push -u origin HEAD \
  -o merge_request.create \
  -o merge_request.title="DRAFT: $(git branch --show-current)" \
  -o merge_request.description="This MR is created by git command line, using $(git version), OS = $(lsb_release -d)" \
  -o merge_request.target=master \
  -o merge_request.remove_source_branch \
  -o merge_request.squash


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接