我最近看到Windows中的git
控制台是彩色的,例如绿色用于添加,红色用于删除等。如何为我的git
控制台着色?
要安装它,我使用了命令:$ sudo apt-get install git-core
答案 0 :(得分:656)
noted @VonC,color.ui
默认为auto
,因为Git 1.8.4
来自Unix& Linux Stackexchange问题How to colorize output of git?和answer by @Evgeny:
git config --global color.ui auto
color.ui
是一种元配置,包含color.*
命令可用的所有各种git
配置。这在git help config
中有详细解释。
所以基本上它比单独设置不同的color.*
设置更简单,更具前瞻性。
来自git config
documentation的深入解释:
color.ui
:此变量确定控制每个命令系列颜色使用的变量(如color.diff
和color.grep
)的默认值。随着更多命令学习配置以设置--color
选项的默认值,其范围将扩展。如果您希望所有不是用于机器消耗的输出使用颜色,请将其设置为always
,如果您希望此类输出在写入终端时使用颜色,则设置为true
或auto
,或者false
或never
如果您更喜欢使用git命令,除非使用其他配置或--color
选项明确启用,否则不要使用颜色。
答案 1 :(得分:53)
例如,请参阅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
答案 2 :(得分:27)
将下一个代码添加到.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
答案 3 :(得分:7)
如果您要求,Git会自动为其大部分输出着色。你可以非常具体地了解你想要的颜色和方式;但要打开所有默认的终端着色,请将color.ui设置为true:
git config --global color.ui true
答案 4 :(得分:6)
在Ubuntu或任何其他平台上(是的,Windows也是!);开始git1.8.4,released 2013-08-23,你不需要做任何事情:
许多教程教会用户将“color.ui”设置为“auto”作为设置“
user.name/email
”以向Git介绍自己之后的第一件事。 现在变量默认为“auto
”。
因此默认情况下您会看到颜色。
答案 5 :(得分:6)
在~/.gitconfig
文件中,只需添加以下内容:
[color]
ui = auto
它会处理你所有的git命令。
答案 6 :(得分:5)
另一种方法是编辑.gitconfig
(如果不存在则创建一个),例如:
vim ~/.gitconfig
然后添加:
[color]
diff = auto
status = auto
branch = auto
答案 7 :(得分:5)
GIT默认使用彩色输出,但在像CentOS这样的系统上它没有启用。您可以像这样启用它
git config --global color.ui true
git config --global color.ui false
git config --global color.ui auto
您可以从此处选择所需的命令。
此处 - 全局是可选的,可为系统中的每个存储库应用操作。如果您只想为当前存储库应用着色,那么您可以执行以下操作 -
git config color.ui true
答案 8 :(得分:1)
使用Git 2.18,您可以更好地控制在控制台中指定颜色的方式
" git config
"命令使用单独的选项,例如" --int
"," --bool
"等指定调用者希望将值解释为的类型。
新的&#34; --type=<typename>
&#34;已经引入了选项,这将使定义新类型更加清晰。
commit fb0dc3b见commit 0a8950b(2018年4月18日)和Taylor Blau (ttaylorr
)(2018年4月9日)Junio C Hamano -- gitster
--。
(由commit e3e042b合并于documentation,2018年5月8日)
的首选别名
builtin/config.c
:支持--type=<type>
作为--<type>
git config
长期以来一直允许呼叫者提供“#”类型 说明符&#39;,指示git config
(1)确保传入 值可以解释为该类型,以及(2)传出值 在那种类型下规范化。在另一个系列中,我们建议扩展此功能
--type=color
和--default
替换--get-color
。但是,我们传统上使用
--color
来表示&#34;将此输出着色&#34;, 而不是&#34;这个值应该被视为一种颜色&#34;。目前,
git config
不支持这种着色,但是 我们应该小心避免过早蹲在这个选项上,这样做git config
可以支持--color
(传统意义上的) 未来,如果需要的话。在此补丁中,我们支持
--type=<int|bool|bool-or-int|...>
除--int
,--bool
等外。
这允许前面提到的补丁支持通过--type=color --default=...
使用默认值查询颜色值,而不会浪费--color
。我们保留多重抱怨的历史行为, 给出了旧式
--<type>
标志,并将其扩展为 冲突的新式--type=<type>
标志。--int --type=int
(和它的 交换对)不抱怨,但--bool --type=int
(和它的 交换对)。
所以,在您--bool
和--int
之前,现在(commit cd8e759):
--type <type>
&#39;
git config
&#39;将确保任何输入或输出在给定类型约束下有效,并将规范化<type>
中的传出值 规范形式。有效
<type>
包括:
- &#39;
bool
&#39;:将值规范化为&#34;true
&#34;或&#34;false
&#34;。- &#39;
int
&#39;:将值规范化为简单的十进制数。可选后缀 &#39;k
&#39;,&#39;m
&#39;或&#39;g
&#39;将导致该值在输入时乘以1024,1048576或1073741824。- &#39;
bool-or-int
&#39;:根据&#39;bool
&#39;标准化。或者&#39;int
&#39;,如上所述。- &#39;
path
&#39;:通过向指定用户的主目录添加~
和$HOME
的前导~user
进行规范化。这个说明符没有 设置值时效果(但您可以从命令行使用git config section.variable ~/
让shell执行扩展。)- &#39;
expiry-date
&#39;:通过从固定或相对日期字符串转换为时间戳来规范化。设置值时,此说明符无效。
--bool::
--int::
--bool-or-int::
--path::
--expiry-date::
Historical options for selecting a type specifier. Prefer instead `--type`,
(see: above).
请注意,Git 2.22(2019年第二季度)解释了&#34; git config --type=color ...
&#34;是为了取代&#34; git config --get-color
&#34;,但是有一些细微的差别没有记录,现在已经修复了。
Jeff King (peff
)见Junio C Hamano -- gitster
--(2019年3月5日)
(由commit f6c75e3合并于Document it,2019年3月20日)
config
:文档--type=color
输出是一个完整的行即使是较新的&#34;
--type=color
&#34; &#34;git config
&#34;的选项是指 向上兼容传统&#34;--get-color
&#34;选项, 与后者不同,它的输出不是缺乏的不完整线 最后的LF。
这使得它与其他类型的输出一致,例如&#34;git config --type=bool
&#34;。{{3}},因为它有时会令毫无疑问的用户感到惊讶。
现在写着:
--type=color [--default=<default>]
优于--get-color
(但请注意--get-color
将省略打印的尾随换行符--type=color
)。
答案 9 :(得分:1)
好吧,如果您对默认设置不满意,可以使用ANSI escape code来帮助设置颜色,如果要修改某些文本,可以编写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"
您可以使用以下语法在.gitconfig
上写长脚本:
[alias]
your-cmd = !f() { \
\
}; f"
echo -n -e
(更多echo)
\\033[38;2;255;0;0m\\033[4m
(更多SGR parameters)
\\033[38;2;255;0;0m
:38表示之前颜色。 255; 0; 0 = 红色 | r; g; b \\033[4m
:下划线 grep
:grep命令用于搜索文本。
sed -e 's/be_replace_string/new_string/'
将字符串替换为新字符串。
答案 10 :(得分:0)
在这里参考: 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