【问题标题】:Merging a Merge request from command line in GitLab在 GitLab 中从命令行合并合并请求
【发布时间】:2019-04-12 14:08:15
【问题描述】:

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

有谁知道如何实现这一点,而不是从 GUI 界面合并。

非常感谢任何指针。 谢谢!

【问题讨论】:

  • Checkout merge requests locally 作为分支并合并它们。
  • 有趣的解决方法,但这是否意味着在检出合并请求后本地分支的新推送将创建一个新的远程分支并将其合并而不是原始合并请求?我希望简单地合并 gitlab 上存在的原始合并请求。
  • 然后你需要使用 API 命令行包装器,例如 git-spindelgitlabgitlab-clicli-gitlab
  • 谢谢博士,这正是我试图避免的,安装额外的东西,这个问题是寻找是否有办法在没有任何添加的情况下做到这一点,以及是否有一个现有的 gitlab ABI 可以用于执行此操作。

标签: git command-line gitlab submit


【解决方案1】:

需要使用 git CLI 2.10+ 版本。来源:First time GitLab & CI/CD workshop with Michael Friedrich @ 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

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      你可以像任何其他分支一样合并它:

      git checkout target-branch
      git merge feature-branch
      git push
      

      然后,Gitlab UI 会将合并请求显示为已合并。

      【讨论】:

      • 感谢 oxley 提供的信息,我一直在寻找类似命令来将合并提交与合并提交编号或 SHA 编号合并,就像我们在 git 中所做的那样。 gerrit review $COMMIT_ID --message '"提交对 GIT 的更改。"' --submit
      • 如果您尝试合并的分支受到保护,这将不起作用。即使您被允许从 UI 合并 MR(因此单击“合并”按钮将执行完全相同的操作)。
      猜你喜欢
      • 1970-01-01
      • 2019-04-18
      • 2016-09-21
      • 2018-07-05
      • 2021-06-04
      • 2018-06-08
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      相关资源
      最近更新 更多