我已经看过来自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"...and等等。我觉得我已经尝试了since、after、before和until的所有可能组合,但仍然找不到答案,我也不知道这些选项是包含的还是排他的,因为如果两个日期不同,它们似乎是包含的,但如果它们在同一天,则是排他的。我错过了什么吗/我做错了什么?!
发布于 2013-11-15 04:07:32
答案是指定时间,例如git log --after="2013-11-12 00:00" --before="2013-11-12 23:59"
发布于 2016-06-14 15:31:04
我通常检查我的git日志,看看我在特定的一天做了什么工作,然后基于此更新我的时间表,但是输入ISO格式的完整日期是一件很痛苦的事情,所以我就这样做
git log --after=jun9 --before=jun10我添加了--author,只打印我的提交
git log --since=jun9 --until=jun10 --author=Robert 这将打印发生在6月9日的提交(因此在本例中为2016年,而不是2015年或2014年,依此类推)。
--since/--after和--until/--before参数也可以接受3 days ago、yesterday等参数。
发布于 2016-05-22 07:35:49
被接受的答案(我赞成)没有错,但是...我们是为科学而来的!
可使用pretty=format:<string> placeholders扩展/自定义以下输出
git log --pretty='format:%H %an %ae %ai' | grep 2013-11-12不是100%不受错误的影响,因为用户可能已经输入了相同的字符串。但可以接受,这取决于使用的占位符。例如,上面的代码片段不会失败。
我们也可以将整个git log解析为JSON,然后根据自己的意愿使用/操作其中的数据。查看https://github.com/dreamyguy/gitlogg,永远不要回头!
免责声明:这是我的一个项目。
https://stackoverflow.com/questions/19987099
复制相似问题