Git
Estadísticas de git
Buscar..
Sintaxis
- registro git [<opciones>] [<rango de revisión>] [[-] <ruta>]
- git log --pretty = short | git shortlog [<opciones>]
- git shortlog [<opciones>] [<rango de revisión>] [[-] <ruta>]
Parámetros
Parámetro | Detalles |
---|---|
-n , --numbered | Ordenar la salida según el número de confirmaciones por autor en lugar de orden alfabético |
-s , --summary | Solo proporcione un resumen de conteo de compromiso |
-e , - --email | Mostrar la dirección de correo electrónico de cada autor. |
--format [= <formato>] | En lugar del sujeto de confirmación, use alguna otra información para describir cada confirmación. <format> puede ser cualquier cadena aceptada por la opción --format del git log de git log . |
-w [<width> [, <indent1> [, <indent2>]]] | Linewrap la salida envolviendo cada línea en el width . La primera línea de cada entrada está sangrada por el número de espacios de sangría indent1 , y las líneas subsiguientes están sangradas por espacios de sangría indent2 . |
<rango de revisión> | Mostrar solo confirmaciones en el rango de revisión especificado. Predeterminado a todo el historial hasta la confirmación actual. |
[ -- ] <ruta> | Mostrar solo confirmaciones que explican cómo llegaron a ser los archivos que coinciden con la path . Es posible que las rutas deban tener el prefijo "-" para separarlas de las opciones o del rango de revisión. |
Compromisos por desarrollador
Git shortlog
se utiliza para resumir los resultados del registro de git y agrupar las confirmaciones por autor.
De forma predeterminada, se muestran todos los mensajes de confirmación, pero el argumento --summary
o -s
omite los mensajes y proporciona una lista de autores con su número total de confirmaciones.
--numbered
o -n
cambia el orden alfabético (por el autor ascendente) al número de confirmaciones descendentes.
git shortlog -sn #Names and Number of commits
git shortlog -sne #Names along with their email ids and the Number of commits
o
git log --pretty=format:%ae \
| gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'
Nota: Los compromisos de la misma persona no se pueden agrupar cuando su nombre y / o dirección de correo electrónico se han escrito de manera diferente. Por ejemplo, John Doe
y Johnny Doe
aparecerán por separado en la lista. Para resolver esto, consulte la función .mailmap
.
Compromisos por fecha
git log --pretty=format:"%ai" | awk '{print " : "$1}' | sort -r | uniq -c
Número total de confirmaciones en una sucursal.
git log --pretty=oneline |wc -l
Listado de cada sucursal y fecha de su última revisión.
for k in `git branch -a | sed s/^..//`; do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k --`\\t"$k";done | sort
Líneas de código por desarrollador
git ls-tree -r HEAD | sed -Ee 's/^.{53}//' | \
while read filename; do file "$filename"; done | \
grep -E ': .*text' | sed -E -e 's/: .*//' | \
while read filename; do git blame --line-porcelain "$filename"; done | \
sed -n 's/^author //p' | \
sort | uniq -c | sort -rn
Listar todas las confirmaciones en formato bonito
git log --pretty=format:"%Cgreen%ci %Cblue%cn %Cgreen%cr%Creset %s"
Esto le dará una buena descripción de todos los compromisos (1 por línea) con fecha, usuario y mensaje de confirmación.
La opción --pretty
tiene muchos marcadores de posición, cada uno empezando con %
. Todas las opciones se pueden encontrar aquí.
Encuentra todos los repositorios locales de Git en la computadora
Para enumerar todas las ubicaciones de repositorio de git en su puede ejecutar lo siguiente
find $HOME -type d -name ".git"
Suponiendo que haya locate
, esto debería ser mucho más rápido:
locate .git |grep git$
Si tiene gnu locate
o mlocate
, esto seleccionará solo los mlocate
git:
locate -ber \\.git$
Mostrar el número total de confirmaciones por autor.
Para obtener el número total de confirmaciones que cada desarrollador o colaborador ha realizado en un repositorio, simplemente puede utilizar el git shortlog
:
git shortlog -s
que proporciona los nombres de los autores y el número de confirmaciones de cada uno.
Además, si desea que los resultados se calculen en todas las ramas, agregue --all
flag al comando:
git shortlog -s --all