Desea la --stat
opción de git diff
, o si está buscando analizar esto en un script, la --numstat
opción.
git diff --stat <commit-ish> <commit-ish>
--stat
produce la salida legible para humanos que estás acostumbrado a ver después de las fusiones; --numstat
produce un buen diseño de tabla que los scripts pueden interpretar fácilmente.
De alguna manera extrañé que estuvieras buscando hacer esto en múltiples confirmaciones al mismo tiempo, esa es una tarea para git log
. Ron DeVera toca esto, pero en realidad puedes hacer mucho más de lo que menciona. Dado que git log
llama internamente a la maquinaria diff para imprimir la información solicitada, puede darle cualquiera de las opciones de estadísticas diff, no solo --shortstat
. Lo que probablemente quiera usar es:
git log --author="Your name" --stat <commit1>..<commit2>
pero puedes usar --numstat
o --shortstat
también. git log
También puede seleccionar confirmaciones de otras maneras: eche un vistazo a la documentación . Es posible que le interesen cosas como --since
(en lugar de especificar rangos de compromiso, solo seleccione los compromisos desde la semana pasada) y --no-merges
(los compromisos de combinación en realidad no introducen cambios), así como las opciones de salida bonitas ( --pretty=oneline, short, medium, full...
).
Aquí hay una línea para obtener los cambios totales en lugar de los cambios por confirmación del registro de git (cambie las opciones de selección de confirmación según lo desee; esto es confirmaciones de usted, de commit1 a commit2):
git log --numstat --pretty="%H" --author="Your Name" commit1..commit2 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
(debe dejar que git log imprima cierta información de identificación sobre el compromiso; Elegí arbitrariamente el hash, luego usé awk para seleccionar solo las líneas con tres campos, que son los que tienen la información estadística)