Запустите эту команду:
git log --pretty=format:'' --numstat --author 'Lu4' | awk 'NF' | awk '{insertions+=$1; deletions+=$2} END {print NR, "files changed,", insertions, "insertions(+),", deletions, "deletions(+)"}';
Эта команда очень близка к умной в ответ Абикса , но она также обрабатывает крайний случай, найденный Уоллесом Сидре .Иногда фиксация включает только удаления (т.е. без вставок).Команда в ответе abyx неправильно считывает эти удаления как вставки.Команда здесь читает их правильно, потому что она использует --numstat
вместо --shortstat
.В отличие от --shortstat
, --numstat
включает как вставки, так и удаления для этих коммитов.
Обратите внимание, что обе команды включают двоичные файлы в число файлов, но исключают количество строк, вставленных и удаленных внутри этих двоичных файлов.
Вот еще один полезный трюк.Создайте файл с именем gitstats
с таким содержимым:
#!/usr/bin/env bash
git log --pretty=format:'' --numstat "$@" | awk 'NF' | awk '{insertions+=$1; deletions+=$2} END {print NR, "files changed,", insertions, "insertions(+),", deletions, "deletions(+)"}';
Затем вы можете запустить эту команду с любыми дополнительными опциями до git log
.Вот несколько примеров:
./gitstats;
./gitstats --since '1 month ago';
./gitstats --since '1 month ago' --until '1 day ago';
./gitstats --author 'Lu4' --since '1 month ago' --until '1 day ago';
(Конечно, файл может называться не так, как gitstats
.)