如何给git-status输出着色?

我想着色git-status输出,所以:

untracked files = magenta new files = green modified files = blue deleted files = red 

相反,我看到绿色和未分档文件中的分阶段文件是蓝色的: git-status的截图

我的.gitconfig是基于一些search设置以下内容:

 [color] status = auto [color "status"] added = green changed = blue untracked = magenta deleted = red 

从git config doc :

 color.status.<slot> 

使用自定义颜色进行状态着色。
<slot>是以下之一:

  • header (状态消息的标题文本),
  • addedupdated (添加但未提交的文件),
  • changed (在索引中更改但未添加的文件),
  • untracked (不被git untracked文件),
  • branch (当前分支)或者
  • nobranch (显示no分支警告的颜色,默认为红色)。

这些variables的值可以用color.branch.<slot>来指定。

所以这将工作:

 git config color.status.changed blue git config color.status.untracked magenta 

然而:

 new files = green deleted files = red 

是不可能的:你需要select一种颜色:

  • 如果将它们添加到索引中,则会selectcolor.status.added的颜色。
  • 如果他们没有被添加到索引,他们将select颜色或color.status.modified

当然,正如Elboletaire所评论的那样 :

如果以前没有启用,请记住启用颜色输出:

 git config --global color.ui true 

Shaun Luttin补充说:

该命令还可以在引号中使用多个参数。 这包括这个列表中的两种颜色(前景背景):

正常,黑色,红色,绿色,黄色,蓝色,品红色,青色和白色;

并且还包含这个列表中的一个属性(样式):

大胆的,昏暗的,眨眼的,眨眼的。

所以这将工作:

 git config color.status.changed "blue normal bold" git config color.status.header "white normal dim" 

注:使用git 2.9.1(2016年7月),输出着色scheme学习了两个新的属性, 斜体 罢工 ,除现有的大胆,反向等

请参阅Jeff King( peff )的 提交9dc3515 , 提交54590a0 , 提交5621068 , 提交df8e472 , 提交ae989a6 , 提交adb3356 , 提交0111681 (2016年6月23日) 。
(由Junio C gitster合并- gitster – in commit 3c5de5c ,2016年7月11日)

它也允许否定属性

使用“ no-bold ”而不是“ nobold ”更容易阅读,更自然地打字(对我来说,无论如何,即使我是第一个介绍“无影无踪”的人)。 允许两者都很容易。