繁体   English   中英

`git log --pretty=format` 可以通过正则表达式转换 output 吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM