如何将Gerrit分支合并到另一个Gerrit分支

Ala*_*hen 36 git gerrit

我正在使用Gerrit版本2.4.2.我有一个分支master,我创建了一个新的分支,称为 newbranch.然后我将一些更改推送到遥控器(Gerrit's)newbranch.在Gerrit中验证后,我将更改合并到newbranch.

不,我想合并newbranchto master,发送更新master(与更改合并newbranch),并删除newbranch分支.

我试过这样做:

git fetch
git checkout master
git merge newbranch
git push origin master:refs/for/master
Run Code Online (Sandbox Code Playgroud)

但格里特回复了这条消息:

 ! [remote rejected] master -> refs/for/master (no new changes)
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

Mic*_*ims 34

据报道,这种情况是Gerrit的一个错误.以下是Gerrit问题跟踪器的解决方案/解决方法:

据我所知,您目前有2个选项 -

  1. 强制推动参考/头部.这只是一个快进,所以理论上一切都已经过审查和验证.没有必要再次这样做,所以只需跳过这个过程并推送到refs/heads而不是refs/for.

  2. 继续并创建合并提交.使用'git merge --no-ff' - 这将创建一个合并提交,即使在你的快进情况下没有必要.然后可以像平常一样上传,审阅,验证和合并合并提交.

我的公司倾向于使用选项2.我会将其关闭为wontfix,但如果您对如何做到这一点有任何建议,请告诉我们.


Sog*_*ger 9

如果合并是快进合并,则不存在推送到gerrit的对象,因为快进只是移动分支指针.

您需要通过避免快进来强制合并创建对象:

git merge --no-ff
Run Code Online (Sandbox Code Playgroud)