1人のユーザーのコミットのみのgitログを表示するにはどうすればいいですか? 質問する

1人のユーザーのコミットのみのgitログを表示するにはどうすればいいですか? 質問する

を使用する場合git log、そのユーザーからのコミットのみが表示されるようにユーザー別にフィルタリングするにはどうすればよいですか?

ベストアンサー1

これは両方に有効でありgit logギット- 履歴を表示する最も一般的な 2 つの方法。
名前全体を使用する必要はありません。

git log --author="Jon"

「Jonathan Smith」によるコミットと一致します

git log --author=Jon

そして

git log --author=Smith

も機能します。スペースが必要ない場合は引用符はオプションです。

--allリポジトリ内の現在のコミットの祖先だけでなく、すべてのブランチを検索する場合に追加します。

このフィルターの基本的なメカニズムは正規表現なので、複数の作成者を簡単に一致させることもできます。Jonathan または Adam によるコミットを一覧表示するには、次のようにします。

git log --author="\(Adam\)\|\(Jon\)"

特定の著者または著者グループによるコミットを除外するには、正規表現を使用します。この質問では、あなたは否定先読みスイッチと組み合わせて--perl-regexp

git log --author='^(?!Adam|Jon).*$' --perl-regexp

あるいは、bashとパイプを使用して、Adam が作成したコミットを除外することもできます。

git log --format='%H %an' | 
  grep -v Adam | 
  cut -d ' ' -f1 | 
  xargs -n1 git log -1

Adam によってコミットされたコミット (ただし、必ずしも作成者ではない) を除外する場合は、%anを に置き換えます%cn。これに関する詳細は、次の私のブログ投稿に記載されています。http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/

おすすめ記事