Generando estadísticas desde el repositorio de Git


373

Estoy buscando algunas buenas herramientas / scripts que me permitan generar algunas estadísticas desde un repositorio git. He visto esta característica en algunos sitios de alojamiento de código, y contenían información como ...

  • confirmaciones por autor
  • confirmaciones por día / semana / año / etc.
  • líneas de código a lo largo del tiempo
  • gráficos
  • ... mucho más

Básicamente, solo quiero tener una idea de cuánto crece mi proyecto con el tiempo, qué desarrollador compromete más código, y así sucesivamente.

Respuestas:


251

Además de GitStats ( generador de estadísticas de historial de git ) mencionado por xyld , escrito en Python y que requiere Gnuplot para gráficos, también hay

  • proyecto gitstat ( SourceForge ) ( interfaz de estadísticas git basada en la web ), escrito en PHP y Perl,
  • Git Statistics , también conocido como gitstats ( marco de métricas diseñado para recopilar estadísticas sobre repositorios git ), escrito en Python, resultado del proyecto git-statistics en Google Summer of Code 2008 Esta no es una aplicación web
  • gitinspector es una herramienta Python bastante nueva y basada en CLI para generar buenos informes
  • Hercules : aplicación nativa sin dependencias, escrita en Go, que se especializa en tipos de análisis avanzados.

1
Ver la respuesta de xyld. gitstats (no gitstat) es probablemente su mejor apuesta.
Jay Paroline

Tengo que instalar gitstats después de instalar readline-6.2.tar.gz y gnuplot. Pero luego descubrió que faltaban las bibliotecas necesarias para producir las imágenes estadísticas, lo que resulta en la falta de pngs al ver la salida de gitstats. Así que más o menos seguí esto para que funcione correctamente: dansanderson.com/blog/2011/03/…
David van Dugteren

Como referencia, este conjunto de herramientas es realmente agradable y simple: github.com/dustin/bindir . Se basan en el gráfico de Google Pithon y son fáciles de usar: dustin.github.io/2009/01/11/timecard.html
Snicolas

1
Incluso hay una aplicación para Mac: itunes.apple.com/us/app/gitstatx/id592679713?mt=12
pgpb.padilla

44
Fresco, esto simplemente funciona: apt-get install gitstats. Luego ejecútelo en un directorio git como este:gitstats ~/gitdir /tmp/output
Luc

275

confirmaciones por autor

git shortlog -s -n 

63
excluir fusiones:git shortlog -sn --no-merges
doblak

44
La bandera le da la dirección de correo electrónico de los confirmadores git shortlog -sne
Kalpa Gunarathna

1
Personalmente, estoy más interesado en cuántas líneas tocó cada persona, o en el número total de líneas cambiadas por persona. Sin embargo, los commits por autor también son interesantes.
Nathan Loyer

12
git shortlog -s -n --since "DEC 31 2017"si quieres filtrar desde una fecha determinada. Genial para revisiones anuales;)
Eneko Alonso

1
@Todd 100% de acuerdo. Lo dije en broma
Eneko Alonso

78

Estoy haciendo un generador de estadísticas de repositorio git en ruby, se llama git_stats .

Puede encontrar ejemplos generados para algunos repositorios en la página del proyecto .

Aquí hay una lista de lo que puede hacer:

  • Estadísticas Generales
    • Total de archivos (texto y binario)
    • Líneas totales (agregadas y eliminadas)
    • Compromisos totales
    • Autores
  • Actividad (total y por autor)
    • Se compromete por fecha
    • Se compromete por hora del día
    • Se compromete por día de la semana
    • Se compromete por hora de la semana
    • Se compromete por mes del año
    • Se compromete por año
    • Se compromete por año y mes
  • Autores
    • Compromisos por autor
    • Líneas agregadas por el autor
    • Líneas eliminadas por autor
    • Líneas cambiadas por autor
  • Archivos y líneas
    • Por fecha
    • Por extensión

Si tiene alguna idea de qué agregar o mejorar, hágamelo saber, agradecería cualquier comentario.


El recuento de objetos y el tamaño del repositorio serían buenas adiciones a las estadísticas generales
pdeschen

Se compromete por: Día del mes. ¿Son más activos a fin de mes?
Ole Tange

¡MUY GENIAL! No se ha visto en el pasado
fb

Realmente buen trabajo, pero lo único que me molesta es que está escrito en Rubby: D
Georgi Peev

43

Intenté http://gitstats.sourceforge.net/ , los inicios son muy interesantes.

