Что означает git -config (1), когда он говорит, что "цвета используются только при выходе на терминал"?

Я выводю на терминал, но Git неправильно обнаруживает, что я выводю на терминал, с целью раскраски вывода. Мой вопрос: что означает git -config (1), когда он говорит, что "цвета используются только при выходе на терминал" (эта фраза появляется в конце описания нескольких конфигураций, например color.ui и color.branch)? Другими словами, как Git определяет, выводит ли он на терминал, и как мне изменить настройки среды, чтобы сообщить Git, что мой терминал действительно является терминалом?

Особенности:
Я использую терминал rxvt с Cygwin в Windows. У меня также установлен MSysGit. Когда я создаю настройки конфигурации Git:

[color]
    ui = auto
    branch = auto
    status = auto

в моем терминале нет цвета. Однако, когда я переключаюсь на

[color]
    ui = always
    branch = always
    status = always

то есть правильный цветной выход. Однако мне нужно переключиться на "авто", а не "всегда", чтобы правильно обрабатывать фактические нетерминальные случаи. Итак, для правильной работы "auto": как изменить свою среду, чтобы Git распознал, что мой rxvt + Cygwin - это терминал, способный поддерживать цвет?

(PS. Я не могу использовать версию Cygwin Git из-за гораздо больших проблем, чем эта относительно небольшая проблема с цветом. Пожалуйста, не отвечайте, чтобы я сказал, чтобы переключиться на версию Cygwin.)

Спасибо за вашу помощь!

Ответ 1

Возможно, стоит рассмотреть этот вопрос, который охватывает обнаружение разницы между выходом, идущим на терминал (т.е. сеансом tty), и перенаправлением на другой процесс. Я предполагаю, что это означает, что git означает в своем выражении "переход к терминалу", что вывод фактически идет на сеанс tty.