git日志的格式化输出与非格式化输出不一致

git日志的格式化输出与非格式化输出不一致,git,git-log,Git,Git Log,我刚刚克隆了Keras存储库,并对查看git日志感兴趣。我最初尝试使用一种漂亮的格式,在最后4次提交中得到了以下结果: me@ARL--M6800:~/Downloads/keras$ git log --pretty=format:"%cn %cd %h" François Chollet Tue Jan 17 13:29:21 2017 -0800 55487f3 François Chollet Mon Jan 16 17:14:16 2017 -0800 1c6db08 Françoi

我刚刚克隆了Keras存储库,并对查看git日志感兴趣。我最初尝试使用一种漂亮的格式,在最后4次提交中得到了以下结果:

me@ARL--M6800:~/Downloads/keras$ git log --pretty=format:"%cn %cd %h"

François Chollet Tue Jan 17 13:29:21 2017 -0800 55487f3
François Chollet Mon Jan 16 17:14:16 2017 -0800 1c6db08
François Chollet Mon Jan 16 10:05:35 2017 -0800 e54d795
François Chollet Sat Jan 14 21:33:04 2017 -0800 82ca6d4
commit 55487f33b135849cdda49bcc75778976d94a2575
Author: Javier Dehesa <javidcf@gmail.com>
Date:   Tue Jan 17 21:29:21 2017 +0000
 ...
commit 1c6db0815853f7c5421b8057e9167f19b5b94812
Author: Petr Baudis <pasky@ucw.cz>
Date:   Tue Jan 17 02:14:16 2017 +0100
...
commit e54d7951f2a82629c71c77ca842ba032b523fe84
Author: Pat York <pat.york@nevada.unr.edu>
Date:   Mon Jan 16 10:05:35 2017 -0800
  ...
commit 82ca6d418588ccd61d663ec8029937290b62d583
Author: Mohanson <mohanson@outlook.com>
Date:   Sun Jan 15 13:33:04 2017 +0800
但是,当我没有格式化输出时,我得到了最后4次提交的结果:

me@ARL--M6800:~/Downloads/keras$ git log --pretty=format:"%cn %cd %h"

François Chollet Tue Jan 17 13:29:21 2017 -0800 55487f3
François Chollet Mon Jan 16 17:14:16 2017 -0800 1c6db08
François Chollet Mon Jan 16 10:05:35 2017 -0800 e54d795
François Chollet Sat Jan 14 21:33:04 2017 -0800 82ca6d4
commit 55487f33b135849cdda49bcc75778976d94a2575
Author: Javier Dehesa <javidcf@gmail.com>
Date:   Tue Jan 17 21:29:21 2017 +0000
 ...
commit 1c6db0815853f7c5421b8057e9167f19b5b94812
Author: Petr Baudis <pasky@ucw.cz>
Date:   Tue Jan 17 02:14:16 2017 +0100
...
commit e54d7951f2a82629c71c77ca842ba032b523fe84
Author: Pat York <pat.york@nevada.unr.edu>
Date:   Mon Jan 16 10:05:35 2017 -0800
  ...
commit 82ca6d418588ccd61d663ec8029937290b62d583
Author: Mohanson <mohanson@outlook.com>
Date:   Sun Jan 15 13:33:04 2017 +0800
提交55487f33b135849cdda49bcc75778976d94a2575
作者:Javier Dehesa
日期:2017年1月17日星期二21:29:21+0000
...
提交1c6db0815853f7c5421b8057e9167f19b5b94812
作者:彼得·鲍迪斯
日期:2017年1月17日星期二02:14:16+0100
...
提交e54d7951f2a82629c71c77ca842ba032b523fe84
作者:帕特·约克
日期:2017年1月16日星期一10:05:35-0800
...
提交82ca6d418588ccd61d663ec8029937290b62d583
作者:莫汉森
日期:Sun Jan 15 13:33:04 2017+0800

虽然哈希匹配,但作者和提交日期不匹配。有人知道这是为什么以及它的含义吗?

似乎
%cd
在一个时区(
-0800
)中显示提交人日期,而默认格式在其本地时区中打印日期。这至少在某种程度上是合理的,而且时区的差异是一致的

关于作者,我不知道…

你应该使用

git log --pretty=format:"%an %ad %h"
因为%cn为您提供了提交者名称和%an作者名称(显示在“正常”日志中)

从手册页:

       ·   %an: author name

       ·   %aN: author name (respecting .mailmap, see git-shortlog(1) or git-blame(1))

       ·   %ae: author email

       ·   %aE: author email (respecting .mailmap, see git-shortlog(1) or git-blame(1))

       ·   %ad: author date (format respects --date= option)
vs


你能运行
git log--format=fuller
并检查
Commit
CommitDate
字段是否匹配吗?就是这样。为了获得作者,我只切换到%an作为姓名,而&an作为日期。我觉得自己有点傻,因为读一读更好的(或更多样化的)文档应该会让我明白这一点