104

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

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

相反,我看到的是绿色的暂存文件和蓝色的未暂存文件: git状态截图

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

[color]
status = auto

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

1 回答 1

154

git config 文档

color.status.<slot>

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

  • header(状态消息的标题文本),
  • addedupdated(已添加但未提交的文件),
  • changed(已更改但未添加到索引中的文件),
  • untracked(不被 git 跟踪的文件),
  • branch(当前分支),
  • nobranch(无分支警告显示的颜色,默认为红色),
  • localBranchremoteBranch(本地和远程分支名称,当分支和跟踪信息以状态短格式显示时),
  • unmerged(具有未合并更改的文件)。

这些变量的值可以在 中指定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.changed.

笔记:

颜色也可以用 0 到 255 之间的数字给出;这些使用 ANSI 256 色模式(但并非所有终端都支持此模式)。如Joshua Goldberg的评论中所述,
请参阅“ xterm 256 colors ”以获取这些数字。


当然,正如elboletaire评论的那样:

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

git config --global color.ui true

肖恩·卢廷补充道:

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

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

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

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

所以这将起作用:

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

注意:使用 git 2.9.1(2016 年 7 月),输出着色方案学习了两个新属性,斜体罢工,除了现有的粗体、反转等。

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

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

使用 " no-bold" 而不是 " nobold" 更容易阅读和输入更自然(对我来说,无论如何,即使我是nobold首先介绍 " " 的人)。两者都允许很容易。

于 2012-10-09T10:37:00.320 回答