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

时间:2012-08-26 19:21:41

标签: git cygwin msysgit git-config rxvt

我正在输出到终端,但是Git没有正确检测到我正在输出到终端,以便为输出着色。我的问题是,当git-config(1)表示“仅在输出到终端时才使用颜色”时,git-config(1)的含义是什么(此短语出现在多个配置描述的末尾,例如color.ui和color 。科)?换句话说,Git如何决定它是否输出到终端,以及如何更改我的环境设置以告知Git我的终端确实是终端?

具体细节:
我在Windows上使用带有Cygwin的rxvt终端。我也安装了MSysGit。当我进行Git配置设置时:

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

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

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

然后有正确的彩色输出。但是,为了正确处理实际的非终端案例,我需要切换回“auto”而不是“always”。因此,为了使“自动”正常工作:如何更改我的环境以使Git认识到我的rxvt + Cygwin是一个能够支持颜色的终端?

(PS。由于比这个相对较小的颜色问题要大得多的问题,我不能使用Cygwin版本的Git。请不要回复告诉我切换到Cygwin版本。)

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

值得查看this question,其中包括检测输出到终端(即tty会话)与重定向到另一个进程之间的差异。我假设这就是git在“去终端”这句话中的意思,输出实际上是一个tty会话。