该git log --decorate会将默认:
并可以通过color.decorate配置进行更改 。
但是,git log --format没有提供一种专门显示,HEAD 或遥控器或分支的方法:所有这三种都通过来显示%d,并且可能使用一种颜色。
如2013年5月更新,如以下由Elad Shahar所提到的(已投票),git 1.8.3提供了另一个选项:
git log –format现在运行一个%C(auto)令牌,该令牌告诉Git在解析%d(装饰),%h(短提交对象名称)等用于终端输出时使用颜色。
这个 Atlassian博客文章评论说,此功能是其他一些功能的一部分,这些功能专注于格式(git rebase,git count-objects)和颜色(git branch -vv)
这是先前的补充 auto,reset对1.8.2的在不将输出用于终端时自动禁用颜色1。
%C(auto,blue)Hello%C(auto,reset)
注意:git 2.4+(2015年第二季度)将更好地重置分支名称周围的颜色。
参见commit 5ee8758通过JUNIOÇ滨野(gitster):
log --decorate:不要将“提交”颜色泄漏到下一个项目中
在“git log --decorate ”中,您将看到如下的提交标头:
commit ... (HEAD, jc/decorate-leaky-separator-color)
其中“ commit ... (”是画中color.diff.commit“ HEAD”中color.decorate.head“, ”在color.diff.commit,分支的名称在
color.decorate.branch然后)在“ ” 被关闭color.diff.commit。
如果您想用与正文相同的颜色来绘制HEAD和本地分支名称(也许是因为在黑白终端上青色和绿色太微弱以致于无法读取),您不必说
[color "decorate"]
head = black
branch = black
因为您将无法在黑底白字终端上重复使用相同的配置。你会天真地期待
[color "decorate"]
head = normal
branch = normal
工作,但不幸的是没有。
它绘制字符串“HEAD与装饰元素之间的左括号或逗号相同的颜色来 ”和分支名称。
这是因为代码在以自己的颜色打印“前缀”后忘记了重置颜色。
请注意,git 2.5(2015年第二季度)修复了一个错误:
看看提交429ad20通过JUNIOÇ滨野(gitster),2015年5月13日
(通过合并JUNIOÇ滨野- gitster-在提交fd70780 2015,5月22日)
log:不要过早缩短装饰名称
log --decorateGit 2.4中的“ ”增强功能在当前分支的最顶端显示了提交,例如“ HEAD -> master”,在--decorate = full下不起作用。
Git的2.9.x +(Q3 2016)将解决另一个bug和荣誉color=auto为%C(auto)
GIT中2.10.2(10月2016)修正其他错误与提交82b83da(2016年9月29日),并提交c99ad27由(2016年9月17日)勒Scharfe(``) 。
(由Junio C gitsterHamano合并--在76796d4号提交中,2016年10月28日)
pretty:避免%C(auto)在输出为空时添加复位
我们发出一个转义序列以重置颜色和属性,%C(auto)以确保按预期显示自动着色。
如果输出strbuf为空(即当%C(auto)出现在格式字符串的开头时),请停止执行此操作,因为这样就无需重新设置,并且我们在输出中保存了一些字节。
pretty:让 %C(auto)所有属性重置
复位颜色和属性时%C(auto),以使他们在全自动控制; 否则,诸如粗体或反向之类的属性仍可从先前的%C占位符中生效。