如何让git钩子输出显示彩色字体?

4
我目前使用git来部署一个项目,并且我想知道如何让像npmgulp这样的工具输出的结果能够以与在本地使用这些工具时相同的方式呈现出颜色?
例如: enter image description hereenter image description here
3个回答

2
简短的回答是:在git钩子中强制为每个工具使用彩色输出,或者在远程端强制设置TERM环境变量。在每个钩子脚本的开头使用export TERM=xterm(或export TERM=xterm-color)。
详细回答是:默认情况下,像npmgit这样的unix工具只有在它们检测到它们所在的终端能够改变颜色时才会生成带有额外转义序列的彩色输出。终端能力是通过环境变量TERM定义的。普通的交互式SSH会话可以将TERM值传输到远程端(参见Can I forward env variables over ssh?),但非交互式会话通常不会这样做,非交互式会话可能以无TTY模式运行。您可以强制使用特定工具的颜色(例如通过配置的npm)或正确配置TERM环境变量。

2
在您的远程服务器上, 输入以下命令:
git config --global color.ui auto  

这应该能够给你颜色


1

对于使用基于nodejs的项目,似乎git钩子的彩色输出问题是由于git默认不支持“tty”而运行钩子所导致的。

这会导致一些工具认为终端不支持颜色。

例如,如此讨论https://github.com/okonet/lint-staged/issues/693

如果您正在使用基于node的工具,则可以通过在钩子脚本中添加export FORCE_COLOR=1来解决问题。这将修复所有基于此库的工具:https://www.npmjs.com/package/supports-color


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接