【问题标题】:Color output of specific git command特定 git 命令的颜色输出
【发布时间】:2014-04-16 11:04:12
【问题描述】:

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

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

遗憾的是,并非所有 git 命令都支持 --color 标志,尤其是 git statusgit pull

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

【问题讨论】:

    标签: git


    【解决方案1】:

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

    git -c color.ui=always status > status_file
    

    将颜色代码输出到文件中。它看不到 pty,因此不会尝试分页。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这看起来很有希望,我会试一试。
      • 这似乎是最好的解决方案,但不幸的是我现在无法在 node.js 中使用它(有pty.js,但它还不兼容 node v0.11)。还是谢谢你!
      • 好吧,我明白了:-)。不过我猜你可以使用例如发出一个简单的本地调用。 node-ffi。或者扩展一点node-posix。毕竟,您需要一个简单的调用,它会返回几个ints
      猜你喜欢
      • 2021-12-04
      • 2020-03-20
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 2014-02-06
      • 2021-10-04
      • 1970-01-01
      • 2018-11-03
      相关资源
      最近更新 更多