如何将冲突中的大型合并分解为更易于管理的块?

时间:2014-02-17 10:35:29

标签: java eclipse git egit

我维护了一个包含50,000个文件的大型git存储库。主线开发分支称为“开发”。我有一个名为“功能”的分支,几乎独立工作了5个月。由于工作的复杂性,无法从“开发”中合并,但现在它已接近完成,它希望与“开发”重新同步。

通常这意味着执行从“origin / develop”到“feature”的提交合并,修复冲突,测试,提交和推送。但是在这个合并点中存在大量冲突。我算了〜4000个合并的变化和~450个未合并的变化。其中一些冲突是微不足道的(例如.gitignore文件等),但许多是重大的重写并且很难解决

此外,这些冲突跨越各种软件领域。每个域的开发人员都必须解决他们自己领域的冲突。至少需要花费几天时间才能消除冲突并提交冲突。

有没有办法可以解决这个问题,以便域名所有者能够在保留提交合并点的同时并行合并自己的冲突?是否存在部分提交合并这样的事情,我提交合并的东西而不是未合并的东西?

我的另一个主要想法是“功能”可以从“开发”中的某些中间标签合并,例如我们在过去5个月内发布了标签“a”,“b”,“c”,“d”。因此,如果它们合并为“a”然后“b”等等,则每个合并将不那么复杂,但是可能会有更多的冲突。

还有其他我可以试试的东西吗?

1 个答案:

答案 0 :(得分:1)

您合并到中间标签的想法可能是您可以实现的最佳选择。您可能会遇到尽可能多(或更多)的冲突,但在大多数情况下它们应该更小,因此更容易合并。

但是......如果问题是批量重写导致了大量冲突,那么很容易解决冲突。即使每次合并一次提交(例如git imerge方法)也无法处理大量重写。