Git日志,以特定颜色显示特定数据(通过正则表达式)

时间:2019-03-22 09:55:13

标签: git colors git-log

我使用此命令显示git log:

git log --oneline --decorate --graph --all --pretty=format:'\''%C(yellow)%h %Cred%ad %Cblue%an%C(auto)%d %Creset%s'\'' --date=format:'%d.%m.%Y''

如您所见,我使用特定的输出格式(具有特定的颜色)。在控制台中,我看到这样的内容:

* 3eb268b 01.01.2019 username (origin/master, origin/HEAD, master) CODE-123 Random commit message

接下来的问题是:我该如何突出显示这一部分:CODE-123

我尝试使用grep,但没有运气。

编辑

  1. CODE-123不是常量字符串。可以是TEST-2121,PJ-21等。
  2. CODE-123是提交消息的一部分

2 个答案:

答案 0 :(得分:2)

尽管我知道您为什么想要这样做,但我会说您无法使用git log的漂亮格式来做到这一点

您要突出显示的字符串是{em> %s占位符的一部分 ,该占位符包含提交消息的主题(提交消息的第一行)。

漂亮格式的颜色代码不是那么灵活,我们不能自己制作占位符或切掉其中的一部分。

当然,您可以将日志传送到任何 bash函数来修改输出,但是不幸的是,仅凭pretty格式就不能这样做。

答案 1 :(得分:1)

最终找到了可行的解决方案:

git log --oneline --decorate --graph --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%C(auto)%d %Creset%s' --date=format:%d.%m.%Y --color=always | grep --color=always -E '[A-Z]+-[0-9]+|$' | less -r