1. ホーム
  2. git

[解決済み] あるユーザーのコミットだけを集めた git ログを表示するにはどうすればよいですか?

2022-03-15 03:39:53

質問

を使用する場合 git log どのようにすれば、そのユーザからのコミットだけを表示できるようになりますか?

解決方法は?

これは 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

あるいは、Adam が作成したコミットを除外するには、次のようにします。 bash とパイピングしてください。

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/