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

时间:2018-03-06 14:28:54

标签: git colors pager less-unix

我无法得到:

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 --colordifftool选项的diff参数命令。现在,当管道设置为较少时,这会保持颜色:

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

1 个答案:

答案 0 :(得分:1)

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