为 Git 控制台着色

本文将讨论我们如何配置我们的 Git 终端以具有彩色输出。我们可以根据自己的喜好自定义终端,以便于使用。

我们将使用 git config 命令来设置颜色值。让我们开始吧。

Git color.ui

Git color.ui 是指处理 Git 颜色时的主变量。要在我们的 Git 终端中禁用颜色,我们必须将其设置为 false,如下所示。

$ git config --global color.ui false

一个新的 Git 终端将变量设置为 auto。这为直接终端输出流提供了颜色,并省略了管道输出到另一个进程或定向到文件的颜色代码。

我们可以将其设置为 always 以包括上述豁免;但是,当接收管道不期望有彩色输入时,我们可能会遇到问题。

$ git config --global color.ui always

Git 颜色值

除了 color.ui,Git 还支持其他粒度颜色配置,可以设置为 alwaysautofalse。这些设置具有指定的颜色值。

Git 支持正常、黑色、红色、绿色、黄色、蓝色、洋红色、青色和白色等颜色值。

如果我们的终端支持,我们可以使用像 #ff0000 这样的十六进制颜色代码来指定颜色。

Git 颜色配置

1. color.branch

我们使用这个命令来配置 git branch 命令的输出颜色。我们可以在以下上下文中使用它。

$ git config --global color.branch <slot>

<slot> 可以是以下任何一种。

  1. current:这是指当前分支。
  2. local:指我们仓库中的本地分支。
  3. remote:指 ref/remotes 中的远程分支引用。
  4. upstream:指上游跟踪 Git 分支。
  5. plain:任何其他 ref

2. color.diff

我们使用这个命令来配置 git diffgit loggit show 命令的输出颜色。我们可以使用它,如下所示。

$ git config --global color.diff <slot>

<slot> 可以是以下任何一种。

  1. context:这是指显示在 diff 或补丁中以显示更改的文本内容行。
  2. plain:这是 context 的同义词。
  3. meta:指 git diff 上的元信息。
  4. frag:指向大块头或大块头中存在的函数。
  5. old:指向 diff 中已删除的代码行。
  6. new:指向 diff 中添加的代码行。
  7. commit:指 diff 中的提交标头。
  8. whitespace:为 git diff 中的空白错误设置颜色。

3. 颜色.状态

此布尔值配置或禁用 git status 命令的颜色编码输出。我们可以在下面的上下文中使用它。

$ git config --global color.status <slot>

<slot> 可以是以下任何一种。

  1. header:指向状态显示的标题内容。
  2. 添加更新:两者都针对任何已添加但未提交的文件。
  3. changed:这指向未添加到索引中的已修改文件。
  4. branch:指向当前分支。
  5. untracked:指向所有未跟踪的文件。
  6. unmerged:指向具有未合并更改的文件。

4. color.grep

该命令会将颜色应用于我们的 git grep 输出。我们可以在下面的上下文中使用它。

$ git config --global color.grep <slot>

<slot> 可以是以下任何一种。

  1. context:指向上下文行中不匹配的文本。
  2. filename:指向文件名前缀。
  3. function:指向函数名称行。
  4. linenumber:指向行号前缀。
  5. match:指匹配文本。