git log --graph --oneline --all
非常有用。如何将格式化日志对齐以在同一列中开始?
例如
git log --graph --oneline --all --format='%C(auto)%<|(15)%h %d %s'
让我非常接近,感谢
%<|( <M> )
使下一个占位符至少占据第 M 个显示列,如有必要,请在右侧填充空格。
但是一旦图表本身宽度超过 15 个字符,硬编码的
%<|(15)
将无法继续工作!
您需要对输出进行后处理,列对齐是一个两遍算法,这种漂亮的功能超出了
git log
的职权范围。
首先切入它(对于便携式脚本,请将
#!/bin/bash
放在前面):
git log --graph --oneline --all --color=always | sed 's,.*\x1b[m ,&\t' | column -ts$'\t'
它通过了我对我手头的几条历史记录的冒烟测试。