如何对 git-status 输出进行着色?

问题描述 投票:0回答:2

我想对 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
git git-config git-status
2个回答
169
投票

来自 git 配置文档

color.status.<slot>

使用自定义颜色进行状态着色。

<slot>
是以下之一:

  • header
    (状态消息的标题文本),
  • added
    updated
    (已添加但未提交的文件),
  • changed
    (已更改但未添加到索引中的文件),
  • untracked
    (git 未跟踪的文件),
  • branch
    (当前分支),
  • nobranch
    (无分支警告显示的颜色,默认为红色),
  • localBranch
    remoteBranch
    (当分支和跟踪信息以状态短格式显示时,分别为本地和远程分支名称),
  • 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 色模式(但并非所有终端都支持此模式)。
请参阅“xterm 256 色”了解这些数字,如 Joshua Goldberg评论中所述。


当然,正如 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 月),输出着色方案除了现有的粗体、反向等之外,还学习了 两个新属性,italicstrike

参见

提交 9dc3515提交 54590a0提交 5621068提交 df8e472提交 ae989a6提交 adb3356提交 0111681 (2016 年 6 月 23 日)作者:Jeff King (peff

) 
.
(由 Junio C Hamano -- gitster
 --
合并于
commit 3c5de5c,2016 年 7 月 11 日)

它还允许使用“

no-

”来否定属性

使用“

no-bold

”而不是“
nobold
”更容易阅读并且打字更自然(无论如何,对我来说,即使我是首先引入“
nobold
”的人)。两者都允许很容易。


0
投票

git config --global color.ui always

 对我有用,而 
git config --global color.ui true
 则不然。

© www.soinside.com 2019 - 2024. All rights reserved.