Vous voulez l' --stat
option git diff
, ou si vous cherchez à analyser ceci dans un script, l' --numstat
option.
git diff --stat <commit-ish> <commit-ish>
--stat
produit la sortie lisible par l'homme que vous avez l'habitude de voir après les fusions; --numstat
produit une belle disposition de table que les scripts peuvent facilement interpréter.
J'ai en quelque sorte manqué que vous cherchiez à faire cela sur plusieurs commits en même temps - c'est une tâche pour git log
. Ron DeVera en parle, mais vous pouvez en fait faire bien plus que ce qu'il mentionne. Dans git log
la mesure où il appelle en interne la machine diff pour imprimer les informations demandées, vous pouvez lui donner n'importe laquelle des options de statistiques diff - pas seulement --shortstat
. Ce que vous voudrez probablement utiliser, c'est:
git log --author="Your name" --stat <commit1>..<commit2>
mais vous pouvez également utiliser --numstat
ou --shortstat
. git log
peut également sélectionner les validations de différentes manières - consultez la documentation . Vous pourriez être intéressé par des choses comme--since
(plutôt que de spécifier des plages de validation, sélectionnez simplement les validations depuis la semaine dernière) et --no-merges
(les validations de fusion n'introduisent pas de changements), ainsi que les jolies options de sortie ( --pretty=oneline, short, medium, full...
).
Voici une ligne pour obtenir les modifications totales au lieu des modifications par validation du journal git (modifiez les options de sélection de validation comme vous le souhaitez - c'est la validation par vous, de commit1 à 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)}'
(vous devez laisser git log imprimer des informations d'identification sur la validation; j'ai choisi arbitrairement le hachage, puis utilisé awk pour ne sélectionner que les lignes avec trois champs, qui sont ceux avec les informations statistiques)