Git的差异-difftool模式不会显示cc模式

9

我不确定发生了什么,但我刚刚设置了我的差异工具以通过 git difftool 调用,然而第一个文件遇到的差异工具以标准差异方式显示 - 在控制台上一行一行地替换

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作为我的比较工具,它能处理这些情况吗?如果不能,其他工具能行吗?

1个回答

3

合并差异是Git特有的,一般情况下在其他地方不可用。

即使其他命令可以生成合并差异,Git也不知道如何调用其他命令来生成它们。

(Git在各种git diff文档的一个部分中描述了如何读取合并差异,并遗漏了一个关键事实:合并差异通常省略大部分差异。这个事实在文档的其他地方提到,远离人们学习如何读取Git合并差异时所学习的部分。总之,合并差异只适用于检查合并的部分。)


我个人没有尝试过,但是GitKraken工具可能能够显示合并的差异: https://support.gitkraken.com/working-with-commits/diff/#diff-multiple-commits - kiciek
2
我在git文档中唯一能找到-c--cc之间区别的地方是在man git-diff-tree下。 - user1071847
@user1071847:文档正在不断改进,但这些还没有一个好的描述。 - torek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接