基于提交日期,获取git中自特定日期以来的提交记录

24

想要获取特定日期之后的提交记录。我可以这样做:

git log <ref> --since=<date> --pretty=format:%ci

这似乎是按作者日期列出提交记录。如何根据提交时间获取特定日期之后的提交记录?我可以解析上述命令的输出以获得所需内容,但我想知道是否有更好的方法来实现。


1
可能是重复的问题:如何配置'git log'以显示提交日期 - Tim Biegeleisen
1
是的,我可以解析问题中cmd的输出并根据提交日期过滤提交。不过有没有更好的方法呢? - Kaushik Lingerkar
浏览代码后,我的初步看法是“你不能”,但这似乎是向git提交补丁的绝佳机会 :) - larsks
3
我无法在git 1.9.1中复现这个问题。 这里使用提交的时间戳来使用--since/--until:http://pastebin.com/yYDVyqxc - Phillip
我认为你无法做到你所要求的 - 因为Git是一种分布式版本控制系统。每个提交都是进入存储库的“主”副本,即每个存储库都是一个克隆。因此,提交在同一全局(即相对本地)时间内,即相对于该机器的本地时间。不确定是否会让你更加困惑。 - Vijay Raghavan Aravamudhan
3个回答

22

我觉得你的问题不是很清楚,但我会尽我所能地回答:

我们知道,在参考文献 http://git-scm.com/docs/pretty-formats 中提到:

%ai: author date, ISO 8601-like format
%ci: committer date, ISO 8601-like format

这个有用吗?使用--after--before来获取之间的结果。下面的示例使用相同日期,时间范围在(2015年6月22日上午10:36到下午04:50)之间,使用%ci表示提交者日期。

git log --after="2015-06-22T10:36:00-07:00" --before="2015-06-22T16:50:00-07:00" --pretty=format:%ci

2
只是一个提示,日期字符串非常灵活。例如,--after="2020-08-28" 也可以工作。 - Penghe Geng

2

我认为无法调整git log,因为它在内部实现时使用提交日期来处理beforeaftersinceuntil参数。一般来说,Git的默认日期比较策略是基于提交日期


0

如果你使用%cr而不是%ci,那么至少你只有时间参考。但它们是相对的,比如“2小时前”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接