Что означает git-config(1), когда он говорит, что "цвета используются только тогда, когда вывод выводится на терминал"?
Я вывожу на терминал, но Git неправильно определяет, что я вывожу на терминал, с целью раскрасить вывод. Мой вопрос заключается в том, что на самом деле означает git-config(1), когда он говорит, что "цвета используются только тогда, когда вывод выводится на терминал" (эта фраза появляется в конце нескольких описаний конфигурации, таких как color.ui и color.ветка)? Другими словами, как Git решает, выводить ли он на терминал или нет, и как мне изменить настройки среды, чтобы сообщить Git, что мой терминал действительно является терминалом?
Особенности:
Я использую терминал rxvt с Cygwin на Windows. У меня также установлен MSysGit. Когда я делаю настройки Git config:
[color]
ui = auto
branch = auto
status = auto
в моем терминальном выводе все еще нет цвета. Тем не менее, когда я переключаюсь на
[color]
ui = always
branch = always
status = always
тогда есть правильный цветной вывод. Однако мне нужно переключиться обратно на "авто", а не "всегда", чтобы правильно обрабатывать реальные нетерминальные случаи. Итак, чтобы заставить "авто" работать правильно: как мне изменить среду, чтобы Git распознал, что мой rxvt+Cygwin - это терминал, способный поддерживать цвет?
(PS. Я не могу использовать версию Git для Cygwin из-за гораздо более серьезных проблем, чем эта относительно небольшая проблема с цветом. Пожалуйста, не отвечайте, предлагая мне перейти на версию Cygwin.)
Спасибо за вашу помощь!
1 ответ
Возможно, стоит посмотреть на этот вопрос, который охватывает обнаружение разницы между выводом, идущим на терминал (т. Е. Сеанс tty), и его перенаправлением на другой процесс. Я предполагаю, что это то, что git означает в своей фразе "идти в терминал", что на самом деле вывод идет в tty-сеанс.