该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 --decorate
Git 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 gitster
Hamano合并--在76796d4号提交中,2016年10月28日)
pretty
:避免%C(auto)
在输出为空时添加复位
我们发出一个转义序列以重置颜色和属性,%C(auto)
以确保按预期显示自动着色。
如果输出strbuf为空(即当%C(auto)
出现在格式字符串的开头时),请停止执行此操作,因为这样就无需重新设置,并且我们在输出中保存了一些字节。
pretty
:让 %C(auto)
所有属性重置
复位颜色和属性时%C(auto)
,以使他们在全自动控制; 否则,诸如粗体或反向之类的属性仍可从先前的%C
占位符中生效。