对于某些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)'
答案 0 :(得分:4)
%W如下所示似乎可以解决问题。
git log --graph --format=format:'%h - [%ar] %-s%w(0,0,9)%+d'
Git版本1.8.5.2
答案 1 :(得分:1)
呃......使用%n%-...
几乎似乎有效,但我仍然无法在这里做正确的事。
啊哈! '%h - [%ar] %s%n%-w(80,9)%+d'
有效!
这看起来非常笨拙(添加换行符,可能会删除它,在9处用缩进包裹行,如果%d不为空则添加换行符),但更明显的版本(使用%+w
或{{ 1}}没有%w...%+d
和%n
部分)不能正常工作。
答案 2 :(得分:0)
您也可以使用awk - 但上面的列方法更清晰。这可能会把它一直带到你想要的东西。
git log --format=format:'%h - [%ar%] %s %d' | awk -F'(' '{print $1} {if ( $2 != "" ) print "\t ("$2}'
在好的方面,这似乎为我保留了颜色。