Gerando estatísticas do repositório Git


373

Estou procurando algumas boas ferramentas / scripts que me permitam gerar algumas estatísticas de um repositório git. Vi esse recurso em alguns sites de hospedagem de código e eles continham informações como ...

  • confirma por autor
  • confirma por dia / semana / ano / etc.
  • linhas de código ao longo do tempo
  • gráficos
  • ... muito mais

Basicamente, eu só quero ter uma idéia do quanto meu projeto cresce com o tempo, qual desenvolvedor confirma mais código e assim por diante.

Respostas:


251

Além do GitStats ( gerador de estatísticas do histórico do git ) mencionado por xyld , escrito em Python e exigindo o Gnuplot para gráficos, há também

  • projeto gitstat ( SourceForge ) ( interface de estatísticas git baseada na Web ), escrito em PHP e Perl,
  • Git Statistics , também conhecido como gitstats ( estrutura de métricas projetada para reunir estatísticas sobre repositórios git ), escrito em Python, resultado do projeto git-statistics no Google Summer of Code 2008 Este não é um aplicativo da web
  • gitinspector É uma ferramenta Python bastante nova, baseada em CLI, para gerar bons relatórios
  • Hercules - aplicativo nativo sem dependências, escrito em Go, especializado em tipos de análise avançados.

11
veja a resposta do xyld. gitstats (não gitstat) é provavelmente a sua melhor aposta.
Jay Paroline

Eu tenho o gitstats para instalar depois de instalar o readline-6.2.tar.gz e o gnuplot. Mas, em seguida, constatou que estavam faltando as bibliotecas necessárias para produzir as imagens stat, resultando na falta de pngs ao visualizar a saída do gitstats. Então, basicamente, segui-lo para fazê-lo funcionar corretamente: dansanderson.com/blog/2011/03/…
David van Dugteren

Para referência, este conjunto de ferramentas é realmente agradável e simples: github.com/dustin/bindir . Eles são baseados em Google Chart Pithon e são simples de usar: dustin.github.io/2009/01/11/timecard.html
Snicolas


4
Cool, isso simplesmente funciona: apt-get install gitstats. Em seguida, execute-o em um diretório git como este:gitstats ~/gitdir /tmp/output
Luc

275

confirma por autor

git shortlog -s -n 

63
excluir mesclagens:git shortlog -sn --no-merges
doblak 5/02

4
e bandeira dá-lhe Committers endereço de e-mail git shortlog -sne
Kalpa Gunarathna

11
Pessoalmente, estou mais interessado em quantas linhas cada pessoa foi a última a tocar ou no número total de linhas alteradas por pessoa. Commits por autor também é interessante.
Nathan Loyer

12
git shortlog -s -n --since "DEC 31 2017"se você deseja filtrar desde uma determinada data. Ótimo para revisões anuais;)
Eneko Alonso

11
@Todd 100% concorda. Eu quis dizer isso como uma piada
Eneko Alonso

78

Estou criando um gerador de estatísticas de repositório git em ruby, chamado git_stats .

Você pode encontrar exemplos gerados para alguns repositórios na página do projeto .

Aqui está uma lista do que ele pode fazer:

  • Estatísticas gerais
    • Total de arquivos (texto e binário)
    • Total de linhas (adicionadas e excluídas)
    • Total de confirmações
    • Autores
  • Atividade (total e por autor)
    • Confirma por data
    • Confirma por hora do dia
    • Confirma por dia da semana
    • Confirma por hora da semana
    • Confirma por mês do ano
    • Compromete por ano
    • Confirma por ano e mês
  • Autores
    • Commits por autor
    • Linhas adicionadas pelo autor
    • Linhas excluídas pelo autor
    • Linhas alteradas por autor
  • Arquivos e linhas
    • Por data
    • Por extensão

Se você tem alguma idéia do que adicionar ou melhorar, entre em contato. Agradecemos qualquer feedback.


Contagem de objetos e tamanho repo seria adições agradáveis para as estatísticas gerais
pdeschen

Confirma até: Dia do mês. Eles são mais ativos no final do mês?
precisa

MUITO LEGAL! Havent visto no passado
fb

Trabalho muito bom, mas a única coisa que me incomoda é que está escrito em Rubby: D
Georgi Peev

43

Eu tentei http://gitstats.sourceforge.net/ , os começos são muito interessantes.

