簡體   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