zor*_*119 9 git pretty-print git-log
我知道可以用漂亮的方式截断git commit消息,如下所示:
git log --oneline --format="%h %<(70,trunc)%s %cn"
Run Code Online (Sandbox Code Playgroud)
但这似乎填充了带有空格的短于70个字符的提交消息(因此%cn将始终向右推).
有没有办法停止提交消息填充空格,如果它短于70个字符?
具体根据GIT-日志手册,ltrunc,mtrunc和trunc仅是一个可选的参数的%<(<N>)占位符,其主要目的是做填充:
%<(<N>[,trunc|ltrunc|mtrunc]):使下一个占位符至少占据N列,必要时在右侧填充空格。如果输出的长度超过N列,则可以选择在开头(ltrunc),中间(mtrunc)或结尾(trunc)截断。请注意,只有在N> = 2时才可以正确截断。
截至目前,git log漂亮的格式似乎没有可以截断的选项。我认为这种做法与“漂亮的打印”一起使用,通常用于将输出制成表格,以便于人类阅读。
您可以git log通过一些后期处理从漂亮的打印输出中删除多余的空格,例如,用sed一个替换两个或多个相邻的空格:
git log --oneline --format="%h %<(70,trunc)%s %cn" | sed -e "s/[ ]\{2,\}/ /g"
Run Code Online (Sandbox Code Playgroud)