git log:只显示昨天的提交

时间:2014-07-03 13:42:45

标签: git git-log

git log --since=yesterday --until=today无法正常工作,因为它包含今天的提交。

git log --since=yesterday --until=yesterday无法正常工作,因为它根本不会显示任何内容。

我假设"昨天"转换为上一个日期的上午12:01,"今天"转换为当前时间。这在某种程度上是有道理的,但现在对我来说是非常无益的。

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

编辑:

我注意到了以下内容。在最新版本的git的源代码中,似乎"昨天" (see code here)表示当前时间之前24 * 60 * 60秒。因此,根据您需要的精确程度,这可能很重要。在代码中的那一行正上方,您可以看到"今天"现在意味着什么

3 个答案:

答案 0 :(得分:15)

我一直在寻找一种方法来显示自“昨天”以来的所有提交,并且很难获得超过24小时前的提交(如果是上午11点,我只使用--since=yesterday,我就不会提交例如在上午10:30,如已经指出的那样)。 使用

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

或者,更方便

git log --since=yesterday.midnight

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

答案 1 :(得分:4)

您不必计算日期:

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左右开始在我的地方!巧合?我想不是。现在是4:30,所以AlexanderBird指出,昨天是git源代码当前时间前24小时。

答案 2 :(得分:1)

#!/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}"`

请注意,我认为这比仅仅将字符串“昨天”传递给git cli更准确,因为“昨天”仅表示当前时间之前的24 * 60 * 60秒。