401

我最近看到gitWindows 中的控制台是彩色的,例如绿色表示添加,红色表示删除等。我如何为我的git控制台着色?

要安装它,我使用了以下命令:$ sudo apt-get install git-core

4

13 回答 13

721

正如@VonC所指出的,从 Git 1.8.4 开始默认color.uiauto


来自 Unix & Linux Stackexchange 问题How to colorize output of git? 以及@Evgeny 的回答

git config --global color.ui auto

这是一个元配置,包括命令可用的color.ui所有各种配置。这在 中进行了深入解释。color.*gitgit help config

所以基本上它比单独设置不同的设置更容易和更具未来性color.*

git config文档中的深入解释:

color.ui:此变量确定变量的默认值,例如color.diffcolor.grep控制每个命令系列的颜色使用。随着更多命令学习配置以设置--color选项的默认值,它的范围将扩大。always如果您希望所有不打算用于机器消耗的输出都使用颜色,true或者auto如果您希望此类输出在写入终端时使用颜色,false或者never如果您更喜欢 git 命令不使用颜色,除非通过某些明确启用,请将其设置为其他配置或--color选项。

于 2012-10-25T18:47:49.520 回答
59

例如参见https://web.archive.org/web/20080506194329/http://www.arthurkoziel.com/2008/05/02/git-configuration/

有趣的部分是

彩色输出:

git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto
于 2012-06-12T14:31:34.320 回答
44

将下一个代码添加到您的 .gitconfig 文件中:

[color]
    ui = auto
