当我将git log --pretty=oneline 2.0.7..2.1 -- wp-includes/functions.php
作为两个标签(发行版)之间的例子时,我发现它们之间实现了许多提交106次提交。但是当我看到版本1:2.0.7在2007-01-15 20:51:28 +0000发布并且版本2:2.1在2007-01-23 02:23:20 +0000发布时,这很奇怪。我发现的提交是在2006-02-09 10:03:48 +0000和2007-01-16 18:41:05 +0000之间
有人能解释一下这个现象吗?
首先,每个提交都有两个时间戳:作者时间戳和提交者时间戳。通常这两个是相同的,但这不是必需的。使用git log --pretty=fuller
来看两者。
其次,这些时间戳实际上是任意的(在某个范围内:它们仅限于Git可以在内部表示的值)。它们默认为您计算机上设置的任何内容,在您创建提交时,但计算机的时钟可能已关闭,可能非常频繁,并且任何人都可以告诉Git设置除时钟时间之外的特定时间。
最后,X..Y
符号并不意味着。请参阅我之前的问题How to find commit responsible by adding a file index (blob)的答案。密切关注各种可能的图形形状,并认为X..Y
实际上意味着Y ^X
:包括从提交Y
可以访问的任何提交,包括Y
本身,同时排除从X
可以访问的所有提交,包括X
本身。