如何查看特定date的所有提交?

我已经从git-scm.com和gitref.org看过相关的文档,但我似乎无法弄清楚这一点。

假设我想要在2013年11月12日星期二提交所有提交。使用现有的回购作为示例,我知道有一个事实,那就是我当天已经提交,并且在前一天和后一天提交。

2013-11-112013-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-122013-11-13

如预期( 2013-11-112013-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"

…等等等等。 我觉得sinceafterbeforeafter ,我尝试了所有可能的组合,但是仍然无法find答案,也不了解这些选项是包含性的还是排他性的,因为如果两个date是不同的,但如果他们在同一天独家。 我错过了什么/我做错了什么?

感谢John Bartholomew!

答案是指定时间,例如git log --after="2013-11-12 00:00" --before="2013-11-12 23:59"

我通常检查我的git日志,看看我在一个特定的日子里工作,并更新我的时间表的基础上,但它是一个痛苦的屁股inputISO格式的完整date,所以我只是这样做

 git log --after=jun9 --before=jun10 

我添加 – 作者只打印我的提交

 git log --since=jun9 --until=jun10 --author=Robert 

这将打印在6月9日发生的提交(所以2016年在这种情况下,而不是2015年或2014年等)。

参数--since/--after--since/--after--until/--before也可以采用像3 days agoyesterday等等的东西。

被接受的答案(我提出)没有错,但是…我们在这里是为了科学!

下面的输出可以使用pretty=format:<string>扩展/定制pretty=format:<string> 占位符 :

 git log --pretty='format:%H %an %ae %ai' | grep 2013-11-12 

由于用户可能input了相同的string,因此不能100%地避免错误。 但可以接受取决于使用哪个占位符。 上面的代码片段不会失败,例如。

人们也可以将整个git logparsing为JSON并将其数据消费/操作为自己的心脏内容。 检查https://github.com/dreamyguy/gitlogg出去,永不回头!;

免责声明:这是我的项目之一。

我为这个具体目的做了一个别名:

 commitsAtDate = "!f() { git log --pretty='format:%C(yellow)%h %G? %ad%Cred%d %Creset%s%C(cyan) [%cn]' --decorate --after=\"$1 0:00\" --before=\"$1 23:59\" --author \"`git config user.name`\"; }; f" 

用法:

 git commitsAtDate 2017-08-18