4

我相信这是个愚蠢的问题,但我不明白我应该如何使用gitlab 合并请求推送选项

我有这种情况:

  • 我有从开发到主的开放合并请求
  • 我对开发分支进行了一些更改,并使用正确的选项将它们推送到 gitlab 服务器
git add .
git commit -m 'finish mr'
git push origin develop -o merge_request.merge_when_pipeline_succeeds
  • 我希望在此提交的管道将成功合并 MR 之后,但我在 gitlab MR 页面上收到此消息:
@user aborted the automatic merge because source branch was updated just now
@user added 1 commit just now

    8efdbde1 - finish mr

因此,推送似乎会将 MR 设置为在成功后允许合并,并由于来自同一推送的提交而立即中止它。我还尝试了使用 /merge 的快速操作,但结果相同。我知道有 gitlab API,但我不能使用它。有谁知道我做错了什么?

编辑:

作为接受的答案建议添加目标分支有帮助,但我还需要添加ci.skip

git push origin $CI_COMMIT_REF_NAME \
-o ci.skip \
-o merge_request.target="$MASTER_BRANCH_NAME" \
-o merge_request.merge_when_pipeline_succeeds \
-o merge_request.create
4

1 回答 1

1

gitlab-foss您可以在提交 882e798中看到更新的错误消息,作为最近 GitLab 12.1的问题 63187MR(合并请求)30249的一部分。

merge_request.merge_when_pipeline_succeeds选项来自gitlab-foss MR 26752(GitLab 11.10,2019 年 4 月),问题 43263发行说明)。
MR包括:

要创建新的合并请求,请设置其目标分支,并在其管道成功时将其设置为合并:

git push -u origin -o merge_request.create \
  -o merge_request.target=branch1 \
  -o merge_request.merge_when_pipeline_succeeds

更新现有的合并请求

当使用现有打开的合并请求推送分支时,targetmerge_when_pipeline_succeeds用于更新合并请求。

所以在你的情况下,也许添加目标:

git push origin develop -o merge_request.merge_when_pipeline_succeeds \
  -o merge_request.target=master
于 2019-10-06T18:46:33.460 回答