如何着色git-status输出?

时间:2012-10-09 08:24:04

标签: git git-config git-status

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

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

我反而看到蓝色的绿色和非暂存文件中的暂存文件: screenshot of git-status

我的.gitconfig基于一些搜索设置了以下内容:

[color]
status = auto

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

1 个答案:

答案 0 :(得分:111)

来自git config doc

color.status.<slot>
  

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

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

这些变量的值可以在color.branch.<slot>中指定。

所以这会奏效:

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

然而:

new files = green
deleted files = red

不可能:您需要选择一种颜色:

  • 如果将它们添加到索引中,则会选择color.status.added
  • 的颜色
  • 如果它们未添加到索引中,则会选择颜色或color.status.modified

当然,commentedelboletaire

  

如果先前未启用着色输出,请记住启用着色输出:

git config --global color.ui true

Shaun Luttin补充道:

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

  

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

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

  

粗体,暗淡,ul,眨眼和反转。

所以这会奏效:

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

注意:使用git 2。9。1(2016年7月),输出着色方案学习了两个新属性,斜体 strike ,除了现有的粗体,反面等等。

请参阅commit 9dc3515commit 54590a0commit 5621068commit df8e472commit ae989a6commit adb3356commit 0111681(2016年6月23日) Jeff King (peff) (由Junio C Hamano -- gitster --合并于commit 3c5de5c,2016年7月11日)

它还允许“no-”用于否定属性

  

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