Как сохранить цвет при добавлении `git difftool` на пейджер

Я не могу получить:

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

сохранить свой цветной вывод при прокачке less -R, Что я делаю неправильно?

Я думаю, что я перепробовал все параметры конфигурации git color, например

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Я вижу цветной вывод. Есть идеи?

Редактировать: Благодаря @ Джонатан-Уэйкли, я пропустил =always аргумент --color вариант во внешнем difftooldiff команда. Это теперь сохраняет цвета при конвейере меньше:

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

1 ответ

Решение

Цвета не приходят от git они исходят из внешнего инструмента сравнения, вот что решает, использовать цвета или нет. Так что вам нужно использовать -x "diff --color=always ..." сказать diff использовать цвета, даже если вывод не идет на терминал.

Другие вопросы по тегам