Лучшее решение, по крайней мере для меня, скрыто в комментариях к ответу @ ephemient.Я просто вытаскиваю это сюда, чтобы оно не осталось незамеченным.Кредит должен быть указан @FRoZeN (и @ephemient).
git diff --shortstat `git hash-object -t tree /dev/null`
возвращает общее количество файлов и строк в рабочем каталоге репо без каких-либо дополнительных помех.В качестве бонуса учитывается только исходный код - двоичные файлы исключаются из подсчета.
Приведенная выше команда работает в Linux и OS X. Кроссплатформенная версия -
git diff --shortstat 4b825dc642cb6eb9a060e54bf8d69288fbee4904
, которая также работает в Windows.
Для записи:варианты исключения пустых строк,
-w
/ --ignore-all-space
, -b
/ --ignore-space-change
, --ignore-blank-lines
, --ignore-space-at-eol
не имеют никакого эффекта при использовании с --shortstat
.Подсчитываются пустые строки.