私はいくつかのコミットだけの簡単なテストリポジトリを持っていますが、日付と時刻のフィルタリングされたログを見たいです:
$ git log --author = "automatix" --since = "2013-01-30" --pretty-test commit ea0719bef142659fa561c9d040b2120012ed0184 Date:Thu Jan 31 02 :03:12 2013 +0100 commit ab4a8387bc4d9bdb4f67212df77eb1fc3d8b6304 Date:Thu Jan 31 01:59:11 2013 +0100 f9f9bf9bf9bf9bf9bf9bf9bf9bf9bf9bf9bf9f94b94f94b94f94f94f94f94f94f94f94f94b94f94f94b94f94f94f94f94f94b94bf9f9bf8f9bf8bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9fb8fb12b3bf3b8bf3f12a) .____。]日付:木1月31日01:50:38 2013 +0100 commit add77c8fe2ba9254c11b98e14facede3420dc51c 日付:木1月31日01:48:34 2013 +0100 commit e6e323c05d37c74fcabeb9186b95c0d49b862e6f 日付:木1月31日01:46:27 2013 +0100 commit 8c286391e54d3fc1e210950b1320fd6f013_8.01_8.01 :41:27 2013 +0100 commit 9c880595e57f717383796fa2940f41f0f42f7e2a 日付:木1月31日01:38:17 2013 +0100 commit a95527f36a533e1ecba1aadaea .____。]日付:木1月31日01:30:00 2013 +0100
最初に選択されたコミットはa95527f36a533e1ecba1aadceea31a9dcbe1a8db
from 2013-01-30 01:30:00
。 8つのコミットが選択されています。
$ git log --author = "automatix" --since = "2013-01-30" --format = oneline-test | wc 8 34 498
OK。 2013-01-31
:
$ git log --author = "automatix" --since = "2013-01-31" --format = oneline-test | wc 0 0 0
何?わかりました、つまり、since
ルールexcludesは開始日のコミットです。右?
しかし続けましょう:
$ git log --author = "automatix" --since = "2013-01-31 01:30:00" --pretty-test commit ea0719bef142659fa561c9d040b2120012ed0184 Date:Thu Jan 31 02 :03:12 2013 +0100 commit ab4a8387bc4d9bdb4f67212df77eb1fc3d8b6304 Date:Thu Jan 31 01:59:11 2013 +0100 f9f9bf9bf9bf9bf9bf9bf9bf9bf9bf9bf9bf9f94b94f94b94f94f94f94f94f94f94f94f94b94f94f94b94f94f94f94f94f94b94bf9f9bf8f9bf8bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9bf8b9fb8fb12b3bf3b8bf3f12a) .____。]日付:木1月31日01:50:38 2013 +0100 commit add77c8fe2ba9254c11b98e14facede3420dc51c 日付:木1月31日01:48:34 2013 +0100 commit e6e323c05d37c74fcabeb9186b95c0d49b862e6f 日付:木1月31日01:46:27 2013 +0100 commit 8c286391e54d3fc1e210950b1320fd6f013_8.01_8.01 :41:27 2013 +0100 commit 9c880595e57f717383796fa2940f41f0f42f7e2a 日付:木1月31日01:38:17 2013 +0100 commit a95527f36a533e1ecba1aadaea .____。]日付:木1月31日01:30:00 2013 +0100
$ git log --author = "automatix" --since = "2013-01-31 01:30:00" --format = oneline-test | wc 8 34 498
さて、私も開始時刻を書いているとき、開始時刻のコミットはincludedです。
論理がわかりません。誰が説明できますか、なぜそれがとても奇妙に働くのですか?
ありがとう
私がやったようにここに着く他の誰かを助ける場合は、少し調査した後、 ISO8601 format を使用してもうまくいくことがわかりました:
git log --since="2014-02-12T16:36:00-07:00"
これにより、秒単位の精度が得られます。注:以下も使用できます。
git log --after="2014-02-12T16:36:00-07:00"
git log --before="2014-02-12T16:36:00-07:00"
git log --since="1 month ago"
git log --since="2 weeks 3 days 2 hours 30 minutes 59 seconds ago"
等.
もちろん、これは「なぜそれがそれほど奇妙に機能するのかを説明する」ものではありません。しかし、それは確かに私にとって問題を解決しました。
編集:
もう少し研究した後、「なぜそれがそれほど奇妙に機能するのか」を見つけました。
日付形式を指定しない場合、 git logのデフォルトは作成者のタイムゾーンまたはコミット日付のいずれか であり、一貫した動作を意味するため、日付を明示的に宣言すると便利です。次のような形式でフォーマットします。
git log --date=local
最後に、時間を指定しない場合、コマンドを実行したときのデフォルトはローカル時間になります。
要するに、具体的であることは問題を解決するはずです。
git log --date=local --after="2014-02-12T16:36:00-07:00"
また、次のコマンドを使用して、デフォルトの日付形式を永続的に設定できます。
git config log.date local
次のいずれかの値を使用できます:(relative|local|default|iso|rfc|short|raw)