我一直在修改一些log
命令的git
别名。我已经有了大部分我想要的东西(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
标记(如果存在)放在该行上。我更希望标记与 time stamp 一致,如下所示:
* 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)'
4条答案
按热度按时间46qrfjad1#
如下所示的
%w
似乎可以达到这个目的。Git版本1.8.5.2
w41d8nur2#
啊...使用
%n%-...
* 几乎 * 似乎工作,但我仍然不能让它做正确的事情在这里。啊哈!
'%h - [%ar] %s%n%-w(80,9)%+d'
起作用了!这看起来非常笨拙(添加一个换行符,或者删除它,换行时缩进9,如果%d不为空则添加一个换行符),但是更明显的版本(使用
%+w
,或者使用%w...%+d
但不使用%n
和%-
部分)不起作用。c9x0cxw03#
你也可以使用
awk
--但是上面的列方法更简洁。这可能会让你一直找到你要找的东西。从好的方面来说,这似乎为我保留了色彩。
n3schb8v4#
对于好奇的未来访客,我最终决定这样做:
git lg
或git lg1
(对于git log --oneline
类似物)git lg2
包括正文和完整日期(但也包括模糊日期)git lgs
作为颜色中断时的更简单的备用方法颜色做了足够的工作来区分我不再 Package 大多数名字和时间的部分。而且,
--date=auto:human
没有出现在最初的问题中,但我非常喜欢它。