首页 > 解决方案 > 尝试通过变基来修复合并冲突,更改 X 已关闭

问题描述

我目前正在尝试修复 Gerrit 中出现的一些合并冲突。我试图从 Gerrit 手动重新设置并提交我的提交,但它没有成功。我现在要做的是按照本指南进行变基以修复合并冲突。一旦我手动修复了 VScode 中的合并冲突,我会尝试temp-branch使用git push origin HEAD:refs/for/master. 它被此消息拒绝:

 ! [remote rejected] HEAD -> refs/for/master (change <link to B> closed)
4e6b4ca (HEAD -> temp-branch) A
97bf4ds B
5392gsa (origin/master, origin/HEAD, master) C
...
17sfv2t B

我假设这个问题是由于17sfv2t B已经合并的事实,但我不太确定。这是我第一次使用变基过程/Gerrit,所以我可能错过了一些重要的细节。对此问题的任何帮助将不胜感激!

标签: gerrit

解决方案


是的,你是对的,问题是由于提交 B 的更改已关闭。

要解决这个问题,首先,您需要澄清为什么您的“git log”有两个 B 提交(97bf4ds 和 17sfv2t)以及如何可能有一个非十六进制哈希(17sfv2t)的提交,这真的很奇怪.

该问题似乎与提交 97bf4ds 有关。这个提交可能(错误地)有一个 Change-Id(提交描述中的一行,例如“Change-Id: I0ff3092b7970f354df98c81a7d53f60ca826a55c”),它与 Gerrit 中的已关闭更改有关。这个提交是你做的吗?为什么此提交具有来自已关闭更改的 Change-Id?

可能您需要做的就是在将提交推送到 Gerrit 之前修复此 Change-Id(使用“git rebase -i”命令),但无法确定,因为您没有具体说明您在做什么以及做什么您是否已完全执行命令以解决这种情况。


推荐阅读