どのようにgitから2つの日付の間に指定されたユーザーの差分を取得するには?

または、git whatchangedコマンドを使用して、指定されたユーザーのコミットを一覧表示する方法はありますか? スクリプトなしの方法はありますか? (組み込みgitコマンド)

26

3 答え

私は日付を知るだけのdiffを得るための方法がないと信じています。

今日の時点で、次のことができます:

git log --since "OCT 4 2011" --until "OCT 11 2011" --pretty=format:"%H"

そして、最初と最後のリビジョンの間に git diff を置きます。リビジョンリストが長すぎる場合は、上記の git log ...| head -1| tail -1 を使用して、最初と最後のリビジョンを取得します。

上記のgitログは、特定の日付、すなわちOCT 5、OCT 6、...、OCT 10のリビジョンの正確にリビジョンを返します。

35
追加された
あなたは @ {date} 表記を使って直接diffを使ってそれを行うことはできますが、それほど信頼性はありません。 git diff @ {date1} @ { date2} その問題は、 @ {date} 構成では、日付をコミットIDに変換するためにコミット履歴を調べず、代わりに revlog を使用することです。結果は、あなたが本当に頻繁にを引っ張ると、あなたのrevlogは十分な情報を持っていて、上記のことがあなたが望むことをするのに十分な情報を得るでしょうが、しないと結果が不正確になる...
追加された 著者 snogglethorpe,
git log --since = "FEB 1 2014" --until = "FEB 30 2014"
追加された 著者 bonyiii,

これは可能であり、ユーザー/コミッターの基準もあります:

git log --after="2015-10-14" --before="2015-10-21" --grep="MB[FT][0-9-]*" --author="John\|Mary"

これは何でも一致します

  • between those date
  • by authors matching the names John or Mary
  • where the commit message includes (e.g. a Jira ticket number in the form of) MBT or MBF plus a number-code that can include a - char.
4
追加された
これはログを表示しますが、diffは表示しません。
追加された 著者 pingu,
git log --since "MAY 1 2017" --until "MAY 31 2017" -p --author="Jack" > diffJackMay.patch
0
追加された