代码之家  ›  专栏  ›  技术社区  ›  eckes

如何解决多个文件中相同的合并冲突?

  •  6
  • eckes  · 技术社区  · 7 年前

    假设我在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 .

    有办法解决这一冲突吗 --他们的 然后手动解决其他冲突(只需一手文件)?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Mark Adelsberger    7 年前

    我唯一能想到的让Git做你在冲突解决过程中要求做的事情的方法是,在调用Normal之前,编写一个自定义的合并驱动程序来检测并“修复”版本信息。 merge-file 过程。这是可行的,但需要一些设置(参见 git attributes 下面的文档 merge 属性,在这里讨论自定义合并驱动程序)。

    如果您可以容忍额外的步骤,那么只需编写一个脚本(比如Perl或甚至awk非常适合该任务),查找并修复特定的冲突块,然后在继续手动解决其余更改之前,在冲突的合并输出上运行该脚本,可能会更容易。最大的缺点——也是我考虑合并驱动程序方法的原因——是如果文件冲突 只有 由于存在版本块,您将无法进行手动操作,但文件仍将处于冲突状态,因此您必须检查每个文件,以查看是否还有剩余的冲突解决方案要完成。

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