簡體   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