Список всех разработчиков проекта в Git - PullRequest
159 голосов
/ 07 марта 2012

Можно ли перечислить всех пользователей, которые внесли свой вклад в проект (пользователей, которые сделали коммиты) в Git?

Любая дополнительная статистика?

Ответы [ 9 ]

303 голосов
/ 07 марта 2012

Чтобы показать всех пользователей и электронные письма, а также количество коммитов в ветке CURRENT:

git shortlog --summary --numbered --email

Или просто:

git shortlog -sne

Чтобы показать пользователей из всех ветвей (не только тех, которые находятся в текущей ветке), вы должны добавить --all флаг:

git shortlog -sne --all
31 голосов
/ 31 марта 2016

Если вы хотите быть более точным в списке (найти список уникальных коммиттеров и авторов), вы можете использовать git log:

git log --pretty="%an %ae%n%cn %ce" | sort | uniq
  • %an имя автора
  • %ae электронная почта автора
  • %n новая строка
  • %cn имя коммиттера
  • %ce электронная почта коммиттера

Другие заполнители описаны в красивой печатной документации git log.

16 голосов
/ 07 марта 2012

Вы можете попробовать это:

git log | grep Author: | sort | uniq
6 голосов
/ 29 декабря 2016

(пользователи, которые сделали коммиты)

Примечание: по умолчанию git shortlog групповые коммиты авторами .

Если вам нужно сгруппировать их по коммиттерам, вам понадобится Git 2.12 (1 квартал 2017 года)

git shortlog -snc

См. коммит 03f4082 (16 декабря 2016 г.) Джефф Кинг (peff) .
См. коммит fbfda15 (11 октября 2016) Линус Торвальдс (torvalds) .
(Объединено с Junio ​​C Hamano - gitster - в коммит ad1b4e2 , 27 декабря 2016 г.)

Линус Торвальдс сам вводит эту функцию:

shortlog: группировать информацию о коммиттере

В некоторых ситуациях вы можете сгруппировать коммиты не по автору, но вместо этого.

Например, когда я просто хотел посмотреть, что мне все еще не хватает из linux-next в текущем окне слияния, меня не волнует, кто написал патч, как к чему git tree он пришел, который вообще кипит вплоть до «кто совершил это».

Так что сделайте git shortlog с опцией "-c" или "--committer", чтобы переключить группировку на эту.

2 голосов
/ 09 августа 2017

Другой вариант может быть:

git log --format='%aN' | sort -u
1 голос
/ 07 марта 2012

Я сам пока не удосужился протестировать его, но это выглядит очень хорошо для статистики проекта для репозитория Git: https://github.com/visionmedia/git-extras

Просмотрите каталог bin, чтобы увидеть различные сценарии.

Например, скрипт git-count (количество коммитов на коммиттера):

git shortlog -n $@ | grep "):" | sed 's|:||'
0 голосов
/ 05 июня 2018

Великолепные ответы @ pedro-nascimento, @mic_e и других уже решают проблему.

Кроме того, вы можете добавить следующую строку в ваш .gitconfig

contributors = shortlog -e --summary --numbered

или в корпусе типа

git config --global alias.contributors 'shortlog -e --summary --numbered'
0 голосов
/ 04 октября 2017

Большинство репозиториев содержат несколько идентификаторов (пар [электронная почта, имя]) на одного автора. Если я могу предложить решение без CLI, попробуйте Gitential , который также дедуплицирует личность автора.

0 голосов
/ 31 марта 2015

Вы можете попробовать удивительный пакет под названием git-extras . В частности, команды git-summary , git-count и, возможно, некоторые другие .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...