【发布时间】:2018-12-25 02:34:58
【问题描述】:
我正在尝试打印带有 UTC/UNIX 纪元秒时间戳、提交时区和短哈希的 git 日志。
我注意到https://git-scm.com/docs/git-log/2.17.1:
%ad:作者日期(格式尊重 --date= 选项)
%at:作者日期,UNIX 时间戳
- --date=raw 将日期显示为自纪元 (1970-01-01 00:00:00 UTC) 以来的秒数,后跟一个空格,然后是时区作为与 UTC 的偏移量(a + 或 - 与四位数字;前两位是小时,后两位是分钟)。即,好像时间戳是用
strftime("%s %z")格式化的)。请注意,-local 选项不会影响 seconds-since-epoch 值(始终以 UTC 测量),但会切换随附的时区值。
所以,我先天真地尝试了这个:
$ git --no-pager log --reverse --pretty='%at %z %h'
1528917616 %z 1cabbe9
1528960200 %z 3fad300
1528964789 %z ba4e746
1528964798 %z d39a4f8
...
显然,%z 不会在 git log --pretty/--format 中展开。
然后,有点意外,我尝试了这个:
$ git --no-pager log --reverse --date=raw --pretty='%ad %h'
1528917616 +0000 1cabbe9
1528960200 +0000 3fad300
1528964789 +0000 ba4e746
1528964798 +0000 d39a4f8
1528967981 +0000 a9cdecb
1528970465 +0000 3e9cee9
....
...这正是我想要的!除了,这里我没有单独的时区格式参数,所以如果我想的话,我不能把它移到别处,至少不能直接在git log 命令中。
那么,有谁知道,如果有一个我可以直接在git log 中使用的格式说明符,它只会让我获得提交时间戳的时区?
【问题讨论】: