以下命令以json格式显示有关上一次git提交的一些元数据:
git show --quiet HEAD --pretty=format:"{\"hash\":\"%h\", \"author\":\"%cn\", \"commit date\":\"%cd\"}"
{
"hash":"0fc0fc0",
"author":"Adam Matan",
"commit date":"Sun Jan 26 12:26:19 2014 +0200"}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在UTC/GMT时区中显示日期,例如"Sun Jan 26 10:26:19 2014"?
rob*_*nst 14
你可以用这个:
TZ=UTC git show --quiet --date=local --format="%cd"
Run Code Online (Sandbox Code Playgroud)
如果要控制日期格式,可以执行以下操作:
TZ=UTC git show --quiet --date='format-local:%Y%m%dT%H%M%SZ' --format="%cd"
Run Code Online (Sandbox Code Playgroud)
我在日志数据格式中没有看到 utc 格式(列出了这个答案)。
我从你的格式中得到的最接近的是:
git config log.date local
C:\Users\VonC\prog\git\git\>git show --quiet HEAD --pretty=format:"{\"hash\":\"%h\", \"author\":\"%cn\", \"commit date\":\"%cd\"}"
{"hash":"b594c97", "author":"Junio C Hamano", "commit date":"Thu Jan 23 10:00:28 2014 -0800"}
C:\Users\VonC\prog\git\git\>git config log.date local
C:\Users\VonC\prog\git\git\Documentation\technical>git show --quiet HEAD --pretty=format:"{\"hash\":\"%h\", \"author\":\"%cn\", \"commit date\":\"%cd\"}"
{"hash":"b594c97", "author":"Junio C Hamano", "commit date":"Thu Jan 23 19:00:28 2014"}
Run Code Online (Sandbox Code Playgroud)
所以从 iso 来看:
"Thu Jan 23 10:00:28 2014 -0800"
Run Code Online (Sandbox Code Playgroud)
至本地:
"Thu Jan 23 19:00:28 2014"
Run Code Online (Sandbox Code Playgroud)
正如评论所述,这不是UTC,除非您的计算机本地时间已经是 UTC。
这在邮件列表上进行了讨论:
添加
user.hideTimezone用于设置 UTC 时区默认情况下,创作和共享提交会公开用户的时区。
"
commit --date=YYYY-MM-DDThh:mm:ss+0000" 足以将作者时间放入 UTC,但不能将提交时间放入 UTC。
但用户根本不必传递标志。Git 应该完全停止访问、记录和共享用户的时区,句号。
如果做不到这一点,git 默认情况下应该停止访问、记录和共享用户的时区,但如果单个用户希望在提交时保留自己的时区,他们可以选择加入。
Git 维护者 Junio C. Hamano 回答道:
你可以自由奔跑
Run Code Online (Sandbox Code Playgroud)$ TZ=GMT git commit如果您想选择退出该功能,但从第一天起这就是默认设置,人们希望 Git 也能这样做。
还:
现在,使用
--dategit commit 上的参数还可以传递时区:Run Code Online (Sandbox Code Playgroud)git commit --date="$(TZ=PST date)"
该补丁(用于添加 user.hideTimezone)尚未完全开发。