我最近看到Windows中的git控制台是有颜色的,例如,绿色表示添加,红色表示删除等等。我怎么给git控制台上色呢?

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


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

有趣的是

彩色的输出: Git配置全局颜色。分支汽车 Git配置全局颜色。diff汽车 Git配置——global color.interactive auto Git配置全局颜色。地位的汽车


正如@VonC所指出的,color。ui从Git 1.8.4开始默认为auto


从Unix和Linux Stackexchange问题如何着色输出的git?以及@Evgeny的回答:

git config --global color.ui auto

这颜色。UI是一个元配置,包括所有不同的颜色。*配置可用的git命令。这在git帮助配置中有深入的解释。

基本上,这比设置不同的颜色更简单,更经得起考验。*单独设置。

git配置文档的深入解释:

color.ui: This variable determines the default value for variables such as color.diff and color.grep that control the use of color per command family. Its scope will expand as more commands learn configuration to set a default for the --color option. Set it to always if you want all output not intended for machine consumption to use color, to true or auto if you want such output to use color when written to the terminal, or to false or never if you prefer git commands not to use color unless enabled explicitly with some other configuration or the --color option.


在Ubuntu或任何其他平台(是的,Windows也是!);从2013年8月23日发布的git1.8.4开始,你不需要做任何事情:

许多教程教用户设置“颜色”。将“user.name/email”设置为“auto”后的第一件事,用于向Git介绍自己。现在该变量默认为"auto"。

所以默认情况下你会看到颜色。


如果您要求,Git会自动为大部分输出上色。你可以非常具体地说明你想要什么颜色以及如何着色;但是要打开所有默认的终端颜色,请设置颜色。UI为true:

git config --global color.ui true

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

vim ~/.gitconfig

然后加上:

[color]
  diff = auto
  status = auto
  branch = auto

在你的~/。Gitconfig文件,简单地添加这个:

[color]
  ui = auto

它负责所有的git命令。


添加到你的.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

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 

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

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

参见Taylor Blau (Taylor)提交fb0dc3b(2018年4月18日)和提交0a8950b(2018年4月09日)。 (由Junio C Hamano—gitster—在commit e3e042b中合并,2018年5月8日)

builtin/config.c: support --type=<type> as preferred alias for --<type> git config has long allowed the ability for callers to provide a 'type specifier', which instructs git config to (1) ensure that incoming values can be interpreted as that type, and (2) that outgoing values are canonicalized under that type. In another series, we propose to extend this functionality with --type=color and --default to replace --get-color. However, we traditionally use --color to mean "colorize this output", instead of "this value should be treated as a color". Currently, git config does not support this kind of colorization, but we should be careful to avoid squatting on this option too soon, so that git config can support --color (in the traditional sense) in the future, if that is desired. In this patch, we support --type=<int|bool|bool-or-int|...> in addition to --int, --bool, and etc. This allows the aforementioned upcoming patch to support querying a color value with a default via --type=color --default=..., without squandering --color. We retain the historic behavior of complaining when multiple, legacy-style --<type> flags are given, as well as extend this to conflicting new-style --type=<type> flags. --int --type=int (and its commutative pair) does not complain, but --bool --type=int (and its commutative pair) does.

所以在你有——bool和——int之前,现在(文档):

--type <type>

'git config' will ensure that any input or output is valid under the given type constraint(s), and will canonicalize outgoing values in <type>'s canonical form. Valid <type>'s include: 'bool': canonicalize values as either "true" or "false". 'int': canonicalize values as simple decimal numbers. An optional suffix of 'k', 'm', or 'g' will cause the value to be multiplied by 1024, 1048576, or 1073741824 upon input. 'bool-or-int': canonicalize according to either 'bool' or 'int', as described above. 'path': canonicalize by adding a leading ~ to the value of $HOME and ~user to the home directory for the specified user. This specifier has no effect when setting the value (but you can use git config section.variable ~/ from the command line to let your shell do the expansion.) 'expiry-date': canonicalize by converting from a fixed or relative date-string to a timestamp. This specifier has no effect when setting the value.

