如果提交Apple在第1行放置'a'并且在第3行提交Banana put'b',git可以将这些提交合并在一起没有问题,但是如果'a'在第1行的开头并且'b'最后是9个字符,它会窒息,不知道如何合并它们,你必须手动完成。
为什么不能解决这个问题?
即使编辑相同的行如下:
original commit: <question1 states="AZ,OH">
commit Orange line 25: <question1 states="AZ,IN,OH">
commit Pear line 25: <question1 states="AZ,OH,TX">
Git合并无法弄清楚在OH之后加上 IN 和 TX 之后,但作为一个人我可以很容易地看到如何做到这一点,而且我已经使用了比较编辑器(如KDiff3),它为我指出了哪些确切的字符发生了变化(颜色编码),而git只显示了整行的变化。
我只是不知道git
是否认为Orange中的OH变为IN,OH或者是否过多处理以检查是否仅在OH之前添加了IN ...但也许有更好的合并工具可以解决这个问题吗?
答案 0 :(得分:1)
如果您提供自定义合并驱动程序,则可以运行自己的差异并进行自己的合并。尽管如此,它并不是微不足道的。在这种特殊情况下,两遍算法(首先,查找更改的行;第二,查看更改的行是否可以作为更改的字符处理)可能有效。