如何解决众多文件中的同一合并冲突?

时间:2018-12-14 10:59:41

标签: git merge-conflict-resolution

假设我在200个文件中遇到这一冲突:

<<<<<<< HEAD
/*  Version         1.0.0       */
/*  Date            2017-05-30  */
=======
/*  Version         1.0.1       */
/*  Date            2018-11-30  */
>>>>>>> release/1.0.1

我肯定知道我想要所有文件中的1.0.1版本。但是,仅对所有文件使用--theirs是不可行的,因为我还有其他修改,应保留在--ours中。

有没有一种方法可以解决与--theirs的一个冲突,然后手动解决其他冲突(仅用少量文件)?

1 个答案:

答案 0 :(得分:2)

我认为使git能够在冲突解决期间执行您所要求的唯一方法是编写一个自定义合并驱动程序,该驱动程序可以在调用常规merge-file进程之前检测并“修复”版本信息。这是可行的,但需要一些设置(请参阅git attributes属性下的merge文档,其中讨论了自定义合并驱动程序)。

如果您可以忍受额外的步骤,那么编写一个脚本(查找和修复该特定冲突块并运行该脚本)可能会更容易(例如perl甚至awk等都非常适合该任务)在继续手动解决其余更改之前,发生冲突的合并输出。最大的缺点是-我可能考虑使用合并驱动程序的原因-如果文件由于版本限制而仅 冲突,则您无需进行任何手动操作,但文件会仍然处于冲突状态-因此,您必须检查每个文件以查看是否还有剩余的冲突解决方法要完成。

在我看来,重新审视工作流程中导致您期望这些冲突的方面可能很生气。