为什么git log中的提交日期不按顺序?

mic*_*ael 13 git

当我执行'git log'时,为什么提交的日期不按顺序?

我正在查看我的存储库的1个分支.日期应该是有序的,对吗?

Fre*_*Foo 13

无法保证日期应按任何顺序排列.事实上,您可以使用Git轻松伪造日期.

最有可能的,不过,这是由于重定基或挑肥拣瘦.例如,我经常做的是在当地投入一些工作git pull --rebase.结果是重写历史记录,以便我的提交现在是同时引入的提交的子项origin/master,但git rebase不会更改过程中提交的日期.git cherry-pick具有相同的效果.

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


CB *_*ley 9

不,不一定.

Git跟踪两个日期.作者日期说原作者提交时.对于电子邮件补丁,可以从电子邮件日期获取.补丁可能会在很晚的时候应用.

提交日期通常按照提交时的顺序进行,并且只有在其父项存在时才能进行提交.如果提交被重新定位或挑选,它将被赋予新的提交日期,但原始作者日期将被保留.但是,即使提交日期取自机器的本地系统时间,因此它也会受到本地时钟设置的任何影响.通常,不能保证这在机器之间是准确的或一致的.

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