Quando git clone git://repo.or.cz/gitstats.gitterminar, vá para essa pasta e digagitstats <git repo location> <report output folder> (crie uma nova pasta para o relatório, pois isso gera muitos arquivos)

Aqui está uma lista rápida de estatísticas disso:

  • atividade
    • hora do dia
    • dia da semana
  • autores
    • Lista de Autores
    • Autor do mês
    • Autor do Ano
  • arquivos
    • Contagem de arquivos por data
    • Extensões
  • linhas
    • Linhas de Código
  • Tag

3
precisa do GnuPlot. Para instalar o Gnuplot, no Mac, pegue o dmg aqui miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x e aplique esta correção na lixeira do gnuplot, leancrew.com/all-this / 2012/02 / fixação de gnuplot-on-os-x-10-7-3
loretoparisi

@Loretoparisi, o primeiro link não funciona mais, eu criei um tutorial sobre como usar o Gitstats no Mac OSX 10.8.2 aqui: softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris

No ubuntu, sudo apt-get install gnuplot
okwap

Dicas para fazê-lo funcionar no Windows: stackoverflow.com/a/29384484/24267 Infelizmente, eu não achei o gitstats muito útil - eu gostaria de ver melhor detalhamento das estatísticas de cada autor.
Mshry1384 30/03

Para usuários do Windows: codeproject.com/Tips/830613/…
Dani

16

Uma rápida pesquisa no Google me levou a: http://gitstats.sourceforge.net/

Você já tentou este projeto? Tenho certeza que existem projetos semelhantes.


9
Nota rápida para quem encontra isso no Google: gitstats não é a mesma coisa que o gitstat acima. O Zomg gitstats é muito melhor, pois não tem dependência infernal. É independente e simplesmente funciona.
Jay Paroline

11
Exceto o gnuplot-py e a empresa parece querer arrastar 40 MB de deps no Fedora no meu servidor da Web :(
Aiden Sino

4

Se seu projeto estiver no GitHub, você agora (abril de 2013) possui o Pulse (consulte " Acelerar com o Pulse "):

É mais limitado e não exibe todas as estatísticas que você precisa, mas está prontamente disponível para qualquer projeto do GitHub.

O Pulse é uma ótima maneira de descobrir atividades recentes em projetos.
O Pulse mostrará quem está ativamente comprometendo e o que mudou na ramificação padrão de um projeto :

Pulso

Você pode encontrar o link à esquerda da barra de navegação .

Ligação

Observe que ainda não existe uma API para extrair essas informações.


4

E se você preferir uma solução hospedada, consulte o Open Hub (anteriormente Ohloh.net). É bom, mas não espere grandes estatísticas.


Se você estiver bem com uma interface um pouco desajeitada e as atualizações em uma base de ~ 24 horas, ohloh é uma boa escolha, caso contrário, eu usaria a abordagem DIY.
drahnr

11
ohloh é legal, mas funciona apenas em repositórios públicos. Além disso, ele funciona com muitos VCSs, não apenas com o git.
naught101

@ naught101 Você pode tentar o gitential.com como uma alternativa. Está na versão beta, mas mede e visualiza as horas de codificação, a produtividade de projetos, equipes, repositórios e desenvolvedores individuais.
kszucs

3

git-bars pode mostrar "confirmações por dia / semana / ano / etc".

Você pode instalá-lo com pip install git-bars(cf. https://github.com/knadh/git-bars )

A saída é assim:

$ 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 é um fork aprimorado da ferramenta gitstats.

Não tenho certeza se está relacionado ao projeto com o mesmo nome no pypi, então sua melhor aposta é fazer o download da versão mais recente do GitHub e instalá-la no seu ambiente Python.

Em novembro de 2019, eu era capaz de usar a v1.2.0 no Windows 7, depois de disponibilizar o gnuplot no 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

Ontem, adicionei meu arquivo docker-compose do git-analytics, que cria vários contêineres para começar a analisar vários repositórios do git.

É capaz de mostrar que você submete estatísticas ao longo do tempo sobre o autor e também várias estatísticas diff.

Você pode usar o cliente angular fornecido e também o kibana para visualizar as estatísticas.

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

Será melhorado ao longo do tempo.

Captura de tela do cliente angular

Captura de tela do cliente angular

Captura de tela do cliente Kibana

Captura de tela do cliente Kibana]



0

Ele não necessariamente fornece scripts, mas esse serviço chamado Haystack basicamente fornece estatísticas, tendências e alertas com base na atividade do git.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.