我正在输出到终端,但是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版本。)
感谢您的帮助!
答案 0 :(得分:2)
值得查看this question,其中包括检测输出到终端(即tty会话)与重定向到另一个进程之间的差异。我假设这就是git在“去终端”这句话中的意思,输出实际上是一个tty会话。