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

Git log, display specific data (by regex) with specific color

我用这个命令显示git日志:

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 是提交消息的一部分

虽然我明白你为什么想要这个,但我想说 你不能用 git 日志的漂亮格式来做到这一点

正如我们已经评论过的,您要突出显示的字符串是 %s 占位符 的一部分,它包含提交消息主题(提交消息的第一行).

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

当然,您可以将日志传输到任何 bash 函数 以修改输出,但遗憾的是,仅使用 pretty 无法做到这一点格式。

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

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