将“git difftool”传递给寻呼机时如何保持颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将“git difftool”传递给寻呼机时如何保持颜色相关的知识,希望对你有一定的参考价值。

我不明白:

git difftool -b -y -x "diff --color --suppress-common-lines -y -w -W 200" master:file.txt file.txt

管道到less -R时保留其彩色输出。我究竟做错了什么?

我想我已经尝试了所有的git颜色配置选项,例如

git -c color.ui=always difftool --color=always -b -y -x "diff --color --suppress-common-lines -y -w -W 200" master:file.txt file.txt | less -R

但是没有颜色。一旦我将管道移到less -R,我就会看到彩色输出。有任何想法吗?

编辑:感谢@ jonathan-wakely,我错过了外部=always --color命令中difftool选项的diff参数。这样可以在管道减少时保持颜色:

git difftool -b -y -x "/usr/local/bin/diff --color=always --suppress-common-lines -y -w -W 200" master:file.txt file.txt
答案

颜色不是来自git,它们来自外部差异工具,因此决定是否使用颜色。所以你需要使用-x "diff --color=always ..."告诉diff使用颜色,即使输出没有到达终端。

以上是关于将“git difftool”传递给寻呼机时如何保持颜色的主要内容,如果未能解决你的问题,请参考以下文章

git difftool 持有外壳

如何使用 git difftool 来区分合并冲突?

git difftool 详解

git difftool和mergetool图形化

设置和使用 Meld 作为你的 git difftool 和 mergetool

如何在 ViewPager 中实现 Swipe 事件以查看 Flipper?