7

我正在输出到终端,但 Git 没有正确检测到我正在输出到终端,以便为输出着色。我的问题是,当 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

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

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

谢谢你的帮助!

4

1 回答 1

2

这个问题可能值得一看,它涵盖了检测输出到终端(即 tty 会话)与将输出重定向到另一个进程之间的差异。我假设这就是 git 在“进入终端”的措辞中的意思,输出实际上是进入 tty 会话。

于 2012-08-26T19:32:50.707 回答