当git-config(1)说“仅在输出到终端时使用颜色”时,它是什么意思?

7
我正在输出到终端,但是Git没有正确地检测到我正在输出到终端,以便为了着色输出。我的问题是,当git-config(1)说“只有在输出到终端时才使用颜色”(此短语出现在多个配置描述的末尾,例如color.ui和color.branch)时,它真正的含义是什么?换句话说,Git如何确定是否输出到终端,我如何更改我的环境设置以告知Git我的终端确实是终端?
具体情况:
我正在Windows上使用带有Cygwin的rxvt终端。我还安装了MSysGit。当我进行Git配置设置时:
[color]
    ui = auto
    branch = auto
    status = auto

我的终端输出仍然没有颜色。但是,当我切换到

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

然后就会出现正确的彩色输出。然而,为了正确处理实际的非终端情况,我需要切换回“自动”,而不是“始终”。所以为了使“自动”正常工作:如何更改我的环境,使Git认识到我的rxvt+Cygwin是一个支持颜色的终端?
(附:由于存在比这个相对较小的颜色问题更大的问题,我无法使用Cygwin版本的Git。请不要回复告诉我要切换到Cygwin版本。)
感谢您的帮助!

你的 TERM 环境变量设置为什么?(使用 echo $TERM 命令检查。) - ezod
@ezod:我尝试将TERM更改为几个不同的值,但没有任何效果。当前值(即我尝试的最后一个值)是“xterm-256color”。 - walrus
1个回答

2

也许值得看一下这个问题,它涵盖了检测输出是否发送到终端(即tty会话)与是否被重定向到另一个进程之间的区别。我假设这正是git在其“发送到终端”的措辞中所指的,即输出实际上是发送到tty会话。


我刚刚在我的终端中运行了这些测试,确实被正确地检测为终端。因此,Git(好吧,MSysGit)仍然是我所知道的唯一一个不认为我的终端是终端的东西。叹气。 - walrus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接