Git漂亮的格式颜色

时间:2013-03-17 06:41:00

标签: git

我正在尝试为Git设置漂亮的格式颜色。据我所知,版本1.6.0只能识别红色,绿色和蓝色。

$ git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %Cyellowyellow%Creset %Cblueblue%Creset %Cmagentamagenta%Creset %Ccyancyan%Creset %Cwhitewhite%Creset"
red green %Cyellowyellow%Creset blue %Cmagentamagenta %Ccyancyan %Cwhitewhite

此外,所有颜色均不适用于带括号的颜色格式。

有没有办法为Git列出可用的漂亮格式颜色?

不幸的是,这是在传统的SCO OpenServer 5.0.7机器上,SCO Skunkworks发布的最后一个版本的Git是1.6.0.3。

5 个答案:

答案 0 :(得分:115)

我没有旧版git来验证支持redbluegreen以外的颜色。

虽然我注意到即使使用git的最新版本(例如我使用的1.7.10),但有一件事是redgreenblue以外的颜色需要在括号内()。对于redgreenblue,括号是可选的。

所以试一试:

git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %C(Yellow)yellow%Creset %Cblueblue%Creset %C(magenta)magenta%Creset %C(cyan)cyan%Creset %C(white)white%Creset"

我至少知道的颜色列表是:

normal
black
red
green
yellow
blue
magenta
cyan
white

它可以与以下属性之一结合使用:

bold
dim
ul
blink
reverse

如果您尝试使用.gitconfig更改颜色,则应该能够指定两种颜色 - 前景背景,并且可以将其与属性。

答案 1 :(得分:29)

Git 2。3。0(2015年2月)将允许(感谢Jeff Kink (peff)):


  

parse_color:支持24位RGB值

     

某些终端(如XTerm)使用常规ANSI颜色方案的扩展,允许完整的24位RGB颜色规格。   让我们允许用户指定十六进制RGB颜色,启用粉红色参考装饰的最重要功能

git log --format="%h%C(#ff69b4)%d%C(reset) %s"

  • 更好地管理颜色属性:
  

parse_color:识别“no$foo”以清除$foo属性

     

您可以通过在颜色规范中添加“反向”来启用ANSI文本属性,例如“反向”。但是,你不能要求关闭反向。

     

对于常见情况,这无关紧要。您可以在彩色部分的开头打开“反向”,然后使用“重置”清除所有属性。

     

但是,您可能希望打开某些属性,然后有选择地禁用其他属性。例如:

git log --format="%C(bold ul yellow)%h%C(noul) %s"
  

仅强调散列,但无需重新指定其余属性。

     

这也有助于第三方程序,例如contrib/diff-highlight,希望在不中断现有着色的情况下打开/关闭某些属性。

     

请注意,某些属性规范可能是荒谬的(例如,“bold nobold”)。我们不打算标记这样的结构,而是让终端对其进行排序。

答案 2 :(得分:5)

分享我的git日志格式:

$ git log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

您还可以在〜/ .gitconfig

中添加别名
[alias]
    logs  = log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

然后您可以在~/.gitconfig中定义别名。

$ git logs

答案 3 :(得分:2)

我正在使用Ubuntu 18.04,并且能够使用韩小飞的建议。

对于尝试完成此操作的初学者来说,我很幸运,可以通过编辑.gitconfig来实现。

nano ~/.gitconfig
在现有文本下方从上方粘贴

[alias]块

CTRL + O(写出)+ CTRL + X(关闭nano)

完成此操作后,可以使用

来查看漂亮的颜色
git logs

使用

“ git log”将为您提供没有颜色的视图,

与'git logs --oneline'相同,除了一个会在侧面显示出繁荣状态

谢谢,我希望这对某人有帮助

答案 4 :(得分:1)

在我理解使用自定义十六进制颜色值的语法后,这里写了两个别名,如@VonC的答案所示。

有四个版本,唯一的不同是--graph指令,而'f'版本还将向您显示已添加,删除或修改的文件:

[alias]
    lg = log --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    l1 = log --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    lgf = log --name-status --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s" 
    l1f = log --name-status --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"

我使用此站点选择了所需的确切颜色,然后从中复制了十六进制值:

https://www.colorhexa.com/

对于Windows,打开位于“ C:\ Users \ YourUserName”文件夹中的.gitconfig文件,并添加一个别名部分,如上所示。

希望你喜欢他们。