git - 如何修复 git log --graph 中的对齐问题
问题描述
如果没有可用的 GUI,我将使用以下别名在控制台上呈现我的 git 提交历史记录:
$ git config alias.treex
log --color --graph --pretty=format:'%C(cyan)%h%Creset - %C(cyan)%ad%Creset %<(80,trunc)%s %C(cyan)%>(20,trunc)%an - %Cgreen%>(12)%cr%Creset' --date=format:'%d.%m.%Y %H:%M' --abbrev-commit --all
虽然格式字符串使用 align 和固定大小的字符串格式,例如%<(80,trunc)%s
,但呈现的图形git log --graph
破坏了对齐方式:
如何修复图表本身导致的对齐损坏?
解决方案
而不是%<(80,trunc)%s
告诉git log
在 80 个字符上呈现主题,您可以使用%<|(110,trunc)%s
它告诉它呈现主题,直到它到达输出的110
第 th列。这样,主题之后的下一个字段从第111
st列开始并恢复顺序。
(110
大约是80
您想要的主题的原始字符 + 之前列的大小(%h
=7
字符,%ad
=16
字符)以及您在它们之间放置的分隔符。)
当然,您可以使用不同的值。您还可以尝试限制第一个字段 ( %h
) 的宽度以使所有其他字段对齐,但它不会在包含大量分支的历史记录部分上正确对齐;该%s
字段很大并且使用足够的列来容纳两个几十个并发分支。
该格式在格式右侧的文档中git log
<()
进行了描述,并且它存在于文档页面的所有版本中(不幸的是以 开头2.3.8
)。如果您使用的是较旧的 Git 版本,则该格式可能对您不可用。在这种情况下,最好的建议是将您的 Git 更新到更新的版本。