当前位置: 首页 > 知识库问答 >
问题:

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

戚京
2023-03-14

我正在向一个终端输出,但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

然后是正确的彩色输出。但是,我需要切换回“自动”,而不是“总是”,以便正确处理实际的非终端案件。所以为了让“auto”正确工作:我如何改变我的环境使Git识别我的rxvt+cygwin是一个能够支持颜色的终端?

(ps.我不能使用Cygwin版本的Git,因为比这个相对次要的颜色问题大得多的问题,请不要回复告诉我切换到Cygwin版本)

谢谢你的帮助!

共有1个答案

吕学
2023-03-14

这个问题可能是值得研究的,它包括检测输出到终端(即tty会话)与被重定向到另一个进程之间的差异。我假设这就是git在其短语“going to a Terminal”中的意思,输出实际上是去tty会话。

 类似资料: