【发布时间】:2013-11-28 00:30:13
【问题描述】:
我已经查看了来自 git-scm.com 和 gitref.org 的相关文档,但我似乎无法弄清楚这一点。
假设我想要获取 2013 年 11 月 12 日星期二的所有提交。以现有的 repo 为例,我知道我在那天有提交,以及前一天和当天的提交后。
使用2013-11-11 和2013-11-12
以下所有内容都为我提供了 11 月 11 日和 12 日的提交:
git log --after="2013-11-11" --until="2013-11-12"git log --since="2013-11-11" --until="2013-11-12"git log --after="2013-11-11" --before="2013-11-12"git log --since="2013-11-11" --before="2013-11-12"
仅限2013-11-12
以下所有内容都没有提交:
-
git log --since="2013-11-12" --until="2013-11-12" git log --since="2013-11-12" --before="2013-11-12"git log --after="2013-11-12" --until="2013-11-12"-
git log --after="2013-11-12" --before="2013-11-12"
使用2013-11-12 和2013-11-13
正如预期的那样(根据上面 2013-11-11 和 2013-11-12 的结果),以下所有内容都给出了 11 月 12 日和 13 日的结果:
git log --since="2013-11-12" --before="2013-11-13"git log --after="2013-11-12" --before="2013-11-13"git log --since="2013-11-12" --until="2013-11-13"git log --after="2013-11-12" --before="2013-11-13"
...等等等等。我觉得我已经尝试了since、after、before 和until 的所有可能组合,但仍然找不到答案,我也不明白这些选项是包容性的还是排斥性的,因为它们如果两个日期不同,则似乎具有包容性,但如果它们在同一天,则具有排斥性。我错过了什么/我做错了什么?!
【问题讨论】:
-
我发现 git 的since/after/until/before 自己处理很奇怪,所以我不知道答案,但是您是否尝试过指定日期+时间(例如,--since=" 2013-11-12 00:00")?另外,您的(任何)提交是否有不同的提交者和作者日期?
-
你明白了!指定工作时间。我什至没有想过要花时间尝试一下。谢谢!至于提交者与作者的日期——在这些日期期间没有应用补丁,所以不是这样。
-
在我看来 'git log --boundary' 应该为你做这件事,所以 'git log --boundary --after="2013-11-12" --before="2013 -11-12"' 将仅显示一个提交(您认为它会的那个 :))。