為 Git 控制檯著色

John Wachira 2023年1月30日
  1. Git color.ui
  2. Git 顏色值
  3. Git 顏色配置
為 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:指匹配文字。
作者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn