如何更改Git日志日期格式

213

我想在Git中显示最新的提交信息,但需要以特定格式显示日期。

我知道log pretty格式%ad支持--date参数,但是我只能找到 "short" 这个日期格式,我想知道其他可用的日期格式,是否可以创建自定义日期格式,例如:

git -n 1 --date=**YYMMDDHHmm** --pretty=format:"Last committed item in this release was by %%an, %%aD, message: %%s(%%h)[%%d]"

2
我总是觉得官方的Linux内核Git文档是这类问题的绝佳资源。 - user456814
5
注意:现在(2014年11月,Git 2.2),您可以使用 --date=iso-strict参数:请参见我的答案 - VonC
7
从Git 2.7(2015年第四季度)开始,您可以要求使用本地时区来格式化任何日期!请参见下面的回答。这意味着除了--date=(relative|local|default|iso|iso-strict|rfc|short|raw)之外,您还将拥有:--date=(relative-local|default-local|iso-local|iso-strict-local|rfc-local|short-local|raw-local) - VonC
12个回答

4
使用Bash和date命令将ISO格式转换为所需格式。我想要一个org-mode日期格式(和列表项),所以我这样做:
echo + [$(date -d "$(git log --pretty=format:%ai -1)" +"%Y-%m-%d %a %H:%M")] \
    $(git log --pretty=format:"%h %s" --abbrev=12 -1)

结果例如:

+ [2015-09-13 Sun 22:44] 2b0ad02e6cec Merge pull request #72 from 3b/bug-1474631

3
git log -n1 --format="Last committed item in this release was by %an, `git log -n1 --format=%at | awk '{print strftime("%y%m%d%H%M",$1)}'`, message: %s (%h) [%d]"

1
能否详细说明一下?此外,你的回答已经有了作者字段和历史记录,不需要签名。 - Kissaki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接