Можно ли перечислить всех пользователей, которые внесли свой вклад в проект (пользователей, которые сделали коммиты) в Git?
Любая дополнительная статистика?
Можно ли перечислить всех пользователей, которые внесли свой вклад в проект (пользователей, которые сделали коммиты) в Git?
Любая дополнительная статистика?
Ответы:
Чтобы показать всех пользователей и электронные письма, а также количество коммитов в ветке CURRENT:
git shortlog --summary --numbered --email
Или просто:
git shortlog -sne
Чтобы показать пользователей из всех веток (не только из текущей ветки), вы должны добавить --allфлаг:
git shortlog -sne --all
-e.
--allфлаг
git shortlog --summary --numbered <pathToFile>
Если вы хотите быть более точным в списке (найти список уникальных коммиттеров и авторов), вы можете использовать git log:
git log --pretty="%an %ae%n%cn %ce" | sort | uniq
%an имя автора%ae электронная почта автора%n новая линия%cn имя коммиттера%ce электронная почта коммиттераДругие заполнители описаны в красивой печатной документацииgit log .
%nне имеет большого смысла в сочетании с (на основе строки) sort, не так ли? Строка записывает имя автора /
Вы можете попробовать это:
git log | grep Author: | sort | uniq
(пользователи, которые сделали коммиты)
Примечание: по умолчанию 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», чтобы переключить группировку на эту.
Другой вариант может быть:
git log --format='%aN' | sort -u
Я сам пока не удосужился протестировать его, но это выглядит очень хорошо для статистики проекта для репозитория Git: https://github.com/visionmedia/git-extras
Проверьте binкаталог, чтобы увидеть различные сценарии.
Например, git-countскрипт (количество коммитов на коммиттера):
git shortlog -n $@ | grep "):" | sed 's|:||'
Отличные ответы @ pedro-nascimento, @mic_e и других уже решают проблему.
Кроме того, вы можете добавить следующую строку в ваш .gitconfig
contributors = shortlog -e --summary --numbered
или в типе оболочки
git config --global alias.contributors 'shortlog -e --summary --numbered'
И после этого вы можете просто вызвать: git contributors
git contributors
Вы можете попробовать удивительный пакет под названием git-extras . В частности, команды git-summary , git-count и, возможно, некоторые другие .
git shortlog -sn HEAD