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


207

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

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

Ответы:


390

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

git shortlog --summary --numbered --email

Или просто:

git shortlog -sne

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

git shortlog -sne --all

3
Обратите внимание, что если вы хотите использовать эту команду из скрипта или что-то вроде «муравей», вы должны указать ревизию или она ничего не выводит. Для текущей ревизии вы можете использовать HEAD:git shortlog -sn HEAD
Majenko

59
Чтобы получить адреса электронной почты, а также добавить -e.
mic_e

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

3
Что делать, если я не хочу количество коммитов?
Wearybands

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не имеет большого смысла в сочетании с (на основе строки) sort, не так ли? Строка записывает имя автора /
коммиттера

Электронная почта коммиттера @ssc может отличаться от электронной почты автора. % n для новой строки, чтобы найти эти различия
Гийом Винсент

19

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

git log | grep Author: | sort | uniq

1
Это самая полезная команда для всех, кто заинтересован в обновлении своего файла .mailmap!
Ахи тунец

7

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

Примечание: по умолчанию 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», чтобы переключить группировку на эту.



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-скрипты из таких проектов, как git-extras или из точечных файлов людей, по-прежнему отличный совет. Если вы ищете интересные команды git, я бы также порекомендовал точечные файлы Гэри Бернхардта: github.com/garybernhardt/dotfiles/tree/master/bin
Дэниел Ли,

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.