2

我有一个名为的分支dev,它与origin/dev. 我想master使用以下命令合并到(受保护的),但它不会推动创建合并请求。

$ git push -o merge_request.create -o merge_request.target=master
Everything up-to-date

如何从 CLI 已推送的提交创建合并请求?

4

3 回答 3

2

如果您的分支与origin 上的dev分支是最新的,那么您的命令将不会执行任何操作,因为.devgit pushEverything up-to-date

要从 CLI 创建合并请求,请创建一个新分支 (from dev) 以进行推送:

git checkout -b dev2
git push -o merge_request.create -o merge_request.target=master
于 2020-04-29T17:18:11.310 回答
1

我试图自动创建合并请求,但想在第一次和以后进行推送以创建实际的合并请求。在原始推送到远程之后,我使用了这个技巧:

git commit --amend --no-edit
git push --force-with-lease  origin [branch_name] -o merge_request.create -o merge_request.target=master

修改将保持原始提交不变,并允许您在创建合并请求时推送相同的分支。

于 2022-01-12T01:23:43.027 回答
0

该解决方案基于this,但我的更通用。下面的解决方案创建了一个自定义命名的分支来推送它,它请求在合并时删除新创建的分支。

# Create new unique merge-request branch ex: 1234abc-to-master
git checkout -b `git rev-parse --short HEAD`"-to-master"

# Create merge request with upstream this new branch
git push -u origin `git rev-parse --abbrev-ref HEAD` -o merge_request.create -o merge_request.target=master -o merge_request.remove_source_branch
于 2020-04-30T09:34:50.000 回答