Git提交信息格式美化:有没有一种方法来格式化多行正文?

5

我试图用美化格式来格式化我的git log输出。到目前为止,一切都很好,但当使用50/72模式时,换行后的正文会打破格式(参考下面的截图)。

有没有办法在随后的行中保持第一行正文的格式?

demo

我正在使用的美化格式如下:

git log --graph --format=format:" | %C(bold yellow)%D%Creset%n | %Cred%h%Creset | %C(cyan)%an%Creset | %Cgreen%cr%Creset%n | %s%n | %C(dim normal)%b%n"

相关问题,但不包括前导管道字符。 - Michael
2个回答

3
这是一种使用%w(最大宽度,首行缩进,第二行缩进)的正文格式:
git log --graph \
 --format=format:" \
| %C(bold yellow)%D%Creset%n \
| %Cred%h%Creset | %C(cyan)%an%Creset | %Cgreen%cr%Creset%n \
| %s%n \
| %C(dim normal)%w(,,3)%b%n"

我建议使用简单的、普通的白色作为正文颜色,使用粗体的白色来显示%s

这是我的建议:

git log --graph \
 --pretty=format:"%n \
%C(bold blue)[state] %C(bold yellow)%D%Creset%n \
%C(bold blue)[info.] %Cred%h%Creset | %C(cyan)%an%Creset | %Cgreen%cr%Creset%n \
%C(bold blue)[title] %C(bold white)%s%Creset%n \
%C(bold blue)%n %w(,10,11)%b"

Screenshot showing the format above in use


1

我尝试使用%<|(<N>)%>|(<N>)%>>|(<N>)占位符直接通过git日志格式化强制正确对齐,但它在--graph选项下无法正常工作。

最终我使用了%x00占位符0x01作为分隔符插入到我的字段中,并通过git日志的输出进行适当的对齐。

我将最终结果放在一个git插件中,每个提交打印一行,但同样的方法也可以应用于您的自定义格式化。

git log --graph \
  --pretty="%x01%n \ 
  | %C(bold yellow)%D%Creset%n \
  | %Cred%h%Creset | %C(cyan)%an%Creset | %Cgreen%cr%Creset%n \
  | %s%n \
  | %C(dim normal)%b%n%x01" \
| column -s $'\001' -t

尽管如此,你最好使用像tig这样的工具来浏览你的代码库。


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