difftool 不会显示 Git diff -cc 模式

Cha*_*les 7 git git-difftool

我不确定发生了什么,但我只是将 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
Run Code Online (Sandbox Code Playgroud)

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

这究竟是什么?我选择 Beyond Compare 作为我的差异工具,它可以处理这些情况吗?如果没有,其他人可以这样做吗?

tor*_*rek 3

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

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

(Git 描述了如何在各种git diff文档的一个部分中读取组合差异,并忽略了一个关键事实:组合差异通常会忽略大部分差异。这个事实在文档的其他地方提到,与第一部分在尝试了解如何读取 Git 组合差异。无论如何,组合差异仅适用于检查合并的 merge-y 部分。)

  • 在 git 文档中,我唯一能找到 `-c` 和 `--cc` 之间区别的地方是在 `man git-diff-tree` 下。 (2认同)