Список усіх розробників проекту в Git


206

Чи можна перерахувати всіх користувачів, які внесли свій внесок у проект (користувачів, які виконали зобов’язання) в Git?

Будь-яка додаткова статистика?

Відповіді:


388

Щоб показати всі користувачі та електронні листи та кількість комісій у поточній галузі:

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прапор
Gian Marco Gherardi

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

Електронна пошта для користувача @ssc може відрізнятися від електронної пошти автора. % n - це новий рядок для пошуку цих відмінностей
Гійом Вінсент,

19

Ви можете спробувати це:

git log | grep Author: | sort | uniq

1
Це найкорисніша команда для всіх, хто цікавиться оновленням файлу .mailmap!
Ахі Туна

7

(користувачі, які виконали зобов’язання)

Примітка: за замовчуванням git shortlogгрупи здійснюються авторами .

Якщо вам потрібно згрупувати їх по комітерам, вам знадобиться Git 2.12 (Q1 2017)

git shortlog -snc

Див. Комітет 03f4082 (16 грудня 2016 р.) Джеффа Кінга ( peff) .
Див. Комісію fbfda15 (11 жовтня 2016) Лінуса Торвальда ( torvalds) .
(Об’єднав Хуніо С Хамано - gitster- у комісії ad1b4e2 , 27 грудня 2016 р.)

Сам Лінус Торвальдс вводить цю особливість:

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

У деяких ситуаціях ви можете згрупувати зобов’язання не за автором, а замість цього.

Наприклад, коли я просто хотів шукати те, що мені все ще не вистачає linux-nextу поточному вікні злиття, я не так переймаюся тим, хто написав патч, як тим, що git treeвін з'явився, який, як правило, зводиться до "хто здійснив це ".

Тож зробіть короткий журнал git " -c" або " --committer" варіант, щоб переключити групування на це.



1

Я ще не займався тестуванням його, але це виглядає дуже приємно для статистики проекту для сховища Git: https://github.com/visionmedia/git-extras

Перегляньте binкаталог, щоб побачити різні сценарії.

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

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

1
git shortlog -ns здається менш
хакітним

@TomDLT, оскільки я опублікував це 4 роки тому, цей приклад сценарію в git-extras змінився. Але я вважаю, що моя порада переглянути сценарії git з таких проектів, як git-extras або з dotfiles людей, як і раніше, є чудовою порадою. Якщо ви шукаєте цікаві команди git, то я б порекомендував також dotfiles
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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.