如何模拟git log --decorate每种分支类型的不同颜色

时间:2012-10-02 16:36:53

标签: git git-config

在制作我最喜欢的git log视图时,我创建了这个别名:

graph = log --pretty=format:'%Cgreen%ad%Creset %C(yellow)%h%Creset%C(yellow)%d%Creset %s %C(cyan)[%an]%Creset %Cgreen(%ar)%Creset' --date=short --graph

这会创建一个输出:

Git log result with own coloring

我在这里缺少的是分支类型的不同颜色,如log --oneline --decorate --graph

Git log result with --decorate(=short)

--decorate(默认使用= short)为不同的识别分支提供不同的颜色。分支类型(HEAD, origin/master, origin/HEAD, master)的颜色为青色,红色,红色,绿色。然而我的没有色彩;仅用整个分支部分的黄色着色。

有没有办法使用自己的别名为不同的分支提供不同的颜色?

2 个答案:

答案 0 :(得分:90)

https://stackoverflow.com/a/16844346/55948

  

从git 1.8.3(2013年5月24日)开始,您可以使用%C(auto)进行装饰   %d格式字符串git log

     

来自release notes

 * "git log --format" specifier learned %C(auto) token that tells Git
   to use color when interpolating %d (decoration), %h (short commit
   object name), etc. for terminal output.)

答案 1 :(得分:1)

我不相信这是可能的。浏览git-log(1)手册页,--pretty的唯一相关格式似乎是%d,它为您提供了所有引用名称。由于没有任何区分引用类型的选项,因此不能为每种类型赋予不同的颜色。

另见this question