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。

我没有一个老版本的git来validationredbluegreen以外的颜色是否受支持。

虽然我注意到,即使是最近版本的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" 

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

 normal black red green yellow blue magenta cyan white 

它可以结合以下属性之一:

 bold dim ul blink reverse 

如果你正在尝试使用.gitconfig来改变颜色,你应该能够指定两种颜色 – 前景背景,并且你可以把它和一个属性结合起来。

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


  • 24位RGB颜色值( 提交17a4be2 )

parse_color :支持24位RGB值

某些terminal(如XTerm)允许使用常规ANSI颜色scheme的扩展来实现完整的24位RGB颜色规范。
让我们允许用户指定hexRGB颜色, 启用粉红色ref的装饰的所有重要function

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

  • 更好地pipe理颜色属性:

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

您可以通过在您的颜色规范中join“reverse”来打开ANSI文本属性,如“反向”。 但是,你不能要求closures。

对于一般情况,这并不重要。 您可以在彩色部分的开始处打开“反向”,然后使用“重置”清除所有属性。

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

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

强调只是散列,但不需要重新指定其余的属性。

这也可以帮助第三方程序,如contrib/diff-highlight ,想打开/closures某些属性而不中断已有的着色。

请注意,某些属性规范可能是无意义的(例如,“ bold nobold ”)。 我们不打算标记这样的结构,而是让terminal把它整理出来。

分享我的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