[color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
[color "diff"]
    meta = yellow bold
    frag = magenta bold
    old = red bold
    new = green bold
[color "status"]
    added = yellow
    changed = green
    untracked = cyan
于 2015-03-28T17:54:44.333 回答
8

如果您要求,Git 会自动为其大部分输出着色。您可以非常具体地了解您想要什么颜色以及如何上色;但要打开所有默认终端着色,请将 color.ui 设置为 true:

git config --global color.ui true
于 2013-08-06T18:39:16.507 回答
7

在 Ubuntu 或任何其他平台中(是的,Windows 也是如此!);从2013-08-23 发布git1.8.4开始,您无需执行任何操作

许多教程教用户将“color.ui”设置为“auto”作为您设置“ user.name/email”后的第一件事,以向自己介绍 Git。现在变量默认为“ auto”。

所以你会默认看到颜色。

于 2013-06-24T15:13:42.973 回答
6

在您的~/.gitconfig文件中,只需添加以下内容:

[color]
  ui = auto

它会处理你所有的 git 命令。

于 2014-07-08T17:36:59.870 回答
5

另一种方法是编辑.gitconfig(如果不存在则创建一个),例如:

vim ~/.gitconfig

然后添加:

[color]
  diff = auto
  status = auto
  branch = auto
于 2013-12-25T01:52:26.587 回答
5

GIT 默认使用彩色输出,但在某些系统(如 CentOS)上未启用。您可以像这样启用它

git config --global color.ui  true 
git config --global color.ui  false 
git config --global color.ui  auto 

您可以从这里选择您需要的命令。

这里--global是可选的,可以对系统中的每个存储库应用操作。如果您只想为当前存储库应用着色,那么您可以执行以下操作 -

 git config color.ui  true 
于 2016-02-26T13:22:39.053 回答
3

好吧,如果你对默认设置不满意,你可以使用ANSI转义码帮你设置颜色,如果你想修改一些文字,你可以写bash来帮你。见下图:

样例

# .gitconfig

[alias]
    st-color = "!f() { \
        echo -n -e '\\033[38;2;255;0;01m\\033[4m' ;\
        git status -s | grep ' D' | \
        sed -e 's/^ ./DELETE:/' ; \
        echo -n -e '\\033[m' ;\
        \
        echo -n -e '\\033[48;2;128;128;128m' ;\
        echo -n -e '\\033[38;2;0;255;01m' ;\
        git status -s | grep ' [AM]' | \
        sed -e 's/^ ./NEW OR MODIFY:/' ; \
        echo -n -e '\\033[m' ;\
        \
        echo -n -e '\\033[38;2;255;0;255m' ;\
        echo Rename ;\
        git status -s | grep 'R ' | \
        sed -e 's/^..//' ; \
        echo -n -e '\\033[m' ;\
    }; f"

演示

在此处输入图像描述

解释

  1. .gitconfig您可以使用以下语法编写长脚本:

    [alias]
        your-cmd = !f() { \
            \
        }; f"
    
  2. echo -n -e (查看更多回声

    • -n = 不输出尾随换行符。
    • -e 启用对以下反斜杠转义的解释
  3. \\033[38;2;255;0;0m\\033[4m(查看更多SGR 参数

    • \\033[38;2;255;0;0m:38 表示前景色。255;0;0 =红色| r;g;b
    • \\033[4m: 下划线
  4. grep : grep 命令用于搜索文本。

  5. sed -e 's/be_replace_string/new_string/' 将字符串替换为新字符串。

于 2020-07-07T09:03:45.453 回答
3

改进 Windows 10 上的 Git“分支类型”颜色:

显示 git branch -avv 所有示例的命令...


1. Git 默认配色方案:

git config --system --remove-section color.branch

在此处输入图像描述


2.本页另一个答案中给出的分支颜色:

git config --system color.branch.local “黄色”
git config --system color.branch.current "黄色反转"
git config --system color.branch.remote "green"

在此处输入图像描述


3.可能改进的分支配色方案:

git config --system color.branch.local “黄色”
git config --system color.branch.current "亮白色黄色"
git config --system color.branch.remote "正常绿色"
git config --system color.branch.upstream "亮白色青色"

在此处输入图像描述


4. 自己制作:

指定前景色和(可选)背景色。在 Windows 10 中有效的一组颜色是根据以下正则表达式给出的(是的,您可以使用brightblack它,它实际上非常有用):

(正常|(亮)?(黑|红|绿|黄|蓝|品红|青|白))

据我所知,该dim选项(请参阅底部的文档链接)在 Windows 10 控制台中没有任何作用,并且该选项与颜色bold具有相同的效果。bright*现在回想一下示例中显示的配置语法:

git config <config-type> color.branch.<slot>  "<fg> <bg>"

该参数<config-type>通常是--system--global。如果省略,则指定的颜色将仅应用于当前存储库。使用刚刚详述的颜色名称,您可以为特定分支类型设置前景色<fg>和背景色,其中是以下之一:<bg><slot>

  • current(当前分支)
  • local(当地分支机构)
  • remote(refs/remotes/ 中的远程跟踪分支)
  • upstream(上游跟踪分支)
  • plain

与往常一样,您可以通过以下命令显示整个 git 配置,其中将包括您在此处描述的设置的任何选项:

git config -l --show-origin

请注意,还有一组与日志输出颜色有关的配置选项(此处未讨论):

git config --system color.decorate.(branch|remoteBranch|tag|stash|HEAD|grafted) <color>

参考:https ://git-scm.com/docs/git-config

于 2021-09-23T03:38:05.260 回答
2

使用 Git 2.18,您可以更好地控制如何在控制台中指定颜色。
git config”命令使用单独的选项,例如“ --int”、“ --bool”等来指定调用者希望将值解释为什么类型

引入了一个新的 " --type=<typename>" 选项,这将使定义新类型更加简洁。

请参阅提交 fb0dc3b(2018 年 4 月 18 日)和Taylor Blau( 2018 年 4 月 9 日)提交的 0a8950b(2018 年 4 月 9 日(由Junio C Hamano 合并 -- --提交 e3e042b中,2018 年 5 月 8 日)ttaylorr
gitster

builtin/config.c: 支持--type=<type>作为首选别名--<type>

git config长期以来,调用者能够提供“类型说明符”,它指示git config(1) 确保传入值可以解释为该类型,以及 (2) 传出值在该类型下被规范化。

在另一个系列中,我们建议使用 --type=color--default替换--get-color.

但是,我们传统上--color用来表示“将此输出着色”,而不是“应将此值视为颜色”。

目前,git config不支持这种着色,但我们应该小心避免过早地蹲在这个选项上,以便 将来git config可以支持--color(在传统意义上),如果需要的话。

在这个补丁中,我们还支持,--type=<int|bool|bool-or-int|...>等。这使得前面提到的即将发布的补丁支持使用默认 via 查询颜色值,而不会浪费--int--bool
--type=color --default=...--color

当给出多个传统风格的--<type>标志时,我们保留了抱怨的历史行为,并将其扩展到冲突的新风格--type=<type>标志。--int --type=int(及其可交换对)不会抱怨,但--bool --type=int(及其可交换对)会抱怨。

因此,在您拥有--booland之前--int,现在(文档):

--type <type>

' git config' 将确保任何输入或输出在给定的类型约束下都是有效的,并且将以<type>' 的规范形式规范化传出值。

有效<type>的包括:

  • ' bool':将值规范化为“ true”或“ false”。
  • ' int':将值规范化为简单的十进制数。k' '、' m' 或 ' '的可选后缀g将导致值在输入时乘以 1024、1048576 或 1073741824。
  • ' ':如上所述,根据 ' ' 或 ' 'bool-or-int进行规范化。boolint
  • ' ':通过将前导添加到指定用户的值和主目录来path规范化。此说明符在设置值时无效(但您可以从命令行使用,让您的 shell 进行扩展。)~$HOME~usergit config section.variable ~/
  • ' expiry-date':通过从固定或相对日期字符串转换为时间戳来规范化。此说明符在设置值时无效。
--bool::
--int::
--bool-or-int::
--path::
--expiry-date::
  Historical options for selecting a type specifier. Prefer instead `--type`,
(see: above).

请注意,Git 2.22(2019 年第 2 季度)解释了“ git config --type=color ...”是为了替换“ git config --get-color”,但有一点没有记录在案,现在已修复。

请参阅Jeff King ( ) 的提交 cd8e759(2019 年 3 月 5 日(由Junio C Hamano 合并 -- --提交 f6c75e3中,2019 年 3 月 20 日)peff
gitster

config: 文档--type=color输出是完整的一行

尽管较新的 " --type=color" 选项到 " git config" 是为了向上兼容传统的 " --get-color" 选项,但与后者不同的是,它的输出不是最后缺少 LF 的不完整行。
这使得它与“”等其他类型的输出一致git config --type=bool

记录它,因为它有时会让毫无戒心的用户感到惊讶。

现在是这样写的:

--type=color [--default=<default>]优先于--get-color (但请注意,--get-color它将省略由 打印的尾随换行符 --type=color)。


您可以看到git config --type=bool与 Git 2.26(2020 年第一季度)一起使用来替换git config --bool示例模板中的“”调用。

请参阅Lucius Hu ( ) 的提交 81e3db4(2020 年 1 月 19 日(由Junio C Hamano 合并 -- --提交 7050624中,2020 年 1 月 30 日)lebensterben
gitster

templates:修复不推荐使用的类型选项--bool

签字人:Lucius Hu

--bool选项标记为历史,git-config建议用户--type=bool改用。
此提交替换模板中所有出现的--bool

另请注意,没有找到其他不推荐使用的类型选项,包括--int--bool-or-int--path--expiry-date

于 2018-05-20T21:22:14.427 回答
1

参考这里: https ://nathanhoad.net/how-to-colours-in-git/

脚步:

  1. 打开 ~/.gitconfig 进行编辑

    vi ~/.gitconfig

  2. 粘贴以下代码:

    [color]
      ui = auto
    [color "branch"]
      current = yellow reverse
      local = yellow
      remote = green
    [color "diff"]
      meta = yellow bold
      frag = magenta bold
      old = red bold
      new = green bold
    [color "status"]
      added = yellow
      changed = green
      untracked = cyan
    
  3. 保存文件。

只需更改本地存储库中的任何文件并执行

git status
于 2019-04-01T07:02:31.227 回答
-1

假设您希望当前分支为黄色,所有其他分支为青色粗体。我正在考虑您希望这些更改在本地完成,即在您当前的存储库中完成,而不是针对您系统中存在的所有存储库。使用“cd .git”进入 .git 文件,然后打开“config”文件。在配置文件中键入以下内容,而不更改配置文件中的任何其他内容。

 [color]
         ui=true
    [color "branch"]
         local=cyan bold 
         current=yellow bold

然后保存配置文件。打开 git 控制台并执行git branch。你会看到区别

于 2021-10-31T13:29:01.070 回答