Je viens de résoudre ce problème pour moi-même, je vais donc partager ce que j'ai trouvé. Voici le résultat final :
> git summary --since=yesterday
total: 114 file changes, 13800 insertions(+) 638 deletions(-)
La commande sous-jacente ressemble à ceci :
git log --numstat --format="" "$@" | awk '{files += 1}{ins += $1}{del += $2} END{print "total: "files" files, "ins" insertions(+) "del" deletions(-)"}'
Notez le $@
dans la commande log pour transmettre vos arguments tels que --author="Brian"
o --since=yesterday
.
Echapper à l'awk pour le mettre dans un alias git était désordonné, donc à la place, je l'ai mis dans un exécutable script sur mon chemin ( ~/bin/git-stat-sum
), puis utilisé le script dans l'alias dans mon .gitconfig
:
[alias]
summary = !git-stat-sum \"$@\"
Et ça marche très bien. Une dernière chose à noter est que file changes
est le nombre de modifications apportées aux fichiers, et non le nombre de fichiers uniques modifiés. C'est ce que je cherchais, mais ce n'est peut-être pas ce que vous attendez.
Voici un ou deux autres exemples
git summary --author=brian
git summary master..dev
# combine them as you like
git summary --author=brian master..dev
git summary --all
Vraiment, vous devriez être capable de remplacer n'importe quel git log
avec git summary
.