【发布时间】:2014-02-06 12:20:32
【问题描述】:
我在使用 Gerrit 时犯了一个致命错误,想知道是否有人可以为此提供解决方案/想法:
目前的情况是我有一个分支feature-foo,我们的团队正在将更改推送到该分支以供审核。
其中一些更改已经提交/合并,并且仍有大量更改可供审核。
现在,昨天我决定将补丁集推送到特定更改,其中包含大约 15 个先前更改(尚未合并)。
我不小心超过了代码审查(是的,我确实拥有这些权限,是的,我很愚蠢,为了我自己的安全没有停用它们 - 经验教训)。
这导致这 15 个更改/提交被直接推送到分支而不是代码审查。
所以现在所有这些更改都在 Gerrit 中标记为MERGED。我的直接想法是使用我知道最初是feature-foo 的提示的提交来执行push -f。
这会正确地将分支重置到它应该在的位置。但是 - 这 15 处更改仍然在 Gerrit 中标记为 MERGED。
我想要的是:我需要将这些更改恢复为“正在审核”状态,因为它们实际上仍在进行中。
任何想法,任何人?我无法想象以前没有人发生过这种情况......
问候,
--曲
编辑 1:澄清一下 - 错误推送的提交导致快进 - 而不是合并。尽管如此,对于 Gerrit 来说,这些更改/提交仍然是“合并的”,就好像有人在 Gerrit-Web 界面中按下了“提交更改”。 所以 - 这个问题实际上是关于 Gerrit,而不是 Git 本身。
关键词:意外推送、意外合并
【问题讨论】:
-
@sehe 好吧 - 不。问题是:我如何告诉 Gerrit 这些更改/提交实际上是没有合并的。我已经恢复了不正确的推送。所以分支已经被重置。我只需要让 Gerrit 知道这件事……
-
哦。很抱歉错过了那里的线索。有一个 +1
-
您是否尝试在重置远程分支后将更改推送到远程审核分支?
-
@HiB 我没有。实际上,我很确定 Gerrit 不会允许我将另一个补丁集推送到已经处于 MERGED 状态的变更上。