合并冲突后推送相同的更改ID

时间:2016-11-22 09:08:08

标签: git gerrit

我正在使用gitgerrit进行代码审核。使用唯一change id推送更改后,gerrit信息中心出现合并冲突问题。所以我再次提取代码,解决了合并冲突,然后决定在相同的更改ID下修改更改。

git不允许这样做。如果有Amend,则无法完成merge conflict。你必须单独提交。

有没有办法在相同的change id下推送我的更新代码?

3 个答案:

答案 0 :(得分:3)

我认为你很困惑" Change-Id" (Gerrit)与" Commit-Id" (GIT)。当您解决冲突并修改原始提交时,会生成一个新的提交(当然)新的Commit-Id。您可以(实际上,您需要)在提交消息的最后一行保留相同的Change-Id,例如:

更改ID:Id65100bb3841c73bb9dd2d2d6a69c77a5936681a

当您将此提交推送到Gerrit时,它将使用此行知道此提交是对原始提交的修改,并将其作为新的补丁集添加到原始更改中。

查看更多信息here

答案 1 :(得分:0)

  

然后决定修改相同更改ID下的更改

当你在Git中通过git commit --amend,通过Gerritt或其他工具修改提交时,你创建一个新的提交。旧的提交已被重写,不再是您的分支的一部分。

因此,即使你在解决合并冲突后修改了之前的提交,仍然会有新的提交。

答案 2 :(得分:0)

没有。当您尝试修改提交时,通过替换前面的提交,使用新哈希记录新提交。如果你想将它们组合在一起并使它成为一个提交,你可以使用压缩,或者你可以使用软重置2提交,并通过冒险与遥控器发生冲突来创建一个新的提交。