我使用的是Gerrit版本2.4.2。我有一个分支master,并创建了一个名为newbranch的新分支。然后,我将一些更改推送到远程(Gerrit的) newbranch。在Gerrit中验证之后,我将更改合并到newbranch。
否,我要将newbranch合并到master,发送更新master (与来自newbranch的更改合并),并删除newbranch分支。
我试过这样做:
git fetch
git checkout master
git merge newbranch
git push origin master:refs/for/master但Gerrit给出了这样的信息:
! [remote rejected] master -> refs/for/master (no new changes)我该怎么办?
发布于 2012-10-11 21:57:03
据报道,这种情况是Gerrit中的一个错误。以下是Gerrit's issue tracker提供的解决方案/解决方法
据我所知,你现在有两个选择-
我的公司倾向于使用选项2。我将关闭这篇文章,但如果你有任何关于如何做得更好的建议,请让我们知道。
发布于 2014-06-24 01:06:47
如果合并是快进合并,则不存在推送到gerrit的对象,因为快进只是移动分支指针。
您需要通过避免快进来强制合并来创建对象:
git merge --no-ff发布于 2019-04-05 20:08:18
以下命令可以很好地工作。
git checkout master
git merge --no-ff newbranch您可以使用默认提交消息进行保存。确保已生成更改id。您可以使用以下命令来确保。
git commit --amend然后使用以下命令进行推送。
git push origin HEAD:refs/for/refs/heads/master您可能会遇到如下错误消息。
! [remote rejected] HEAD -> refs/for/refs/heads/master (you are not allowed to upload merges)要解决这个问题,gerrit项目管理员必须在gerrit中创建另一个引用,名为‘refs/for/refs/head/master’或‘refs/for/refs/head/*’(将来将覆盖所有分支)。然后授予此引用“Push Merge Commit”权限,如果需要提交GCR,则授予“Submit”权限。
现在,再次尝试上面的push命令,它应该可以工作。
演职人员:
https://github.com/ReviewAssistant/reviewassistant/wiki/Merging-branches-in-Gerrit
https://stackoverflow.com/questions/12840279
复制相似问题