La meilleure solution, pour moi en tout cas, est enfouie dans les commentaires de la réponse de @ephemient. Je ne fais que la ressortir ici pour qu'elle ne passe pas inaperçue. Le mérite de cette solution revient à @FRoZeN (et @ephemient).
git diff --shortstat `git hash-object -t tree /dev/null`
renvoie le total des fichiers et des lignes dans le répertoire de travail d'un repo, sans aucun bruit supplémentaire. En prime, seul le code source est compté - les fichiers binaires sont exclus du décompte.
La commande ci-dessus fonctionne sous Linux et OS X. La version multiplateforme est
git diff --shortstat 4b825dc642cb6eb9a060e54bf8d69288fbee4904
Cela fonctionne aussi sous Windows.
Pour mémoire, les options d'exclusion des lignes vides,
-
-w
/ --ignore-all-space
,
-
-b
/ --ignore-space-change
,
-
--ignore-blank-lines
,
--ignore-space-at-eol
n'ont pas d'effet lorsqu'ils sont utilisés avec --shortstat
. Les lignes vides sont comptées.