成功后,git无法推送合并本地功能分支

时间:2018-05-21 15:34:55

标签: git gerrit

我正在使用gerrit作为项目,我在本地有一个功能分支,它有两个提交(1)(2)与远程开发分支分开,如图所示

Feature branch

在我将更改推送到远程开发之前,我从远程拉出,合并了节点(m)中显示的更改。然后,我试图推送到远程,我收到一条错误消息,说明(1)(2)和(3)(4)之间存在冲突。 我不明白为什么会发生这种情况,我认为git push只将合并后的一个(m)推送到遥控器。所以要解决这个问题,我必须重置合并,重新定义到开发,然后推送,但我觉得应该有更好的方法来解决这个问题。

编辑: 我已经通过rebase解决了这个问题,这正是@Marcelo在这里建议的,不能回去得到确切的错误信息,但是当我拉到那里时发生了冲突,我修复了冲突并合并,然后我输入{{ 1}}它说我在远程之前提交1,所以我做了git status,Gerrit不会让我推断说commit(1)和(2)存在冲突,而不是commit(m)如我的图像所示...我不明白这一部分,因为我认为git push origin HEAD:refs/for/developer只推送远程提前的提交,为什么遥控器说提交(1)和(2)存在冲突,我怀疑这是因为Gerrit的特殊设置。

1 个答案:

答案 0 :(得分:0)

要确切知道发生了什么,您需要添加已使用的命令以及您获得的确切错误消息(如果您更新了我的问题,我也可以更新我的答案)。

您不应该将开发分支合并到您的本地分支,您必须改为重新定位您的本地分支:

git checkout feature
git rebase origin/develop
git push origin HEAD:refs/for/develop