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

问题描述 投票:2回答:2

我用这个命令来显示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,但没有运气。

EDITS

  1. CODE-123不是常量字符串。它可以是TEST-2121,PJ-21等。
  2. CODE-123是提交消息的一部分
git colors git-log
2个回答
2
投票

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

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

漂亮格式的颜色代码并不灵活,我们无法制作自己的占位符或切割部分。

当然你可以将你的日志传递给任何bash函数来修改输出,但不幸的是,仅仅使用pretty格式就没有这样做。


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

© www.soinside.com 2019 - 2024. All rights reserved.