![当使用自定义 git 日志格式时,如何为当前、本地和远程引用名称实现不同的颜色?](https://linux22.com/image/1290064/%E5%BD%93%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%20git%20%E6%97%A5%E5%BF%97%E6%A0%BC%E5%BC%8F%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E4%B8%BA%E5%BD%93%E5%89%8D%E3%80%81%E6%9C%AC%E5%9C%B0%E5%92%8C%E8%BF%9C%E7%A8%8B%E5%BC%95%E7%94%A8%E5%90%8D%E7%A7%B0%E5%AE%9E%E7%8E%B0%E4%B8%8D%E5%90%8C%E7%9A%84%E9%A2%9C%E8%89%B2%EF%BC%9F.png)
我有一个自定义的 git log 格式。我已color.ui=true
在我的 中设置.gitconfig
。例如,这种简单的格式:
git log --pretty=format:"%h %d %s" --decorate
这将打印类似
52a41e0 (HEAD, local) Commit message foo
185bd17 (remote) The commit message
HEAD、local、remote 将以无色输出,相比之下,git log --oneline --decorate
which 将以彩色输出 HEAD(以“粗体青色”)、local(以“粗体绿色”)和 remote(以“粗体红色”) 。现在我可以用%d
类似%Cred%d%Creset
which 的内容包装它,这将导致全部ref 名称为红色。
当使用 git log 的自定义格式时,如何使当前、本地和远程引用名称具有不同的颜色?
答案1
%C(auto)
从 git 1.8.3 开始,你可以使用根据 Atlassian 博客文章;
git log --format=format:'%h%C(auto)%d%C(reset) %s (%an, %ar)'
给出
— 再次感谢VonC 谈“git-log 中的颜色”,为了方便入站谷歌搜索者,在此重新发布。
答案2
默认情况下将
git log --decorate
放置:
- 青色的头部
- 远程分支为红色
- 绿色标签
并可以通过
color.decorate
配置。但
git log --format
没有提供专门显示HEAD
或者遥控器或者分支:所有三个分支都通过 显示%d
,并且可能只有一种颜色。