我最近看到git
Windows 中的控制台是彩色的,例如绿色表示添加,红色表示删除等。我如何为我的git
控制台着色?
要安装它,我使用了以下命令:$ sudo apt-get install git-core
正如@VonC所指出的,从 Git 1.8.4 开始默认color.ui
auto
来自 Unix & Linux Stackexchange 问题How to colorize output of git? 以及@Evgeny 的回答:
git config --global color.ui auto
这是一个元配置,包括命令可用的
color.ui
所有各种配置。这在 中进行了深入解释。color.*
git
git help config
所以基本上它比单独设置不同的设置更容易和更具未来性color.*
。
git config
文档中的深入解释:
color.ui
:此变量确定变量的默认值,例如color.diff
和color.grep
控制每个命令系列的颜色使用。随着更多命令学习配置以设置--color
选项的默认值,它的范围将扩大。always
如果您希望所有不打算用于机器消耗的输出都使用颜色,true
或者auto
如果您希望此类输出在写入终端时使用颜色,false
或者never
如果您更喜欢 git 命令不使用颜色,除非通过某些明确启用,请将其设置为其他配置或--color
选项。
例如参见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
将下一个代码添加到您的 .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 会自动为其大部分输出着色。您可以非常具体地了解您想要什么颜色以及如何上色;但要打开所有默认终端着色,请将 color.ui 设置为 true:
git config --global color.ui true
在 Ubuntu 或任何其他平台中(是的,Windows 也是如此!);从2013-08-23 发布的git1.8.4开始,您无需执行任何操作:
许多教程教用户将“color.ui”设置为“auto”作为您设置“
user.name/email
”后的第一件事,以向自己介绍 Git。现在变量默认为“auto
”。
所以你会默认看到颜色。
在您的~/.gitconfig
文件中,只需添加以下内容:
[color]
ui = auto
它会处理你所有的 git 命令。
另一种方法是编辑.gitconfig
(如果不存在则创建一个),例如:
vim ~/.gitconfig
然后添加:
[color]
diff = auto
status = auto
branch = auto
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
好吧,如果你对默认设置不满意,你可以使用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"
改进 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>
使用 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
(及其可交换对)会抱怨。
因此,在您拥有--bool
and之前--int
,现在(文档):
--type <type>
'
git config
' 将确保任何输入或输出在给定的类型约束下都是有效的,并且将以<type>
' 的规范形式规范化传出值。有效
<type>
的包括:
- '
bool
':将值规范化为“true
”或“false
”。- '
int
':将值规范化为简单的十进制数。k
' '、'm
' 或 ' '的可选后缀g
将导致值在输入时乘以 1024、1048576 或 1073741824。- ' ':如上所述,根据 ' ' 或 ' '
bool-or-int
进行规范化。bool
int
- ' ':通过将前导添加到指定用户的值和主目录来
path
规范化。此说明符在设置值时无效(但您可以从命令行使用,让您的 shell 进行扩展。)~
$HOME
~user
git 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
。
参考这里: https ://nathanhoad.net/how-to-colours-in-git/
脚步:
打开 ~/.gitconfig 进行编辑
vi ~/.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 status
假设您希望当前分支为黄色,所有其他分支为青色粗体。我正在考虑您希望这些更改在本地完成,即在您当前的存储库中完成,而不是针对您系统中存在的所有存储库。使用“cd .git”进入 .git 文件,然后打开“config”文件。在配置文件中键入以下内容,而不更改配置文件中的任何其他内容。
[color]
ui=true
[color "branch"]
local=cyan bold
current=yellow bold
然后保存配置文件。打开 git 控制台并执行git branch。你会看到区别