如何模拟git log – 每个分支types的装饰颜色不同

在我最喜欢的git日志视图中,我创build了这个别名:

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

这会创build一个输出,如:

Git使用自己的着色记录结果

我在这里错过的是分支types的不同颜色,比如在log --oneline --decorate --graph

Git记录结果--decorate(= short)

–decorate(默认使用= short)为不同的识别分支提供不同的颜色。 分支types(HEAD, origin/master, origin/HEAD, master)是青色,红色,红色,绿色。 然而我的是无色的; 只用整个分支部分的黄色着色。

有没有办法给不同types的分支用不同的颜色给自己的别名?

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

从git 1.8.3(2013年5月24日)开始,可以使用%C(auto)装饰git log格式string中的%d

从发行说明 :

  * "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.) 

我不相信这是可能的。 通过git-log(1)手册页,唯一相关的--pretty格式似乎是%d ,它给你所有的ref名字。 由于没有任何区分参考types的选项,因此不能给每种types以不同的颜色。

另见这个问题 。