截断提交消息

时间:2014-07-07 06:15:17

标签: git pretty-print git-log

我知道可以用漂亮的方式截断git commit消息:

git log --oneline --format="%h %<(70,trunc)%s %cn"

但是这似乎填充了带有空格的短于70个字符的提交消息(因此%cn总是被推到右边)。

如果提交消息短于70个字符,是否有办法停止提交空格填充?

1 个答案:

答案 0 :(得分:4)

根据git-log manualltruncmtrunctrunc只是%<(<N>)占位符的可选参数,其主要目的是执行填充:

  

%<(<N>[,trunc|ltrunc|mtrunc])使下一个占位符至少取N列,如果需要,在右侧填充空格。可选择在开头(ltrunc),中间(mtrunc)或如果输出长于N列,则结束(trunc)。请注意,截断仅适用于N&gt; = 2。

截至目前,git log漂亮的格式似乎没有一个只能进行截断的选项。我认为这种情况伴随着&#34;漂亮的印刷&#34;通常用于表示输出易于人类阅读。

您可以通过一些后期处理来删除git log漂亮打印输出中的额外空格,例如。使用sed用一个替换两个或多个相邻的空格:

git log --oneline --format="%h %<(70,trunc)%s %cn" | sed -e "s/[ ]\{2,\}/ /g"