[英]Can `git log --pretty=format` transform output via regex?
我们的合并提交消息如下所示(GitHub 自动创建此格式):
Merge pull request #123 from repo/branch-a
Some change (title of the PR)
我可以使用--pretty=format:"%s: %b"
( %s
是“主题”, %b
是“主体”)来获得这样的 output :
* Merge pull request #123 from repo/branch-a: Some change
* Merge pull request #456 from repo/branch-b: Another change
我想将 output 转换为:
* PR #123: Some change
* PR #456: Another change
这可以通过--pretty
单独完成,还是我需要将其 pipe 到另一个将进行转换的程序? 你会怎么做才能获得与普通git log
相同的着色和分页(通过$PAGER
;在我的情况下less
)?
更新:我运行的完整命令是这样的:
git log --color --graph --pretty=format:\"%Cred%h%Creset -%C(yellow)%d%Creset %b: %s %Cgreen(%cr) %C(bold blue)<%an>%Creset\" --abbrev-commit --merges --first-parent
简短的回答是否定的: --pretty
有很多格式指令,但没有一个允许正则表达式替换。
你会怎么做才能获得与普通 git 日志相同的着色和分页(通过
$PAGER
;在我的情况下less
)?
普通git log
,根本没有任何选项,会进行一些颜色切换,这是任何漂亮格式都无法做到的(我认为这是一个非常小的错误)。 当管道git log
output (以便进行正则表达式工作或其他)时,从git log
中获取颜色控制的主要方法是使用--color=always
开关。 要让寻呼机运行,请使用git var GIT_PAGER
查找要运行的寻呼机,然后运行它。
我认为这应该有效:
YOURCOMMAND | sed 's/Merge pull request \#\([1-9]\).*\:\(.*\)/PR #\1: \2/g'
只是没有 colors 这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.