git log --oneline --decorate的格式定义在哪里?
我使用git log --format=format:'my format'命令,但是无法像git log --oneline --decorate命令中展示的那样呈现分支、标签和HEAD的颜色。
git log --oneline --decorate
将HEAD以浅蓝色显示,分支名称以绿色显示,标点符号(,,)以棕色显示。
我所能做到的最接近我的要求是:
git log --graph --abbrev-commit --decorate --date=short --format=format:'%C(bold blue)%h%C(reset) %C(bold green)%ad%C(reset)%d %C(white)%s%C(reset)' -20
唯一的区别在于分支/HEAD/标签未像前一个命令一样着色。
%D
而不是%d
,但%d
与“--oneline --decorate”渲染匹配。另外请注意,%Creset
也可以工作,但%Cauto
无法工作,必须使用%C(auto)
来获得漂亮的颜色。此外,您可能经常想要使用tformat
而不是format
。 - Mikko Rantalainentformat
的理解是正确的。有一种简写方式--format=xxx
代替了--format=tformat:xxx
,但我不确定它是在什么时候引入的。而且现有的回答向后兼容到1.8.3版本,所以我不太愿意去修改它。--abbrev-commit
似乎是多余的,甚至可能在1.8.3版本中都是这样,因为%h
已经表示了缩写形式。第三点是,在下一个%C…
之前使用%C(reset)
是多余的。即使按照现在的形式,这个答案也非常有帮助。 - kkm