Список всех разработчиков проекта в Git

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

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

Ответ 1

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

git shortlog --summary --numbered --email

Или просто:

git shortlog -sne

Ответ 2

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

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

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

Ответ 3

Вы можете попробовать следующее:

git log | grep Author: | sort | uniq

Ответ 4

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

Примечание: по умолчанию группы 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: группировать информацию о shortlog

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

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

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

Ответ 5

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

git log --format='%aN' | sort -u

Ответ 6

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

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

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

git shortlog -n [email protected] | grep "):" | sed 's|:||'

Ответ 8

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

Ответ 9

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

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

contributors = shortlog -e --summary --numbered

или в типе оболочки

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

Ответ 10

Последние: вы можете использовать это

 git log --reflog

Нажмите ввод и просмотрите последние коммиты, нажав ввод.

Выйдите из сессии, введя wq

commit c11a44a5c184599dd8d4648752470443ce3b3f33 (origin/feature/abcd, feature/abc)
Author: <Auther name>
Date:   Mon Jan 28 09:58:03 2019 +0530

    commit message