当通过 grep 进行管道传输时,如何保留 git status 的颜色输出?

Cod*_*key 7 grep colors git

我正在尝试稍微压缩 git status 的输出,以获取每当我登录 ssh 会话时运行的“系统状态”脚本。我希望它会困扰我并鼓励我更频繁地做出承诺!

git status | grep -v "git add\|git checkout\|no changes added"
Run Code Online (Sandbox Code Playgroud)

遗憾的是它失去了色彩;任何修改的文件都以默认字体颜色显示,而不是红色。

我尝试添加--color=never到 grep 命令,但这没有什么区别,所以我认为git status由于管道的原因没有添加颜色代码。由于 linux 中的一些命令必须--color=always克服这个问题,我尝试将其添加到git,但它只是抱怨一个未知的选项。

谢谢

Cod*_*key 6

我发现您可以向.git/config项目目录中的文件添加颜色选项。这正是我想要的:

[color]
status = always
Run Code Online (Sandbox Code Playgroud)

  • 或者按照[此处](/sf/answers/1111898301/)回答的命令: `git -c color.status=always status` (9认同)
  • 与其手动编辑“.git/config”,不如使用“git config color.status always”来为您完成此操作。您还可以添加“--global”或“--system”来一次性设置所有存储库的首选项。有关详细信息,请参阅“man git-config”。 (3认同)