Чи можна перерахувати всіх користувачів, які внесли свій внесок у проект (користувачів, які виконали зобов’язання) в Git?
Будь-яка додаткова статистика?
Чи можна перерахувати всіх користувачів, які внесли свій внесок у проект (користувачів, які виконали зобов’язання) в Git?
Будь-яка додаткова статистика?
Відповіді:
Щоб показати всі користувачі та електронні листи та кількість комісій у поточній галузі:
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 (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
" варіант, щоб переключити групування на це.
Іншим варіантом може бути:
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-rezime , git-count і, можливо, деякі інші .
git shortlog -sn HEAD