如何使用git log pretty格式抑制空白行?

时间:2018-10-03 17:46:08

标签: git git-log

我正在尝试扩展git log --oneline格式以显示更多信息,尤其是提交者和提交时间。

原始命令为git log --oneline --name-status 并产生以下输出:

enter image description here

我用其他信息复制了这种格式,例如 git log --oneline --name-status --pretty='format:%C(yellow)%h %C(auto)%d %s %C(red)(%cn, %cr)' 并产生以下输出:

enter image description here

我想做的是消除日志条目之间的空白行,但是找不到删除它的选项,也找不到为什么要插入它。唯一的区别是我使用的是漂亮的格式。

更新:似乎没有解决方法,因此我采用了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'

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以将命令传递到:

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'

答案 1 :(得分:0)

我还发现sed'/ ^ $ / d'也可以。参见tldp