どうやらこれ:
git log --all --after="<date> 00:00" --before="<date> 23:59" --author="<author>"
コミッターの日付に基づいてコミットをフィルタリングします。指定された作成者の日付範囲のコミットを表示するにはどうすればよいですか?
どうやらこれ:
git log --all --after="<date> 00:00" --before="<date> 23:59" --author="<author>"
コミッターの日付に基づいてコミットをフィルタリングします。指定された作成者の日付範囲のコミットを表示するにはどうすればよいですか?
回答:
少なくとも、Gitだけではできません。(この質問にアクセスする他の人へのリマインダー:作成者の日付を表示することではなく、作成者の日付、la /および/でコミットを選択することです。これらのセレクターは、作成者の日付ではなく、コミッターの日付を使用します。極端な例として、コミットを検討してください。コミッターの日付が2000年代になるように「今」作成されましたが、作成者の日付フィールドでは1999年のある日までさかのぼります。選択範囲が「世紀の変わり目に近いとき」である場合は、 -コミッターの日付が「現在」であり、1999年から10年以上経過しているため、このコミットを選択します。)--since
--after
--until
--before
これはGitの小さなバグだと思います。コミッターの日付フィールドの使用をリクエストできる場所であればどこでも、作成者の日付フィールドの使用をリクエストできるはずです。これは簡単ですログの書式我々が持っているため、%ad
と%cd
してとのような、しかし、不可能選択をコミットします。最も近いのはgit rev-list
、作成者の日付で並べ替えることができることです(一般的にトポロジカルソート内)。
のgit rev-list
ようなグローバルスイッチは、--use-author-date
単純なパッチとして機能し、Gitに追加するのはそれほど難しくありませんが--min-author-age
、--max-author-age
などと同様のフラグと「作成者の日付で並べ替え」フラグ(一般的な--topo-order
フラグ。両方のフラグを設定すると、--author-date-order
)と同じ効果があります。
回避策として、すべての潜在的に興味深いコミットをリストし(git rev-list
または同等のもの、たとえばgit log
:日付フィルターを除いて、コミットを潜在的に興味深いものにする任意の指定子を使用する:この場合はそれだけです--all
)、すべての作成者-日付フィールドを抽出できます(git log --format=%at
または何でも)、コミットIDのリストを独自にプルーニングしてから、残りのコミットIDをに再送信しgit log --no-walk
ます。しかし、これはせいぜい苦痛です。詳細については、awkを使用したTimBeigeleisenの回答を参照してください。
何かが足りないかもしれませんが、これで十分ではないでしょうか。
git log --pretty=format:"%ad - %an: %s" --after="2016-01-31" --until="2017-03-10" --author="John Doe"
こちらもご覧ください
%ad
ディレクティブは、それが2016年の前に道であっても、これは執筆-に-1999コミットを紹介します!
あなたができる。
しかし、@ torekが述べたように、純粋なGitではこれを実行できない可能性があります。1つのオプションは、いくつかのきれいな形式の出力をにパイプgit log
しawk
、そこで作成者の日付を確認することです。
git log --date=iso --pretty=format:'%ad%x08%aN' | awk '$0 >= "2013-01-01" && $0 <= "2013-12-01"'
ここで、%ad
は作成者の日付をISO形式で%aN
示し、作成者の名前を示します。
上記のTimBiegeleisenの回答に触発されました。
git log --all --date=iso --pretty=format:'%ad%x08%aN %s' | grep 2020-06-09 | sort -u
私が必要なことをしました。リベースとスカッシュが多いので、コミット日ではなく、作者の日付が欲しいです。しかし、私はインポートコミットの重要な日付を保持しています。
これに関連して、著者の電子メールをリセットできるが、元の著者の日付は保持できる小さなヘルパーがいます。--reset-authorはデフォルトで、作成者の日付を上書きします。
https://github.com/mathieujobin/git-scripts/blob/master/bin/git-reset-author-but-not-date
上記のgitログで、必要に応じて追加%H
してgitshaを取得できます
git log --all --date=iso --pretty=format:'%ad - %aN : %s' | grep 2020-09 | sort -u