git 日志:仅显示昨天的提交



git log --since=yesterday --until=today不起作用,因为它将包括今天的提交。

git log --since=yesterday --until=yesterday不起作用,因为它根本不会显示任何内容。

我假设"昨天"翻译为前一天的凌晨12:01,"今天"翻译为当前时间。这在一定程度上是有道理的,但现在对我来说毫无帮助。

我也希望这是一个脚本。所以我不能硬编码日期/时间。唯一的选择真的是以编程方式计算昨天的日期并手动传递小时吗?

编辑:

我注意到以下内容。在最新版本的git的源代码中,"昨天"(请参阅此处的代码(的意思是当前时间前24*60*60秒。因此,取决于你需要多精确,这可能很重要。就在代码中这一行的上方,您可以看到"today"确实意味着现在

我一直在寻找一种显示自"昨天"以来所有提交的方法,但很难将提交时间提前到24小时之前(如果现在是上午11点,而我只使用--since=yesterday,我就不会提交,例如上午10:30,如前所述(。使用

git log --since=yesterday.0:00am

或者,更方便的

git log --since=yesterday.midnight

解决了它。感谢"tinifni"非常有用的要点:https://gist.github.com/tinifni/3756796

您不必计算日期:

git log --since=yesterday --before=0am

然而,要小心git到底认为什么是一天的开始。小演示:

git log --since=yesterday --before=0am | grep Date:
Date:   Wed Jul 2 18:01:28 2014 +0200
Date:   Wed Jul 2 17:59:39 2014 +0200
Date:   Wed Jul 2 17:59:22 2014 +0200
Date:   Wed Jul 2 17:02:37 2014 +0200
Date:   Wed Jul 2 16:53:52 2014 +0200
git log  | grep Date:
Date:   Wed Jul 2 18:01:28 2014 +0200
Date:   Wed Jul 2 17:59:39 2014 +0200
Date:   Wed Jul 2 17:59:22 2014 +0200
Date:   Wed Jul 2 17:02:37 2014 +0200
Date:   Wed Jul 2 16:53:52 2014 +0200
Date:   Wed Jul 2 16:02:49 2014 +0200
Date:   Wed Jul 2 15:41:15 2014 +0200
Date:   Wed Jul 2 15:16:47 2014 +0200
Date:   Wed Jul 2 14:34:15 2014 +0200
Date:   Wed Jul 2 10:48:25 2014 +0200
Date:   Wed Jul 2 10:44:59 2014 +0200

很明显,这一天是下午4点30分左右在我家开始的!巧合我想不是。正如AlexanderBird所指出的,现在是4:30,昨天是git源代码中当前时间的24小时前。

#!/usr/bin/ruby
require 'date'
today = Date.today.strftime("%m/%d/%Y")
yesterday = Date.today.prev_date.strftime("%m/%d/%Y")
puts `git log --since=#{yesterday} --until="#{today}"`

注意,我相信这比仅仅将字符串"昨天"传递给gitcli更准确,因为"昨天"只表示当前时间前24*60*60秒。

最新更新