我知道可以使用类似以下命令来在Git提交日志的漂亮打印中截断消息:
git log --oneline --format="%h %<(70,trunc)%s %cn"
但是这样似乎会在长度小于70个字符的提交消息中填充空格(所以%cn
总是会被推到右边)。
如果提交消息少于70个字符,有什么方法可以阻止填充空格呢?
我知道可以使用类似以下命令来在Git提交日志的漂亮打印中截断消息:
git log --oneline --format="%h %<(70,trunc)%s %cn"
但是这样似乎会在长度小于70个字符的提交消息中填充空格(所以%cn
总是会被推到右边)。
如果提交消息少于70个字符,有什么方法可以阻止填充空格呢?
ltrunc
、mtrunc
和trunc
只是%<(<N>)
占位符的可选参数,其主要目的是进行填充:
%<(<N>[,trunc|ltrunc|mtrunc])
:使下一个占位符至少占用N列,如果必要则在右侧填充空格。 可以选择从开头(ltrunc)、中间(mtrunc)或结尾(trunc)截断输出,如果输出超过N列。请注意,仅当N >= 2时,截断才能正常工作。
git log
的漂亮格式目前似乎没有仅进行截断的选项。我认为这有点与“漂亮打印”通常用于将输出制表化以便人类易读的想法相一致。sed
将两个或更多相邻的空格替换为一个,从git log
漂亮的打印输出中去除额外的空格。git log --oneline --format="%h %<(70,trunc)%s %cn" | sed -e "s/[ ]\{2,\}/ /g"
sed
版本进行调整。 - famousgarkin