假设我在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
的一个冲突,然后手动解决其他冲突(仅用少量文件)?
答案 0 :(得分:2)
我认为使git能够在冲突解决期间执行您所要求的唯一方法是编写一个自定义合并驱动程序,该驱动程序可以在调用常规merge-file
进程之前检测并“修复”版本信息。这是可行的,但需要一些设置(请参阅git attributes
属性下的merge
文档,其中讨论了自定义合并驱动程序)。
如果您可以忍受额外的步骤,那么编写一个脚本(查找和修复该特定冲突块并运行该脚本)可能会更容易(例如perl甚至awk等都非常适合该任务)在继续手动解决其余更改之前,发生冲突的合并输出。最大的缺点是-我可能考虑使用合并驱动程序的原因-如果文件由于版本限制而仅 冲突,则您无需进行任何手动操作,但文件会仍然处于冲突状态-因此,您必须检查每个文件以查看是否还有剩余的冲突解决方法要完成。
在我看来,重新审视工作流程中导致您期望这些冲突的方面可能很生气。