我不确定发生了什么,但我只是将 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 作为我的差异工具,它可以处理这些情况吗?如果没有,其他人可以这样做吗?
组合差异是 Git 特有的,通常在其他地方不可用。
Git 不知道如何调用其他命令来生成组合的差异,即使其他命令能够做到这一点。
(Git 描述了如何在各种git diff
文档的一个部分中读取组合差异,并忽略了一个关键事实:组合差异通常会忽略大部分差异。这个事实在文档的其他地方提到,与第一部分在尝试了解如何读取 Git 组合差异。无论如何,组合差异仅适用于检查合并的 merge-y 部分。)