Gitでプロジェクトのすべての開発者をリストする


207

Gitでプロジェクトに貢献したすべてのユーザー(コミットを行ったユーザー)を一覧表示することはできますか?

追加の統計はありますか?

回答:


390

すべてのユーザーとメール、およびCURRENTブランチのコミット数を表示するには:

git shortlog --summary --numbered --email

または単に:

git shortlog -sne

現在のブランチのブランチだけでなく、すべてのブランチのユーザーを表示するには、--allフラグを追加する必要があります。

git shortlog -sne --all

3
このコマンドをスクリプト内または「ant」のようなものから使用する場合は、リビジョンを指定する必要があるか、何も出力しないことに注意してください。現在のリビジョンではHEADを使用できます:git shortlog -sn HEAD
Majenko

59
電子メールアドレスも取得するには、を追加し-eます。
mic_e 2014年

10
現在のブランチのブランチだけでなく、すべてのブランチのユーザーを表示するには、--allフラグを追加する必要があります
Gian Marco Gherardi

3
コミット数を望まない場合はどうなりますか?
疲れたバンド

1
これは、プロジェクト全体ではなく、特定のファイルに触れた人を確認する場合にも役立ちます。git shortlog --summary --numbered <pathToFile>
jxramos

40

リストをより具体的にしたい場合(一意のコミッターと作成者のリストを検索)、以下を使用できますgit log

git log --pretty="%an %ae%n%cn %ce" | sort | uniq
  • %an 著者名
  • %ae 著者のメール
  • %n 改行
  • %cn コミッター名
  • %ce コミッターのメール

その他のプレースホルダーについては、のきれいなドキュメントでgit log説明されています。


%n(line-based)と組み合わせた場合、あまり意味が無いと思いますsortか?この行は、作成者/コミッター名/電子メールを別々の行に記録しますが、出力全体をソートします...
ssc

@sscコミッターのメールは、著者のメールとは異なる場合があります。%nは、これらの違いを見つけるための新しいライン
Guillaume Vincent

19

あなたはこれを試すことができます:

git log | grep Author: | sort | uniq

1
これは、.mailmapファイルの更新に関心のあるユーザーにとって最も便利なコマンドです。
Ahi Tuna

7

(コミットを行ったユーザー)

注:デフォルトでは、git shortlogグループは作成者によってコミットされます。

コミッターごとにグループ化する必要がある場合は、Git 2.12(2017年第1四半期)が必要です。

git shortlog -snc

Jeff King()によるcommit 03f4082(2016年12月16日)を参照してください。Linus Torvalds()によるcommit fbfda15(2016年10月11日)を 参照してください。(合併によりJunio C浜野- -ad1b4e2をコミットする、2016年12月27日)peff
torvalds
gitster

Linus Torvalds氏自身がこの機能を紹介しています。

shortlog:コミッター情報ごとにグループ化

状況によっては、作成者ではなくコミッターごとにコミットをグループ化したい場合があります。

たとえばlinux-next、現在のマージウィンドウでまだ足りないものを調べたいだけの場合、誰がパッチを作成したかgit treeは、通常、「だれがコミットしたか」に要約されます。それ"。

そのため、git shortlogで " -c"または " --committer"オプションを使用して、グループ化をそれに切り替えます。



1

私はまだ自分でテストする余裕がありませんが、Gitリポジトリのプロジェクト統計情報にはこれは非常に良いように見えます:https : //github.com/visionmedia/git-extras

binさまざまなスクリプトを確認するには、カタログを確認してください。

たとえば、git-countスクリプト(コミッターごとのコミット数):

git shortlog -n $@ | grep "):" | sed 's|:||'

1
git shortlog -nsはそれほどハッキングされていないようです
TomDLT

@TomDLTこれを4年前に投稿して以来、git-extrasのこのサンプルスクリプトは変更されています。しかし、git-extrasのようなプロジェクトや人々のドットファイルからgitスクリプトを見るという私のアドバイスは、今でも素晴らしいアドバイスだと思います。興味深いgitコマンドを探している場合は、Gary Bernhardtのドットファイルもお勧めします:github.com/garybernhardt/dotfiles/tree/master/bin
Daniel Lee

1

@ pedro-nascimentoによる素晴らしい回答、@ mic_eによる他の回答、および他の人がすでに問題を解決しています。

さらに、次の行を .gitconfig

contributors = shortlog -e --summary --numbered

またはシェルタイプ

git config --global alias.contributors 'shortlog -e --summary --numbered'

その後、次のように呼び出すだけです。 git contributors


1
おそらくこれを設定した後、単に呼び出すことができるというメモを追加する必要がありますgit contributors
lohfu

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.