Git Commit 消息漂亮的格式:有没有办法格式化多行正文

Raf*_*lin 5 git git-log

我正在尝试使用git log漂亮的格式来格式化我的输出。到目前为止一切顺利,但是当使用 50/72 模式时,包裹的主体会破坏格式(下面的屏幕截图供参考)。

有没有办法在后续行中保留第一行主体行的格式?

演示

我正在使用的漂亮格式:

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"
Run Code Online (Sandbox Code Playgroud)

hdo*_*adu 1

我尝试使用%<|(<N>),%>|(<N>)%>>|(<N>) 占位符直接通过git log format强制正确对齐,但它只是不想使用该--graph选项。

我最终使用%x00 占位符作为字段之间的分隔符插入,并通过列传递git log0x01的输出,以根据该分隔符进行正确的对齐。

我将最终结果放入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
Run Code Online (Sandbox Code Playgroud)

不管怎样,使用tig之类的东西来导航你的存储库会更好。