当我执行“git log”时,为什么提交的日期不正确?
我正在查看我的存储库的 1 个分支。日期应该安排妥当吧?
不能保证日期应该按任何顺序排列。事实上,您可以使用 Git 轻松伪造日期。
不过,这很可能是由于变基或挑选樱桃造成的。例如,我经常做的是在本地提交一些工作,然后git pull --rebase
. 结果是历史被重写,因此我的提交现在是origin/master
同时引入的提交的子项,但git rebase
不会更改过程中提交的日期。git cherry-pick
有同样的效果。
如果您想查看提交更改的日期,您可以git log --pretty=fuller
查看CommitDates
以及AuthorDates
. 这些更有可能是有序的,但即使在这里,也不能保证。
不,不一定。
Git 跟踪两个日期。作者日期表示原作者提交的时间。在电子邮件补丁的情况下,它可能取自电子邮件日期。该补丁可能会在更晚的时间应用。
提交日期通常按照提交时间的顺序排列,并且只有在其父项存在时才能进行提交。如果提交被重新定位或精选,它将被赋予一个新的提交日期,但原始作者日期将被保留。然而,即使是提交日期也是取自它所在机器的本地系统时间,因此它受制于本地时钟的设置。一般来说,不能保证这在机器上是准确的或一致的。
(两个日期都包含时区信息。)