考虑:
baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: app/models/message_type.rb # no changes added to commit (use "git add" and/or "git commit -a") baller@Laptop:~/rails/spunky-monkey$ git add app/models
pre >
和
baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: app/models/message_type.rb #
输出看起来是一样的,但是信息却完全不同:文件已从未暂存状态变为已暂存状态以进行提交。
是否可以使输出着色?例如,未暂存的文件是红色,暂存的文件是绿色?
甚至Changes not staged for commit:
变成红色,# Changes to be committed:
变成绿色?
在Ubuntu中工作。
编辑:谷歌搜索找到了一个很好的答案:git config --global --add color.ui true
。
但是,还有什么更通用的解决方案可以为命令输出添加颜色?
#1 楼
您可以使用以下方法在[color]
中创建部分~/.gitconfig
。以下内容
[color] diff = auto status = auto branch = auto interactive = auto ui = true pager = true
您还可以通过什么方式精细控制想要着色的颜色,例如
[color "status"] added = green changed = red bold untracked = magenta bold [color "branch"] remote = yellow
希望这可以帮助您入门。当然,您需要一个支持颜色的终端。评论
我认为可能值得将git config --global color.ui auto(@Evgeny的答案)放在您的顶部...我认为这可能是大多数人正在寻找的东西。我都赞成...我只是说,为了互联网的到来,我想很多人只想要那种简单的内胆。如果他们得到了,那就更好了,再加上您的额外好处。
–msouth
2015年5月17日下午3:06
这对我来说非常有效-在[color“ status”]部分中,我添加了branch = yellow。
–Wayne Werner
16-10-26在17:06
您也可以将[color]部分添加到项目的.git / config文件中
– andrej
17年7月13日在9:30
而且,您只需为git命令的一次调用设置配置变量:stackoverflow.com/a/18304605/134044
– NeilG
19年9月3日,在1:01#2 楼
您可能想使用
git config --global color.ui auto
auto
部分说git只尝试在支持它的终端上使用颜色,并且如果您重定向,也不会获得ANSI序列。例如,将git命令输出到文件。将其设置为true
与auto
相同,这也是自Git 1.8.4以来的默认设置。 >
在color.ui
中对此进行了详细说明。评论
您能解释一下color.ui true(自动指向)和始终之间的区别吗?我阅读了文档,但仍然没有区别。
–chharvey
19年5月30日在15:03
@chharvey color.ui =自动+ git diff |更少-没有颜色,color.ui =总是+ git diff |较少-彩色输出。暗示LESS = -R。
–x-yuri
20年1月7日,11:50#3 楼
git config --global color.ui auto git config --global color.branch auto git config --global color.status auto
评论
仅供参考,仅此功能适用于git版本1.5.2.1,其他答案则无效。
– AbhiNickz
18年4月3日在7:59#4 楼
可接受的答案给出了最常见的解决方案。
如果出于某种原因您不需要永久更改配置(该解决方案可以这样做),则可以使用单个git命令覆盖该配置:
git -c color.ui=always <usual git command and options>
例如:
git -c color.ui=always status git -c color.ui=always diff
经过测试:在git 2.4.6上受支持,在git 1.7.1上不受支持。评论
对于试图像我以前那样在插入管道时获得颜色的其他人,可以减少通过-R将颜色转义字符传递到终端的次数。
– xdhmoore
17年1月11日在18:16
何时添加此功能?
–恩德拉Žižka
18-10-3在16:47#5 楼
git config --global color.ui always git config --global color.branch always git config --global color.diff always git config --global color.interactive always git config --global color.status always git config --global color.grep always git config --global color.pager true git config --global color.decorate always git config --global color.showbranch always
#6 楼
或通过以下方式关闭所有/大部分着色:
git config --global color.ui false git config --global color.branch false git config --global color.diff false git config --global color.interactive false git config --global color.status false git config --global color.grep false git config --global color.pager false git config --global color.decorate false git config --global color.showbranch false
评论
OP并不是要关闭颜色,而是要打开颜色。在OP中,他说明了如何使用git,并希望以某种更全球化的方式进行操作。如果您知道这种方法,请编辑您的答案以进行解释。
–辛德拉巴
17 Mar 2 '17 at 4:51
有时人们会寻找一些密切相关但又有些不同的东西-但要感谢大家的支持。
–TheRiley
17 Mar 3 '17 at 16:04
我喜欢@theRiley
–Richard Lindhout
17年5月2日,12:32#7 楼
对于通过管道输送到git diff
的彩色less
来说,这是可行的:
git -c color.diff=always diff [...] | less -R
#8 楼
您可以使用任意命令输出颜色工具来执行此操作。它通常可以正常工作,但是我还没有弄清楚如何解决一个错误,即没有显示期望输入的提示,并且您不能简单地键入已知的所需输入并按Enter来在每种情况下继续操作。
~/.acoc.conf
的git
示例:
# git [git/ae] /.*(error:.*)/ red+bold /.*(warning:.*)/ yellow /.*(hint:.*)/ magenta /.*(up-to-date).*/ green+bold /.*(nothing to commit).*/ green /^(\+.*)/ green /^(-.*)/ red
..与alias git="acoc git"
中的.bash_profile
一起很好地工作。评论
您可以共享ACOC的配置吗?
– Greg Dubicki
17年4月27日在10:05
Nvm,很容易编写。 :)添加到答案。
– Greg Dubicki
17年4月27日在10:45#9 楼
我知道这个职位已有四岁了,但是我的营地没有人回应,色盲。如果您可以区分颜色,请忽略我的帖子。
例如,“ git status”显示背景为白色/白色背景为黑色(清晰),已删除的深灰色(黑色背景为清晰,白色背景为清晰)和中等添加的灰色(大麦在黑色背景上清晰可辨,在白色背景上难以辨认)。我过去经常将终端窗口的背景切换为白色/黑色,这样我就可以阅读难以辨认的文字。一个简单的解决方案是:
git status | more
这使所有文本在标准的白色或黑色背景终端窗口上都清晰可见。评论
您还可以更改配置,以将所有内容默认设置为无颜色(color.ui =从不)。
–戴帽子的家伙
18年9月19日在19:27#10 楼
要给git diff
的输出着色,可以在〜/ .gitconfig中添加color.diff部分。例如:
[color "diff"] new = bold italic 154 old = bold italic 196
此处154
和196
是ANSI 256色代码。有关更多详细信息,请参见man git config
。#11 楼
看看https://github.com/dandavison/delta上的彩色语言语法-(git)diff输出的突出显示,以及diff中添加/删除的行的彩色突出显示。
评论
您想要使所有命令输出着色的东西吗?它怎么知道要给哪些部分上色?我想是否可以使用正则表达式进行配置:每种颜色都可以有一个起始正则表达式。并且可能有默认的颜色正则表达式来关闭所有颜色。并且,如果出现文本“ foo”,则以某种颜色显示它...