Я пытаюсь распечатать журнал git с отметкой времени в секундах эпохи UTC / UNIX, часовым поясом фиксации и коротким хешем.
Я заметил https://git -scm.com / docs/git-log/2.17.1:
% объявление: дата автора (с учетом формата --date = опция)
% по адресу: дата автора, метка времени UNIX
- - date = raw показывает дату в секундах с начала эпохи (1970-01-01 00:00:00 UTC), затем пробел, а затем часовой пояс как смещение от UTC (+ или - с четырьмя цифрами: первые два часа, а вторые две минуты).Т.е. как будто отметка времени была отформатирована с
strftime("%s %z")
).Обратите внимание, что параметр -local не влияет на значение секунд с момента появления (которое всегда измеряется в UTC), но переключает соответствующее значение часового пояса.
Итак, я наивно пыталсяэто сначала:
$ git --no-pager log --reverse --pretty='%at %z %h'
1528917616 %z 1cabbe9
1528960200 %z 3fad300
1528964789 %z ba4e746
1528964798 %z d39a4f8
...
Очевидно, что %z
не расширяется в журнале git --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
, и который получит мне только часовой пояс временной метки коммита?