Una vez git clone git://repo.or.cz/gitstats.githecho esto, ve a esa carpeta y digitstats <git repo location> <report output folder> (cree una nueva carpeta para el informe, ya que esto genera muchos archivos)

Aquí hay una lista rápida de estadísticas de esto:

  • actividad
    • hora del día
    • día de la semana
  • autores
    • Lista de autores
    • Autor del mes
    • Autor del año
  • archivos
    • Recuento de archivos por fecha
    • Extensiones
  • líneas
    • Líneas de código
  • etiquetas

3
necesita GnuPlot. Para instalar Gnuplot, en Mac tome el dmg desde aquí miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x y aplique esta solución al contenedor gnuplot, leancrew.com/all-this / 2012/02
fixed

@Loretoparisi, el primer enlace ya no funciona, he creado un tutorial sobre cómo usar Gitstats en Mac OSX 10.8.2 aquí: softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris

En ubuntu, sudo apt-get install gnuplot
okwap

Sugerencias para que se ejecute en Windows: stackoverflow.com/a/29384484/24267 Desafortunadamente, no encontré los gitstats demasiado útiles. Me gustaría ver un mejor desglose de las estadísticas de cada autor.
mhenry1384

Para usuarios de Windows: codeproject.com/Tips/830613/…
Dani

16

Una búsqueda rápida en Google me llevó a: http://gitstats.sourceforge.net/

¿Has probado este proyecto? Estoy seguro de que hay proyectos similares.


99
Nota rápida para cualquiera que encuentre esto a través de Google: gitstats no es lo mismo que gitstat anterior. Zomg gitstats es mucho mejor, insomuchas no tiene dependencia del infierno. Es autónomo y simplemente funciona.
Jay Paroline

1
Excepto que gnuplot-py y compañía parecen querer arrastrar 40MB de deps en Fedora en mi servidor web :(
Aiden Bell

4

Si su proyecto está en GitHub, ahora (abril de 2013) tiene Pulse (consulte " Póngase al día con Pulse "):

Es más limitado y no mostrará todas las estadísticas que pueda necesitar, pero está disponible para cualquier proyecto de GitHub.

Pulse es una excelente manera de descubrir actividad reciente en proyectos.
Pulse le mostrará quién se ha comprometido activamente y qué ha cambiado en la rama predeterminada de un proyecto :

Legumbres

Puede encontrar el enlace a la izquierda de la barra de navegación .

Enlace

Tenga en cuenta que no hay (todavía) una API para extraer esa información.


4

Y si prefiere una solución alojada, debe consultar Open Hub (anteriormente Ohloh.net). Es agradable, pero no esperes grandes estadísticas.


Si está de acuerdo con una interfaz un poco torpe y actualizaciones cada 24 horas, oh, esta es una buena opción, de lo contrario, optaría por el enfoque de bricolaje.
drahnr

1
ohloh es genial, pero solo funciona en repositorios públicos. Además, funciona con muchos VCS, no solo git.
naught101

@ naught101 Puede probar gitential.com como alternativa. Está en versión beta, pero mide y visualiza las horas de codificación, la productividad para proyectos, equipos, repositorios y desarrolladores individuales.
kszucs

3

git-bars puede mostrarle "confirmaciones por día / semana / año / etc.".

Puede instalarlo con pip install git-bars(cf. https://github.com/knadh/git-bars )

El resultado se ve así:

$ 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 es una bifurcación mejorada de la herramienta gitstats.

No estoy seguro de si está relacionado de alguna manera con el proyecto con el mismo nombre en pypi, por lo que su mejor opción es descargar la última versión de GitHub e instalarla en su entorno Python.

A partir de noviembre de 2019, pude usar v1.2.0 en Windows 7, después de hacer que gnuplot estuviera disponible en 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

Ayer mismo agregué mi archivo doit-compose de git-analytics, que acumula varios contenedores para comenzar a analizar múltiples repositorios git uno contra el otro.

Es capaz de mostrarle estadísticas de confirmación a lo largo del tiempo sobre el autor y también varias estadísticas de diferencias.

Puede utilizar el cliente angular proporcionado y también kibana para visualizar las estadísticas.

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

Se mejorará con el tiempo.

Captura de pantalla del cliente angular

Captura de pantalla del cliente angular

Captura de pantalla del cliente Kibana

Captura de pantalla del cliente Kibana]



0

No necesariamente proporciona scripts, pero este servicio llamado Haystack básicamente proporciona estadísticas, tendencias y alertas basadas en la actividad de git.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.