[英]Strange behavior from git log --since
我有一個包含18個提交的測試存儲庫。 git log | grep Date:
git log | grep Date:
返回以下內容:
Date: Fri Sep 20 08:04:13 2013 +0200
Date: Fri Sep 20 08:03:28 2013 +0200
Date: Fri Sep 20 08:02:05 2013 +0200
Date: Thu Sep 19 09:53:10 2013 +0200
Date: Wed Sep 18 17:04:41 2013 +0200
Date: Wed Sep 18 17:03:36 2013 +0200
Date: Sat Sep 14 14:42:10 2013 +0200
Date: Wed Sep 11 10:37:25 2013 +0200
Date: Fri Aug 30 13:59:43 2013 +0200
Date: Fri Aug 30 13:56:35 2013 +0200
Date: Fri Aug 30 11:30:17 2013 +0200
Date: Thu Aug 29 13:44:28 2013 +0200
Date: Thu Aug 29 13:34:32 2013 +0200
Date: Wed Aug 28 14:44:03 2013 +0200
Date: Wed Aug 28 14:32:44 2013 +0200
Date: Tue Aug 27 16:18:53 2013 +0200
Date: Tue Aug 27 16:16:29 2013 +0200
Date: Tue Aug 27 15:46:04 2013 +0200
我想從今天發生的所有提交(2013年9月20日)中獲取日志,所以我嘗試了
git log --since=20-09-2013 | grep Date:
我對此一無所知。 所以我在這里搜索了一下,發現了這個問題。 在評論中,它說明了這一點
似乎是這樣,它沒有時間默認為當天的最后一秒。
好的沒問題。 讓我們試試git log --since=19-09-2013
。 那回來了
Date: Fri Sep 20 08:04:13 2013 +0200
Date: Fri Sep 20 08:03:28 2013 +0200
Date: Fri Sep 20 08:02:05 2013 +0200
Date: Thu Sep 19 09:53:10 2013 +0200
等等,這看起來很奇怪,不是嗎? 如果它應該使用指定日期的最后一秒,為什么它會顯示在該日期09:53:10
發生的提交? 不應該git只顯示2013年9月19日之后發生的提交嗎?
但等等,它變得更加陌生! 我嘗試添加一個時間,結果導致了
git log --since=20-09-201309:00:00
Date: Fri Sep 20 08:04:13 2013 +0200
Date: Fri Sep 20 08:03:28 2013 +0200
Date: Fri Sep 20 08:02:05 2013 +0200
這樣做了......等一下......所有的提交都發生在09:00:00
之前。 為什么git會顯示它們? 事實上,據我所知,我只是犯了語法錯誤! 讓我們嘗試一些東西:
git log --since=20-09-201312:08:00 | grep Date:
Date: Fri Sep 20 08:04:13 2013 +0200
Date: Fri Sep 20 08:03:28 2013 +0200
Date: Fri Sep 20 08:02:05 2013 +0200
仍然有效......
git log --since=20-09-201312:09:00 | grep Date:
<nothing>
嗯,那里發生了什么? 好像git只使用最后兩個: - 分隔數字。 但是為什么git會顯示20.09.2013 08:00
之后發生的提交,如果它似乎認為實際上我正在尋找20.09.201312 08:00
之后的提交? 這對我沒有任何意義。
默認情況下, git log
的日期將以默認格式顯示。
--date = default顯示原始時區(提交者或作者)的時間戳。
基於Git幫助日志
--date = local顯示用戶本地時區的時間戳。
--date = default顯示原始時區(提交者或作者)的時間戳。
我建議你運行git log --date=local --since=<your date>
。 它應該顯示本地機器的所有提交時間。
現在,回到你關於--since
的問題。
如果--since=<date>
沒有特定的時間,它將在您運行此命令時使用您的本地時間。
例如,
--since "20-09-2013"
當您在09AM運行此命令時,將充當
--since "20-09-2013 09:00:00"
所以,這就是為什么它沒有在那天做出一些提交的原因。 (因為它已經過了你當前的時間)
如果您想搜索今天的所有提交,請使用
--since "20-09-2013 00:00:00"
回到神秘的故事
所以,現在git log --since=19-09-2013.
那回來了
日期:星期五9月20日08:04:13 2013 +0200
日期:星期五9月20日08:03:28 2013 +0200
日期:星期五9月20日08:02:05 2013 +0200
日期:星期四9月19日09:53:10 2013 +0200
我猜你從2013年9月20日之后的08:04:13運行了這個命令。(根據你的提示, 從今天開始使用時,它什么都沒有顯示。)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.