【发布时间】:2013-01-15 02:18:40
【问题描述】:
我有一个只有几个提交的简单测试存储库,我想查看日期和时间过滤日志:
$ git log --author="automatix" --since="2013-01-30" --pretty --test 提交 ea0719bef142659fa561c9d040b2120012ed0184 日期:2013 年 1 月 31 日星期四 02:03:12 +0100 提交 ab4a8387bc4d9bdb4f67212df77eb1fc3d8b6304 日期:2013 年 1 月 31 日星期四 01:59:11 +0100 提交 a0b027beba2cd03571bb9475b9db9542f8efe990 日期:2013 年 1 月 31 日星期四 01:50:38 +0100 提交 add77c8fe2ba9254c11b98e14facede3420dc51c 日期:2013 年 1 月 31 日星期四 01:48:34 +0100 提交 e6e323c05d37c74fcabeb9186b95c0d49b862e6f 日期:2013 年 1 月 31 日星期四 01:46:27 +0100 提交 8c286391e54d3fc1e210950b1320fd6f013a8f84 日期:2013 年 1 月 31 日星期四 01:41:27 +0100 提交 9c880595e57f717383796fa2940f41f0f42f7e2a 日期:2013 年 1 月 31 日星期四 01:38:17 +0100 提交 a95527f36a533e1ecba1aadceea31a9dcbe1a8db 日期:2013 年 1 月 31 日星期四 01:30:00 +0100第一个选择的提交是来自2013-01-30 01:30:00 的a95527f36a533e1ecba1aadceea31a9dcbe1a8db。选择了 8 个提交:
好的。现在我选择2013-01-31:
什么?好的,这应该意味着since 规则排除 startdate 的提交。对吧?
但是让我们继续吧:
$ git log --author="automatix" --since="2013-01-31 01:30:00" --pretty --test 提交 ea0719bef142659fa561c9d040b2120012ed0184 日期:2013 年 1 月 31 日星期四 02:03:12 +0100 提交 ab4a8387bc4d9bdb4f67212df77eb1fc3d8b6304 日期:2013 年 1 月 31 日星期四 01:59:11 +0100 提交 a0b027beba2cd03571bb9475b9db9542f8efe990 日期:2013 年 1 月 31 日星期四 01:50:38 +0100 提交 add77c8fe2ba9254c11b98e14facede3420dc51c 日期:2013 年 1 月 31 日星期四 01:48:34 +0100 提交 e6e323c05d37c74fcabeb9186b95c0d49b862e6f 日期:2013 年 1 月 31 日星期四 01:46:27 +0100 提交 8c286391e54d3fc1e210950b1320fd6f013a8f84 日期:2013 年 1 月 31 日星期四 01:41:27 +0100 提交 9c880595e57f717383796fa2940f41f0f42f7e2a 日期:2013 年 1 月 31 日星期四 01:38:17 +0100 提交 a95527f36a533e1ecba1aadceea31a9dcbe1a8db 日期:2013 年 1 月 31 日星期四 01:30:00 +0100
$ git log --author="automatix" --since="2013-01-31 01:30:00" --format=oneline --test |厕所
8 34 498
现在,当我也在编写 starttime 时,starttime 的提交也被包含。
我不明白其中的逻辑。谁能解释一下,为什么它会如此奇怪?
谢谢
【问题讨论】:
-
确实很有趣.. 如果您只提供没有时间的日期,它默认为一天的最后一秒.. 但这只是我正在尝试的事情在。感谢您发布此信息。很有趣!
-
是的,似乎是这样,它没有时间默认为一天的最后一秒。斯坦奇,但没问题。但是,当提供没有秒的时间时,Git 应该随之而来并做同样的事情。所以
git log --author="automatix" --since="2013-01-31 01:30" --pretty -- test的结果应该包含 7 个提交。但它的内容是 8。git log --author="automatix" --since="2013-01-31 01:30" --format=oneline -- test | wc=> 8 34 498 -
我不同意。当我说“……发生在星期一之后”时,我的意思是“发生在星期一的最后一秒之后”——“星期一”代表 24 小时的时间段。当我说“发生在 9 点之后”时,我的意思是“发生在 9:00:00.0000 之后”——“9 点”是一个时间点,而不是一个时间跨度。 Git 的解释是最有意义的。
-
这是一个很好的观点。我想说,这个逻辑只适用于“之后”——而不是“自从”。但是在 Git 中,关键字“since”和“after”是同义词(我觉得它在语言上很脏)。 git-scm.com/book/en/…
-
Git 有两个日期作者日期和提交日期。通常,作者日期和运行
git log --pretty=fuller中显示的内容显示了两个日期。--since开关适用于 提交日期 值 更新 比提到的值。更多关于 git 日期 - stackoverflow.com/a/11857467/3940047