[英]How to suppress blank lines with git log pretty format?
我正在嘗試擴展git log --oneline
格式以顯示更多信息,特別是提交者和提交時間。
原始命令是git log --oneline --name-status
並產生以下輸出:
[master] ~/temp/tempgit$ git log --oneline --name-status
809d815 (HEAD -> master) modified bar
M bar.txt
352d6d3 modified foo
M foo.txt
e4150f4 initial commit
A bar.txt
A baz.txt
A foo.txt
我已經用其他信息復制了這種格式,例如git log --oneline --name-status --pretty='format:%C(yellow)%h %C(auto)%d %s %C(red)(%cn, %cr)'
並產生以下輸出:
[master] ~/temp/tempgit$ git log --oneline --name-status --pretty='format:%C(yellow)%h %C(auto)%d %s %C(red)(%cn, %cr)'
809d815 (HEAD -> master) modified bar (Mike Harvey, 29 seconds ago)
M bar.txt
352d6d3 modified foo (Mike Harvey, 49 seconds ago)
M foo.txt
e4150f4 initial commit (Mike Harvey, 2 minutes ago)
A bar.txt
A baz.txt
A foo.txt
我想做的是消除日志條目之間的空白行,但是找不到刪除它的選項,也找不到為什么要插入它。 唯一的區別是我使用的是漂亮的格式。
更新:似乎沒有解決方法,因此我采用了Kjele的解決方案。 輸配輸出會丟失我真正想要的顏色信息,因此我使用-c color.ui = always強制進行了輸出。
這是完成我想要的工作的最終版本:
git log ${REV}..HEAD --oneline --name-status -c color.ui=always --pretty=format:%C(yellow)%h %C(auto)%d %s %C(red)(%cn, %cr) | sed '/^\\s*$/d'
謝謝!
您可以將命令傳遞到:
sed '/^\s*$/d'
git log --oneline --name-status --pretty='format:%C(yellow)%h %C(auto)%d %s %C(red)(%cn, %cr)' | sed '/^\s*$/d'
但這不允許您像往常一樣向下滾動。
一種解決方法是選擇所需的提交數量:
-n 10
git log --oneline --name-status --pretty='format:%C(yellow)%h %C(auto)%d %s %C(red)(%cn, %cr)' -n 10 | sed '/^\s*$/d'
我還發現sed'/ ^ $ / d'也可以。 見tldp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.