git log 格式化:将提交信息的正文向右移动 X 列。

9
我使用以下自定义日志格式来查看我的提交记录:
命令:git log --pretty=format:"%C(auto)%h %<(8,trunc)%aN %Cgreen%s %+b"
3758d35 Daniel   This commit does nothing 
You really should remove it before commiting.

    1. This is a line
    2. This is another line

a191c2b Daniel   Viral helvetica lomo, typewriter fashion axe 
814a6a9 John     Umami pork belly pickled, fanny pack yr keffiyeh fap YOLO
d5e130e Daniel   Cardigan raw denim banjo
f7107d8 Daniel   90's ramps pinterest, craft beer blue bottle

除了我希望提交说明正文与提交标题对齐之外,它很好用。是否可能只使用git来实现这一点?

1个回答

19

您可以在消息正文前使用%w(<最大行宽>,<第一行缩进>,<第二行缩进>),例如:

%w(64,16,16)%b

来自漂亮的格式文档

%w([<w>[,<i1>[,<i2>]]])

切换换行,就像git-shortlog[1]的-w选项。

还有来自shortlog

-w[<width>[,<indent1>[,<indent2>]]]

将输出进行折行,每行都在 width 处换行。每个条目的第一行缩进 indent1 个空格,第二行和后续行缩进 indent2 个空格。width、indent1 和 indent2 默认值分别为 76、6 和 9。

如果 width 为 0,则缩进输出的行而不对它们进行换行。

无法确定如何删除结尾的换行符,但我猜可能可以使用一些额外的格式说明符。占位符有去除前导换行符的选项,但没有类似于去除尾随换行符的选项。


太棒了!我已经按照你的建议实现了文本换行功能:git log --pretty=format:"%C(auto)%h %<(8,trunc)%aN %Cgreen%s %n%w(80,17,17)%-b"。我会将这个作为解决方案标记,并发布另一个关于结尾换行符的问题。非常感谢! - Daniel
@Daniel,我找不到你关于去除结尾换行符的问题。你解决了吗?解决方式是什么? - Dan Li
@Dan Li https://dev59.com/mLbna4cB1Zd3GeqPamxy - carlfriedrich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接