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