git log 格式的可选缩进换行符

Mic*_*ael 4 git formatting git-log

我一直在修改git某些log命令的别名。我有我想要的大部分东西(信用在这里),但是我在一件事情上遇到了麻烦。当我打电话

git log --graph --format=format:'%h - [%ar] %s%+d'
Run Code Online (Sandbox Code Playgroud)

我得到

* ab123f - [6 hours ago] Fix the references
|  (HEAD, origin/master, master)
* bc123f - [8 hours ago] New build syntax
* cd123f - [10 hours ago] Initial import
Run Code Online (Sandbox Code Playgroud)

Where%+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
Run Code Online (Sandbox Code Playgroud)

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

为简单起见,颜色和进一步的提交信息已被删除,但它们似乎干扰了torek 的回答。完整命令如下:

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

小智 5

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

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

Git 版本 1.8.5.2