Генерування статистики з репозиторію Git


373

Я шукаю кілька хороших інструментів / скриптів, які дозволяють мені генерувати кілька статистичних даних із сховища git. Я бачив цю функцію на деяких веб-сайтах, що містять код, і вони містили інформацію, наприклад ...

  • вчиняється на автора
  • коміти за день / тиждень / рік / тощо.
  • рядки коду з часом
  • графіки
  • ... набагато більше

В основному я просто хочу зрозуміти, наскільки мій проект зростає з часом, який розробник вводить більшість коду тощо.

Відповіді:


250

Окрім GitStats ( генератор статистики історії git ), згаданий xyld , написаний на Python та потребує Gnuplot для графіків, є також

  • проект gitstat ( SourceForge ) ( веб-інтерфейс статистики git ), написаний на PHP та Perl,
  • Git Statistics , він же gitstats ( метричний фреймворк, призначений для збору статистичних даних про сховища git ), написаний на Python, результат проекту git-статистики на Google Summer of Code 2008 Це не веб-додаток
  • gitinspector - це досить новий інструмент Python на основі CLI для створення приємних звітів
  • Геркулес - рідний додаток без залежностей, написаний на 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
doblak

4
Прапор електронної пошти дає вам електронну адресу git shortlog -sne
комітентів

1
Особисто мене більше цікавить, скільки рядків останній торкався кожної людини, або загальна кількість рядків змінилася на людину. Коміти на автора теж цікаві.
Натан Лойер

12
git shortlog -s -n --since "DEC 31 2017"якщо ви хочете фільтрувати з певної дати.
Енеко Алонсо

1
@Todd 100% згоден. Я мав на увазі це як жарт
Енеко Алонсо

78

Я роблю генератор статистики репозиторії git в рубіні, це називається git_stats .

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

Ось список того, що він може зробити:

  • Загальна статистика
    • Всього файлів (текстових та двійкових)
    • Всього рядків (додано та видалено)
    • Загальна кількість комісій
    • Автори
  • Діяльність (всього та на автора)
    • Здійснюється за датою
    • Здійснюється за годиною дня
    • Здійснюється по днях тижня
    • Здійснюється за годиною тижня
    • Здійснюється за місяцем року
    • Здійснюється за роком
    • Здійснюється за роком та місяцем
  • Автори
    • Здійснює автор
    • Рядки додані автором
    • Рядки видалені автором
    • Рядки змінені автором
  • Файли та рядки
    • За датою
    • За розширенням

Якщо у вас є ідеї, що додати чи покращити, будь ласка, повідомте мене, я буду вдячний за будь-який відгук.


Кількість об'єктів та розмір репо, були б гарними доповненнями до загальної статистики
pdeschen

Здійснюється: День місяця. Чи активніші вони наприкінці місяця?
Оле Танге

ДУЖЕ КРУТО! Гавент бачили в минулому
fb

Дійсно приємна робота, але єдине, що мене турбує, це те, що написано на Rubby: D
Georgi Peev

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 застосуйте це виправлення до кошика gnuplot, leancrew.com/all-this / 2012/02 / fixing-gnuplot-on-os-x-10-7-3
loretoparisi

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

В ubuntu, sudo apt-get install gnuplot
okwap

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

Для користувачів Windows: codeproject.com/Tips/830613/…
Dani

16

Швидкий пошук Google призведе до: http://gitstats.sourceforge.net/

Ви пробували цей проект? Я впевнений, що подібні проекти є.


9
Коротка примітка для тих, хто виявить це через Google: gitstats - це не те саме, що gitstat вище. Zomg gitstats набагато краще, тому що він не має пекла залежності. Це самодостатнє і просто працює.
Джей Паролайн

1
За винятком gnuplot-py, і компанія, схоже, хоче затягнути 40MB депсів на Fedora на своєму веб-сервері :(
Aiden Bell

4

Якщо ваш проект знаходиться на GitHub, у вас зараз (квітень 2013 року) є імпульс (див. " Швидкість з імпульсом "):

Він більш обмежений і не відображатиме всіх статистичних даних, які можуть знадобитися, але він доступний для будь-якого проекту GitHub.

Імпульс - це прекрасний спосіб виявити останні активність у проектах.
Імпульс покаже вам, хто активно здійснює і що змінилося у гілці проекту за замовчуванням :

Пульс

Ви можете знайти посилання зліва від панелі навігації .

Посилання

Зауважте, що не існує (ще) API для вилучення цієї інформації.


4

І якщо ви віддаєте перевагу розміщеному рішенню, варто перевірити Open Hub (раніше Ohloh.net). Це добре, але не чекайте великих статистичних даних.


Якщо ви добре з трохи незграбним інтерфейсом та оновленнями ~ 24 години, ohlohis хороший вибір, інакше я б пішов на тему "Зроби сам".
drahnr

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

репостат - це розширена вилка інструменту 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

Лише вчора я додав свій git-analytics docker-compose файл, який збирає кілька контейнерів, щоб почати аналізувати декілька сховищ git один проти одного.

Це може показати вам зафіксувати статистику за часом щодо автора, а також кілька різних статистичних даних.

Ви можете використовувати наданий кутовий клієнт, а також кібану для візуалізації статистики.

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

Він буде вдосконалюватися з часом.

Скріншот кутового клієнта

Скріншот кутового клієнта

Скріншот клієнта Kibana

Скріншот клієнта Kibana]



0

Він не обов'язково надає сценарії, але ця послуга під назвою Haystack в основному надає статистику, тенденції та сповіщення на основі активності git.

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