Начиная с вопрос SO "Как подсчитать общее количество строк, измененных конкретным автором в репозитории Git?" не является полностью удовлетворительным, commandlinefu имеет альтернативы (хотя и не на филиал):
git ls-files | while read i; do git blame $i | sed -e 's/^[^(]*(//' -e 's/^\([^[:digit:]]*\)[[:space:]]\+[[:digit:]].*/\1/'; done | sort | uniq -ic | sort -nr
Включает двоичные файлы, что не очень хорошо, так что вы можете (удалить действительно случайные двоичные файлы):
git ls-files | grep -v "\.\(pdf\|psd\|tif\)$"
(Примечание: поскольку прокомментировал от trcarden , опция -x
или --exclude
не будет работать.
Из git ls-files
справочной страницы , git ls-files -x "*pdf" ...
исключает неотслеживаемое содержимое, если --others
или --ignored
были добавлены в команду git ls-files
.)
Или:
git ls-files "*.py" "*.html" "*.css"
для включения только определенных типов файлов.
Тем не менее, решение на основе "git log
" должно быть лучше, например:
git log --numstat --pretty="%H" --author="Your Name" commit1..commit2 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
но опять-таки, это для одного пути (здесь 2 коммита), а не для всех веток в ветвях.