我有一个包含 18 个提交的测试存储库。
git log | grep Date:
返回以下内容:
Date: Fri Sep 20 08:04:13 2013 +0200
Date: Fri Sep 20 08:03:28 2013 +0200
Date: Fri Sep 20 08:02:05 2013 +0200
Date: Thu Sep 19 09:53:10 2013 +0200
Date: Wed Sep 18 17:04:41 2013 +0200
Date: Wed Sep 18 17:03:36 2013 +0200
Date: Sat Sep 14 14:42:10 2013 +0200
Date: Wed Sep 11 10:37:25 2013 +0200
Date: Fri Aug 30 13:59:43 2013 +0200
Date: Fri Aug 30 13:56:35 2013 +0200
Date: Fri Aug 30 11:30:17 2013 +0200
Date: Thu Aug 29 13:44:28 2013 +0200
Date: Thu Aug 29 13:34:32 2013 +0200
Date: Wed Aug 28 14:44:03 2013 +0200
Date: Wed Aug 28 14:32:44 2013 +0200
Date: Tue Aug 27 16:18:53 2013 +0200
Date: Tue Aug 27 16:16:29 2013 +0200
Date: Tue Aug 27 15:46:04 2013 +0200
我想从今天(20.09.2013)发生的所有提交中获取日志,所以我尝试了
git log --since=20-09-2013 | grep Date:
我对此一无所获。所以我在这里搜索了一下,发现了这个问题。在评论中它指出
似乎是这样,它没有时间默认为一天的最后一秒。
好的没问题。让我们试试git log --since=19-09-2013
。那返回
Date: Fri Sep 20 08:04:13 2013 +0200
Date: Fri Sep 20 08:03:28 2013 +0200
Date: Fri Sep 20 08:02:05 2013 +0200
Date: Thu Sep 19 09:53:10 2013 +0200
等等,这看起来很奇怪,不是吗?如果它应该使用指定日期的最后一秒,为什么它会显示09:53:10
在该日期发生的提交?git 不应该只显示 19.09.2013 之后发生的提交吗?
但是等等,它变得更加陌生!我尝试添加时间,结果是
git log --since=20-09-201309:00:00
Date: Fri Sep 20 08:04:13 2013 +0200
Date: Fri Sep 20 08:03:28 2013 +0200
Date: Fri Sep 20 08:02:05 2013 +0200
就这样……等一下……所有的提交都发生在之前09:00:00
。为什么 git 显示它们?事实上,据我所知,我也犯了语法错误!让我们尝试一些东西:
git log --since=20-09-201312:08:00 | grep Date:
Date: Fri Sep 20 08:04:13 2013 +0200
Date: Fri Sep 20 08:03:28 2013 +0200
Date: Fri Sep 20 08:02:05 2013 +0200
仍然有效...
git log --since=20-09-201312:09:00 | grep Date:
<nothing>
嗯,那里发生了什么?似乎 git 只使用最后两个 : 分隔的数字。20.09.2013 08:00
但是,如果 git似乎认为实际上我正在寻找之后的提交,为什么 git 会显示之后发生的提交20.09.201312 08:00
呢?这对我来说没有任何意义。