我正在使用git
和gerrit
进行代码审核。使用唯一change id
推送更改后,gerrit
信息中心出现合并冲突问题。所以我再次提取代码,解决了合并冲突,然后决定在相同的更改ID下修改更改。
但git
不允许这样做。如果有Amend
,则无法完成merge conflict
。你必须单独提交。
有没有办法在相同的change id
下推送我的更新代码?
答案 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提交,并通过冒险与遥控器发生冲突来创建一个新的提交。