【问题标题】:Git diff -cc mode won't be displayed by difftooldifftool 不会显示 Git diff -cc 模式
【发布时间】:2019-03-07 10:12:02
【问题描述】:

我不确定发生了什么,但我只是将我的 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 作为我的差异工具,它可以处理这些情况吗?如果没有,其他人可以这样做吗?

【问题讨论】:

    标签: git git-difftool


    【解决方案1】:

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

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

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

    【讨论】:

    • 我没有亲自尝试,启动 gitkraken 工具可能能够显示组合差异:support.gitkraken.com/working-with-commits/diff/…
    • 我能在 git 文档中找到-c--cc 之间区别的唯一地方是man git-diff-tree
    • @user1071847:文档在不断改进,但还没有很好的描述。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2013-05-20
    • 2019-09-24
    • 2013-01-11
    • 2013-04-01
    相关资源
    最近更新 更多