git-scm.com および gitref.org の関連ドキュメントを既に見てきましたが、これを理解することはできません。
2013年11月12日火曜日のすべてのコミットを取得するとします。既存のレポを例にとると、その日にコミットがあり、前日と翌日にコミットしていることがわかります。
2013-11-11
および2013-11-12
を使用以下はすべて、11月11日と12日の両方のコミットを提供します。
git log --after="2013-11-11" --until="2013-11-12"
git log --since="2013-11-11" --until="2013-11-12"
git log --after="2013-11-11" --before="2013-11-12"
git log --since="2013-11-11" --before="2013-11-12"
2013-11-12
のみ以下はすべて私にコミットを与えません:
git log --since="2013-11-12" --until="2013-11-12"
git log --since="2013-11-12" --before="2013-11-12"
git log --after="2013-11-12" --until="2013-11-12"
git log --after="2013-11-12" --before="2013-11-12"
2013-11-12
および2013-11-13
を使用予想どおり(上記の2013-11-11
および2013-11-12
の結果から)、次のすべてが11月12日と13日の両方の結果を示しています。
git log --since="2013-11-12" --before="2013-11-13"
git log --after="2013-11-12" --before="2013-11-13"
git log --since="2013-11-12" --until="2013-11-13"
git log --after="2013-11-12" --before="2013-11-13"
...などなど。 since
、after
、before
、およびuntil
のすべての可能な組み合わせを試したが、それでも答えが見つからない、またはそれらがオプションは、2つの日付が異なる場合は包括的であるように見えますが、同じ日になっている場合は排他的であるように見えるため、包括的または排他的です。私は何かを見逃しましたか/私は間違っていますか?!
答えは、時間を指定することです。 git log --after="2013-11-12 00:00" --before="2013-11-12 23:59"
私は通常gitログを確認し、特定の日に何をしていたかを確認し、それに基づいてタイムシートを更新しますが、ISO形式で完全な日付を入力するのは面倒ですので、このようにします
git log --after=jun9 --before=jun10
--author
を追加して、コミットのみを出力します
git log --since=jun9 --until=jun10 --author=Robert
これにより、6月の最後の9日に発生したコミットが出力されます(したがって、この場合は2016であり、2015や2014などではありません)。
--since/--after
および--until/--before
パラメーターは、3 days ago
、yesterday
などのようなものを取ることもできます。
受け入れられた答え(私が支持した)に何も問題はありませんが、...私たちは科学のためにここにいます!
以下の出力は、pretty=format:<string>
プレースホルダー で展開/カスタマイズできます。
git log --pretty='format:%H %an %ae %ai' | grep 2013-11-12
同じ文字列がユーザーによって入力された可能性があるため、100%エラーの影響を受けません。ただし、使用されるプレースホルダーによっては許容されます。たとえば、上記のスニペットは失敗しません。
git log
からJSON
全体を解析し、そのデータを心のコンテンツに消費/操作することもできます。 https://github.com/dreamyguy/gitlogg をチェックして、決して振り返らないでください!
免責事項:それは私のプロジェクトの1つです。
その特定の目的のためにエイリアスを作成しました:
commitsAtDate = "!f() { git log --pretty='format:%C(yellow)%h %G? %ad%Cred%d %Creset%s%C(cyan) [%cn]' --decorate --after=\"$1 0:00\" --before=\"$1 23:59\" --author \"`git config user.name`\"; }; f"
使用法:
git commitsAtDate 2017-08-18