如何将更改与Git合并在一起?

时间:2018-07-13 19:52:39

标签: git merge diff

假定以下情况:

  1. 创建一个包含内容Hello World!的文件,添加并提交。
  2. 在一个分支中将其更改为Hi World!,在另一个分支中将其更改为Hello World
  3. 现在将它们合并将导致冲突,因为两个更改都在同一行。

考虑另一种方案,在该方案中,我们在不同的行上分开更改: 1.创建一个包含内容Hello\nWorld\n!的文件。 (我用\n表示换行。) 2.像以前一样应用类似的更改。 3.现在,突然合并就可以了。

但是换行符和其他字符一样。为什么合并对它如此特殊?

更重要的是,是否有与git兼容的合并工具,可以无冲突地合并我的第一个示例,即是否可以在一行中合并更改?

1 个答案:

答案 0 :(得分:-1)

所有VCS中的所有(标准)合并工具都是基于行的(仅由于引擎盖下的diffpatch是基于行的,而文本行是原子的 ,甚至都不会评估更大或更小的对象)...并且我将尽量不要提及diff的“上下文”和“统一”格式以及相关的“笨拙”头痛

您问题的常见答案-“不,现在在Wild Net中没有这样的合并(至少是知名的和著名的来源)。但是-您可以编写它并将其用作Git中的特殊自定义合并工具”

PS-链接答案中的Smudge | Clean过滤器方法似乎是一种更有希望的解决方案(至少对我来说如此)