Gerrit中的多个合并冲突

时间:2018-08-20 18:25:13

标签: git gerrit

我在Gerrit中面临一个问题。我正在学习Gerrit代码审查工具。我正在使用Windows。

让我告诉您整个情况。这样您可以更好地理解。

我在Gerrit中有五次提交。全部处于合并冲突中。

我们有两个分支 一个是由Gerrit合并的审阅代码的大师(我假设) 其他是ref / for / master来审核Gerrit的代码。

我今天有master分支的推送特权。我所做的是将一些库和pom.xml推送到master分支中(我知道maven将从Central提取依赖项,但是这些是自定义的,因此我需要将项目放在lib文件夹中,系统范围在pom.xml中推送)。之后,我在Gerrit分支中推送了相同的库refs/for/master

我要附上相同的屏幕截图。

Screenshot

开始两个提交合并。之后,下一次commit(Retry commit)显示合并冲突,其中包含100多个文件。

下一次提交的是Pom.xml(包括作为类路径一部分的tibco依赖),它是我添加的具有范围系统的库依赖,以便Maven从项目lib文件夹中选择它们。 / p>

在下一次提交之后(在pom.xml中添加文件分隔符以避免Windows / Linux之间的冲突)也位于master分支中。其他用途已提交。因此,他的提交先经过审查,然后合并到主分支。

在下一次提交(**为tibco添加lib *)之后已经在master中。正如我所说的,我将一些库直接推入master分支。

接下来的两个提交(抛光)也由于两个文件(我假设)而在合并冲突中。但是除了其他文件之外还有其他文件。

我将如何解决这种情况。如何解决合并冲突。

此外,我还想了解Abandon this change按钮的重要性。什么时候应该使用这个?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

我们有两个分支,一个是Gerrit合并的审阅代码的主控(我认为),另一个是ref / for / master审阅Gerrit的代码。

您误解了Gerrit的工作原理。

master分支是git存储库中的分支。分支refs/for/master不是真正的分支,而是一个伪分支,它告诉Gerrit您想推送进行审查(直接推送到refs/heads/master的意思)。一旦您批准并提交了正在审查的更改,相关的提交将位于master分支中。

当受审核的提交与Merge conflict分支中的提交发生冲突时,将显示master消息。

默认情况下,“冲突”仅表示触摸了同一文件。通过启用存储库中的Allow content merges,可以使其引用实际冲突,即更改相同的行。

  

我将如何解决这种情况。如何解决合并冲突。

将通过重新建立master分支的最新标题上的更改来解决冲突。对于平凡的情况,可以使用UI上的“ rebase”按钮完成操作,否则,您需要在本地工作空间中进行操作并手动解决冲突。

  

此外,我还想了解Abandon this change按钮的重要性。什么时候应该使用这个?

可以在不需要或不再需要更改时将其放弃。这样它就不会出现在打开的更改列表中。如果以后再次需要它,可以将其还原。