我正在编写一个运行git命令并捕获输出的工具,我希望输出颜色。 Git注意到该工具不是终端,因此color.ui
需要设置为always
。我真的不想在global / repo配置文件中设置它,因为它会混淆使用git的其他程序。 git book明确否定了这一点:
你很少想要color.ui = always。在大多数情况下,如果您想在重定向输出中使用颜色代码,则可以将--color标记传递给Git命令以强制它使用颜色代码。 color.ui = true设置几乎总是你想要使用的。
可悲的是,并非所有git命令都支持--color
标记,最值得注意的是git status
和git pull
。
那么,如何为一个git命令强制颜色?是否有我可以设置的配置变量,例如对于自定义git配置文件?
答案 0 :(得分:2)
您可以使用-c
option覆盖配置值。这适用于所有git命令。例如:
git -c color.ui=always status > status_file
将颜色代码输出到文件中。它没有看到pty,所以它不会尝试分页。
答案 1 :(得分:1)
我认为您应该使用a master/slave PTY与git
子命令而不是管道进行通信。这使得git认为它在交互式会话中运行,而不是在管道中运行。