15

当我执行“git log”时,为什么提交的日期不正确?

我正在查看我的存储库的 1 个分支。日期应该安排妥当吧?

4

2 回答 2

15

不能保证日期应该按任何顺序排列。事实上,您可以使用 Git 轻松伪造日期。

不过,这很可能是由于变或挑选樱桃造成的。例如,我经常做的是在本地提交一些工作,然后git pull --rebase. 结果是历史被重写,因此我的提交现在是origin/master同时引入的提交的子项,但git rebase不会更改过程中提交的日期。git cherry-pick有同样的效果。

如果您想查看提交更改的日期,您可以git log --pretty=fuller查看CommitDates以及AuthorDates. 这些更有可能是有序的,但即使在这里,也不能保证。

于 2012-11-01T13:20:18.310 回答
10

不,不一定。

Git 跟踪两个日期。作者日期表示原作者提交的时间。在电子邮件补丁的情况下,它可能取自电子邮件日期。该补丁可能会在更晚的时间应用。

提交日期通常按照提交时间的顺序排列,并且只有在其父项存在时才能进行提交。如果提交被重新定位或精选,它将被赋予一个新的提交日期,但原始作者日期将被保留。然而,即使是提交日期也是取自它所在机器的本地系统时间,因此它受制于本地时钟的设置。一般来说,不能保证这在机器上是准确的或一致的。

(两个日期都包含时区信息。)

于 2012-11-01T13:24:18.937 回答