繁体   English   中英

git log:只显示昨天的提交

[英]git log: only show yesterday's commit

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

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

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

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

编辑:

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

我正在寻找一种方法来显示自“昨天”以来的所有提交,并且很难获得超过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左右在我的地方! 巧合? 我想不是。 现在是4:30,所以AlexanderBird指出,昨天是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}"`

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM