Генерация статистики из репозитория Git


373

Я ищу несколько хороших инструментов / скриптов, которые позволят мне сгенерировать немного статистики из репозитория git. Я видел эту функцию на некоторых сайтах размещения кода, и они содержали такую ​​информацию, как ...

  • совершает за автора
  • совершает в день / неделю / год / и т. д.
  • строки кода с течением времени
  • диаграммы
  • ... гораздо больше

По сути, я просто хочу понять, насколько сильно растет мой проект с течением времени, какой разработчик фиксирует большую часть кода и так далее.

Ответы:


251

Помимо GitStats ( генератор статистики git-истории ), упомянутого xyld , написанного на Python и требующего Gnuplot для графов, существует также

  • проект gitstat ( SourceForge ) ( веб-интерфейс статистики git ), написанный на PHP и Perl,
  • Git Statistics , он же gitstats ( структура метрик, предназначенная для сбора статистики по репозиториям git ), написанная на Python, результат проекта git-statistics на Google Summer of Code 2008. Это не веб-приложение.
  • gitinspector - довольно новый, основанный на CLI инструмент Python для создания хороших отчетов.
  • Hercules - нативное приложение без зависимостей, написанное на Go, которое специализируется на продвинутых типах анализа.

1
смотри ответ ксильды. Gitstats (не Gitstat), вероятно, ваш лучший выбор.
Джей Паролайн

У меня есть gitstats для установки после установки readline-6.2.tar.gz и gnuplot. Но затем обнаружил, что отсутствуют библиотеки, необходимые для создания статовых изображений, что приводит к отсутствию png при просмотре выходных данных gitstats. Так что в значительной степени следовали этому, чтобы заставить это работать правильно: dansanderson.com/blog/2011/03/…
Дэвид ван Дугтерен

Для справки, этот набор инструментов действительно хорош и прост: github.com/dustin/bindir . Они основаны на Google Pithon Chart и просты в использовании: dustin.github.io/2009/01/11/timecard.html
Snicolas

1
Для этого есть даже приложение для Mac: itunes.apple.com/us/app/gitstatx/id592679713?mt=12
pgpb.padilla

4
Круто, это просто работает apt-get install gitstats. Затем запустите его в каталоге git следующим образом:gitstats ~/gitdir /tmp/output
Люк

275

совершает за автора

git shortlog -s -n 

63
исключить слияния:git shortlog -sn --no-merges
Доблак

4
Электронный флаг дает вам адрес электронной почты git shortlog -sne
коммиттеров

1
Лично меня больше интересует, сколько строк каждый человек коснулся последним, или общее количество строк, измененных на человека. Коммиты на автора также интересно, хотя.
Натан Лойер

12
git shortlog -s -n --since "DEC 31 2017"если вы хотите фильтровать с указанной даты. Отлично подходит для ежегодных обзоров;)
Энеко Алонсо

1
@ Тодд 100% согласен. Я имел в виду это как шутку
Энеко Алонсо

78

Я делаю генератор статистики git-репозитория в ruby, он называется git_stats .

Вы можете найти примеры, сгенерированные для некоторых репозиториев на странице проекта .

Вот список того, что он может сделать:

  • Общая статистика
    • Всего файлов (текстовые и двоичные)
    • Всего строк (добавлено и удалено)
    • Всего коммитов
    • Авторы
  • Деятельность (всего и на автора)
    • Фиксируется по дате
    • Принимает по часу дня
    • По дням недели
    • По часам недели
    • Фиксируется по месяцам года
    • Коммитов по годам
    • Фиксируется по году и месяцу
  • Авторы
    • Фиксируется автором
    • Линии добавлены автором
    • Строки удалены автором
    • Линии изменены автором
  • Файлы и строки
    • По дате
    • По расширению

Если у вас есть идеи, что добавить или улучшить, пожалуйста, дайте мне знать, я буду признателен за любые отзывы.


Подсчет объектов и размер репо были бы неплохим дополнением к общей статистике
pdeschen

Принимает: день месяца. Они более активны в конце месяца?
Оле Танге

ОЧЕНЬ КРУТО! Не видел в прошлом
фб

Действительно хорошая работа, но единственное, что меня беспокоит, это то, что написано на Rubby: D
Георгий Пеев

43

Я попробовал http://gitstats.sourceforge.net/ , старты очень интересные.

Когда git clone git://repo.or.cz/gitstats.gitзакончите, перейдите в эту папку и скажитеgitstats <git repo location> <report output folder> (создайте новую папку для отчета, поскольку это создает много файлов)

Вот краткий список статистики из этого:

  • деятельность
    • час дня
    • день недели
  • авторы
    • Список авторов
    • Автор месяца
    • Автор года
  • файлы
    • Количество файлов по дате
    • расширения
  • линии
    • Строки кода
  • теги

3
для этого нужен GnuPlot. Чтобы установить Gnuplot, на Mac возьмите dmg отсюда miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x и примените это исправление к бину
fixing

@Loretoparisi, первая ссылка больше не работает, я создал руководство по использованию Gitstats на Mac OSX 10.8.2 здесь: softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris

В Ubuntu sudo apt-get установите gnuplot
okwap

Подсказки для его запуска в Windows: stackoverflow.com/a/29384484/24267 К сожалению, я не нашел gitstats слишком полезными - я хотел бы видеть более подробную разбивку статистики для каждого автора.
mhenry1384

Для пользователей Windows: codeproject.com/Tips/830613/…
Дани

16

Быстрый поиск в Google привел меня к: http://gitstats.sourceforge.net/

Вы пробовали этот проект? Я уверен, что есть подобные проекты.


9
Краткое примечание для тех, кто находит это через Google: gitstats - это не то же самое, что gitstat выше. Зомг гитстатс намного лучше, так как у него нет адской зависимости. Он самодостаточен и просто работает.
Джей Паролайн

1
За исключением того, что gnuplot-py и компания, кажется, хотят перетащить 40 МБ deps на Fedora на моем веб-сервере :(
Эйден Белл,

4

Если ваш проект находится на GitHub, у вас сейчас (апрель 2013 г.) есть Pulse (см. « Начните работать с Pulse »):

Он более ограничен и не отображает всю статистику, которая может вам понадобиться, но легко доступен для любого проекта GitHub.

Pulse - отличный способ узнать о недавней активности в проектах.
Pulse покажет вам, кто активно совершал и что изменилось в ветке проекта по умолчанию :

Пульс

Вы можете найти ссылку слева от навигационной панели .

Ссылка на сайт

Обратите внимание, что нет (пока) API для извлечения этой информации.


4

И если вы предпочитаете хостинговое решение, вы должны проверить Open Hub (ранее Ohloh.net). Это хорошо, но не ожидайте большой статистики.


Если у вас все в порядке с немного неуклюжим интерфейсом и обновлениями ~ 24 часа, то это хороший выбор, в противном случае я бы выбрал подход «сделай сам».
Драхн

1
Охло это круто, но это работает только на публичных репо. Кроме того, он работает со многими VCS, а не только с git.
naught101

@ naught101 Вы можете попробовать gitential.com в качестве альтернативы. Он находится в бета-версии, но измеряет и визуализирует часы программирования, производительность для проектов, команд, репозиториев и отдельных разработчиков.
kszucs

3

git-bars может показать вам "совершает в день / неделю / год / и т. д.".

Вы можете установить его с помощью pip install git-bars(см. Https://github.com/knadh/git-bars )

Вывод выглядит так:

$ git-bars -p month
370 commits over 19 month(s)
2019-10  7    ▀▀▀▀▀▀
2019-09  36   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2019-08  7    ▀▀▀▀▀▀
2019-07  10   ▀▀▀▀▀▀▀▀
2019-05  4    ▀▀▀
2019-04  2    ▀
2019-03  28   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2019-02  32   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2019-01  16   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-12  41   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-11  52   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-10  57   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-09  37   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-08  17   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-07  1    
2018-04  7    ▀▀▀▀▀▀
2018-03  12   ▀▀▀▀▀▀▀▀▀▀
2018-02  2    ▀
2016-01  2    ▀

3

repostat - это расширенный инструмент gitstats.

Я не уверен, связан ли он каким-либо образом с проектом с тем же именем на pypi, поэтому лучше всего скачать последнюю версию с GitHub и установить ее в вашей среде Python.

По состоянию на ноябрь 2019 года я смог использовать v1.2.0 под Windows 7, после того как gnuplot стал доступен в PATH.


usage: repostat [-h] [-v] [-c CONFIG_FILE] [--no-browser] [--copy-assets]
                git_repo output_path

Git repository desktop analyzer. Analyze and generate git statistics in HTML
format

positional arguments:
git_repo              Path to git repository
output_path           Path to an output directory

optional arguments:
-h, --help            show this help message and exit
-v, --version         show program's version number and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
                        Configuration file path
--no-browser          Do not open report in browser
--copy-assets         Copy assets (images, css, etc.) into report folder
                        (report becomes relocatable)

2

Буквально вчера я добавил свой файл docker-compose для git-analytics, который собирает несколько контейнеров, чтобы начать анализировать несколько git-репозиториев друг против друга.

Он может показать вам статистику коммитов с течением времени об авторе, а также статистику нескольких различий.

Вы можете использовать предоставленный угловой клиент, а также кибану для визуализации статистики.

https://github.com/alexejsailer/git-analytics-docker

Это будет улучшаться со временем.

Скриншот Angular Client

Скриншот Angular Client

Скриншот клиента Kibana

Скриншот клиента Kibana]



0

Он не обязательно предоставляет скрипты, но этот сервис, называемый Haystack, в основном предоставляет статистику, тренды и оповещения, основанные на активности git.

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