我一直在修改一些 git 命令的 log 别名。我有我想要的大部分东西 (credit here),但我在一件上遇到了麻烦。当我打电话

git log --graph --format=format:'%h - [%ar] %s%+d'

我得到
* ab123f - [6 hours ago] Fix the references
|  (HEAD, origin/master, master)
* bc123f - [8 hours ago] New build syntax
* cd123f - [10 hours ago] Initial import

其中 %+d 添加一个新行并在其上放置 --decorate 标签(如果存在)。我想要的是标签与时间戳一致,如下所示:
* ab123f - [6 hours ago] Fix the references
|          (HEAD, origin/master, master)
* bc123f - [8 hours ago] New build syntax
* cd123f - [10 hours ago] Initial import

我该如何实现?如果没有 --decorate 标签,我不想要额外的换行符。我一直在试验各种 format placeholders: %+d%-d%+ d (这不起作用); %>(<N>) , %>>(<N>) 的排列;等等,但我不能让它做我想做的事。

为简单起见,颜色和进一步的提交信息已被删除,但它们似乎干扰了 torek's answer. 完整命令如下:
git log --graph --format=format:'%C(bold yellow)%h%C(reset) - %C(green)(%ar)%C(reset) %s %C(white)<%an>%C(reset)%C(auto)%+d%C(reset)'

最佳答案

%w 如下似乎可以解决问题。

git log --graph --format=format:'%h - [%ar] %-s%w(0,0,9)%+d'

Git 版本 1.8.5.2

关于git - git log 格式的可选缩进换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22415347/

10-13 09:22
查看更多