--date=local
git log
在我的(用户' s)时区显示日期:
$ git log --date=local -3 --pretty=tformat:'%cd %h' --abbrev-commit
Thu Dec 18 15:22:11 2014 dc20f74
Thu Dec 18 14:01:26 2014 06c214f
Tue Nov 4 03:48:44 2014 ac33158
- date [...]仅对以人类可读格式显示的日期生效,例如使用--pretty时。
但是使用ISO格式%ci
它不起作用,事实上--date=local
和--date=default
产生完全相同的输出:
$ git log --date=local -3 --pretty=tformat:'%ci %h' --abbrev-commit
2014-12-18 23:22:11 +0000 dc20f74
2014-12-18 22:01:26 +0000 06c214f
2014-11-04 17:18:44 +0530 ac33158
$ git log --date=default -3 --pretty=tformat:'%ci %h' --abbrev-commit
2014-12-18 23:22:11 +0000 dc20f74
2014-12-18 22:01:26 +0000 06c214f
2014-11-04 17:18:44 +0530 ac33158
如何在本地时区以较简洁的格式查看git log?理想情况下,我希望在'%C%m%dT%H%M%S'
中看到它们,以使用unix日期语法。
答案 0 :(得分:7)
git 2.7(2015年第4季度)可以引入-local
作为指令。
这意味着,除了:
--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)
您现在可以使用本地时区要求任何日期格式。
在你的情况下:
git log --date=iso-local -3 --pretty=tformat:'%cd %h' --abbrev-commit
^^^^^^^^^
|____| that part is new!
请参阅commit 99264e9,commit db7bae2,commit dc6d782,commit f3c1ba5,commit f95cecf,commit 4b1c5e1,commit 8f50d26,{{3} },commit 78a8441(2015年9月3日)commit 2df4e29
请John Keeping (johnkeeping
)查看commit add00ba,commit 547ed71(2015年9月3日)
(Jeff King (peff
)合并于Junio C Hamano -- gitster
--,2015年10月5日)
特别提到commit 7b09c45:
date
:make"local
"与日期格式正交:我们的大部分"
--date
"模式是关于日期的格式:我们显示的项目和顺序 但是"--date=local
"有点奇怪。这意味着"以正常格式显示日期,但使用当地时区"。
我们使用的时区与实际格式正交,我们没有理由不能将#8;本地化iso8601"等等。此补丁添加了"
local
"布尔字段为"struct date_mode
",并从DATE_LOCAL
枚举中删除date_mode_type
元素(它现在只有DATE_NORMAL
加{{ 1}})。
用户可以通过添加"local=1
"来访问新功能。到任何日期模式(例如,"-local
"),我们保留"iso-local
"作为"local
"的别名为了向后兼容。
答案 1 :(得分:0)
似乎无法显示转换为本地用户时区的%ci
(ISO时间格式);它总是显示在提交者的时区。您可以使用%ct
并解析输出并使用date
或其他脚本等实用程序重新格式化,或使用%cd
。