当使用自定义 git 日志格式时,如何为当前、本地和远程引用名称实现不同的颜色?

当使用自定义 git 日志格式时,如何为当前、本地和远程引用名称实现不同的颜色?

我有一个自定义的 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 --decoratewhich 将以彩色输出 HEAD(以“粗体青色”)、local(以“粗体绿色”)和 remote(以“粗体红色”) 。现在我可以用%d类似%Cred%d%Cresetwhich 的内容包装它,这将导致全部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,并且可能只有一种颜色。

VonC 谈“git-log 中的颜色”

相关内容