8

我不确定发生了什么,但我只是将我的 diff 工具设置为由 git difftool 调用,但 difftool 遇到的第一个文件以标准 diff 方式显示 - 在控制台上逐行替换

diff --cc path/to/file.c
index ac1b99f,da29e2e..0000000
--- a/path/to/file.c
+++ b/path/to/file.c
@@@ -186,18 -133,20 +188,18 @@@

   code code code code
   more code more code more code
-- old code old code old code [displayed in red]
++ new code new code new code [displayed in green]
   even more code even more code 
   yet more code yet more code

这似乎是 diff 的一个特例,因为它有--cc标志和三重@符号 ( @@@) 而不是双一 ( @@),最重要的是对正在区分的修订的奇怪描述:hash1,hash2..0000000

这到底是什么?我选择 Beyond Compare 作为我的差异工具,它可以处理这些情况吗?如果没有,可能另一个可以这样做吗?

4

1 回答 1

2

组合差异是 Git 特有的,通常在其他任何地方都不可用。

Git 不知道如何调用其他命令来让它们产生组合差异,即使其他一些命令能够做到这一点。

(Git 描述了如何在各种git diff文档的一个部分中读取组合差异,并遗漏了一个关键事实:组合差异通常会忽略大部分差异。这个事实在文档的其他地方提到过,与第一部分的研究相去甚远。了解如何阅读 Git 组合差异。无论如何,组合差异仅适用于检查合并的合并部分。)

于 2019-03-07T17:44:54.217 回答