--bool::
--int::
--bool-or-int::
--path::
--expiry-date::
  Historical options for selecting a type specifier. Prefer instead `--type`,
(see: above).

注意,Git 2.22 (Q2 2019)解释了“Git config -type=color…”是为了取代“Git config -get-color”,但有一个细微的差异没有被记录下来,现在已经修复了。

参见Jeff King (peff)的commit cd8e759 (05 march 2019)。 (由Junio C Hamano - gitster -在commit f6c75e3中合并,2019年3月20日)

配置:document——type=color输出是一个完整的行 即使更新的"——type=color"选项是指"git config" 为了与传统的"——get-color"选项向上兼容, 与后者不同的是,它的输出不是缺少的不完整的行 最后的LF。 这使得它与其他类型的输出一致,如“git config——type=bool”。 记录它,因为它有时会让不知情的用户感到惊讶。

现在是这样写的:

——type=color[——default=<default>]优先于——get-color (但请注意——get-color将省略打印的末尾换行符 ——类型=颜色)。


你可以看到git 2.26 (Q1 2020)中使用git config——type=bool来取代样例模板中的“git config——bool”调用。

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

模板:修复已弃用的类型选项——bool 署名:Lucius Hu git-config的——bool选项被标记为历史的,建议用户使用——type=bool来代替。 此提交将替换模板中出现的所有——bool类型。 还要注意,没有找到其他不推荐的类型选项,包括——int、——boolo -or-int、——path或——expiry-date。


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

步骤:

~ /开放。Gitconfig用于编辑 六世~ / .gitconfig 粘贴以下代码: (颜色) UI = auto (颜色“分支”) 电流=黄反向 Local =黄色 远程=绿色 (颜色" diff ") Meta =黄色加粗 碎片=洋红色粗体 旧=红色加粗 新=绿色加粗 (颜色“状态”) 新增=黄色 改变=绿色 Untracked =青色 保存文件。

只要改变任何文件在您的本地回购和做

git status

好吧,如果你对默认设置不满意,你可以使用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"

demo

解释

you can write the long script on .gitconfig use the syntax as below: [alias] your-cmd = !f() { \ \ }; f" echo -n -e (see more echo) -n = Do not output a trailing newline. -e Enable interpretation of the following backslash-escaped \\033[38;2;255;0;0m\\033[4m (see more SGR parameters) \\033[38;2;255;0;0m : 38 mean fore color. 255;0;0 = Red | r;g;b \\033[4m : underline grep : The grep command is used to search text. sed -e 's/be_replace_string/new_string/' replace string to new string.


改进win10上Git“branch-type”的颜色:在所有示例中显示命令Git branch -avv


1. Git默认配色方案:

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


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

git config --system color.branch.local    "yellow"
git config --system color.branch.current  "yellow reverse"
git config --system color.branch.remote   "green"


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

git config --system color.branch.local    "yellow"
git config --system color.branch.current  "brightwhite yellow"
git config --system color.branch.remote   "normal green"
git config --system color.branch.upstream "brightwhite cyan"


4. 自己制作:

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

(normal|(bright)?(black|red|green|yellow|blue|magenta|cyan|white))

据我所知,在Windows 10控制台上,暗淡选项(见底部的文档链接)没有任何作用,而粗体选项与明亮*颜色具有相同的效果。现在回想一下示例中显示的配置语法:

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

参数<config-type>通常是——system或——global。如果省略,指定的颜色将只应用于当前的repo。使用刚才详细介绍的颜色名称,您可以为特定的分支类型设置前景色<fg>和背景<bg>颜色,其中<slot>是以下之一:

电流(当前支路) 本地(本地分支机构) Remote (refs/remotes/中的远程跟踪分支) 上游(上游跟踪分支) 平原

像往常一样,你可以通过以下命令显示你的整个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


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

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

然后保存配置文件。 打开git控制台,执行git分支。 你会发现其中的差别