特定git命令的颜色输出

时间:2014-04-16 11:04:13

标签: git

我正在编写一个运行git命令并捕获输出的工具,我希望输出颜色。 Git注意到该工具不是终端,因此color.ui需要设置为always。我真的不想在global / repo配置文件中设置它,因为它会混淆使用git的其他程序。 git book明确否定了这一点:

  

你很少想要color.ui = always。在大多数情况下,如果您想在重定向输出中使用颜色代码,则可以将--color标记传递给Git命令以强制它使用颜色代码。 color.ui = true设置几乎总是你想要使用的。

可悲的是,并非所有git命令都支持--color标记,最值得注意的是git statusgit pull

那么,如何为一个git命令强制颜色?是否有我可以设置的配置变量,例如对于自定义git配置文件?

2 个答案:

答案 0 :(得分:2)

您可以使用-c option覆盖配置值。这适用于所有git命令。例如:

git -c color.ui=always status > status_file

将颜色代码输出到文件中。它没有看到pty,所以它不会尝试分页。

答案 1 :(得分:1)

我认为您应该使用a master/slave PTYgit子命令而不是管道进行通信。这使得git认为它在交互式会话中运行,而不是在管道中运行。