Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git/diff在确定冲突时严格遵循哪些规则?_Git_Csv_Diff - Fatal编程技术网

git/diff在确定冲突时严格遵循哪些规则?

git/diff在确定冲突时严格遵循哪些规则?,git,csv,diff,Git,Csv,Diff,如何准确地确定行与行之间存在冲突?遵循哪些规则来确定哪些类型的差异构成冲突,哪些类型的差异可以安全地合并 对于一个特定的例子,假设我们有两个csv文件。git何时会得出结论,共享记录(即行)的两个csv文件无法自动合并 例如,假设两个csv都包含相同的公共记录集,但其中一个正在添加条目,这会导致冲突吗?如果您不喜欢git处理冲突的方式,您实际上可以使用自己的插件来处理git中的冲突 但是,请查看此页面了解更多信息:这取决于用于差异的工具。通常情况下差异比较行。如果有一行发生了变化 在一个修订版上

如何准确地确定行与行之间存在冲突?遵循哪些规则来确定哪些类型的差异构成冲突,哪些类型的差异可以安全地合并

对于一个特定的例子,假设我们有两个
csv
文件。git何时会得出结论,共享记录(即行)的两个
csv
文件无法自动合并


例如,假设两个csv都包含相同的公共记录集,但其中一个正在添加条目,这会导致冲突吗?

如果您不喜欢git处理冲突的方式,您实际上可以使用自己的插件来处理git中的冲突


但是,请查看此页面了解更多信息:

这取决于用于差异的工具。通常情况下差异比较行。如果有一行发生了变化 在一个修订版上,同一行在另一个修订版上被修改,如果尝试合并它们,则会发生冲突

diff

diff
不知道行被修改。它知道一条线(或多条线)被删除并 在文件的两个相同部分之间插入了另一个(或多个)

修订版A:

a b c
d e f
g h i
修订版B:

a b c
d e a f
g h i
$diff A B

将输出已删除的行
def
在文件B中插入了行
deaf
与文件A相比,相同的 行
abc
ghi

如果文件A修改为C:

a b c
c
d e b f
g h i
diff将输出同一行已删除, 但是插入了
c
debf

合并B和C,冲突将不仅仅是

d e a f
====
d e b f
但是

因此,简而言之,diff搜索相同的行块。 如果在两个文件上的这些块之间修改了文件(以及修改
不完全相同),会有冲突。

谢谢,但是
git
(或GNU
diff
opendiff
如何知道这是同一行?我明白了。谢谢我想问题是
diff
(例如
GNU diff
)如何确定两行有足够的共同内容成为同一行?只有当它们相同时,diff才会“将行视为相同”。这允许您在冲突被视为冲突后使用工具处理冲突。它不会影响Git自动合并文件的方式。
d e a f
====
c
d e b f