Вам нужна --statопция git diffили, если вы хотите разобрать это в скрипте, --numstatопция.
git diff --stat <commit-ish> <commit-ish>
--statпроизводит удобочитаемый вывод, который вы привыкли видеть после слияний; --numstatсоздает хороший макет таблицы, который сценарии могут легко интерпретировать.
Я почему-то упустил, что вы пытаетесь сделать это одновременно с несколькими коммитами - это задача для git log. Рон ДеВера касается этого, но на самом деле вы можете сделать гораздо больше, чем он упоминает. Поскольку для git logвызова запрошенной информации внутренне вызывается механизм сравнения, вы можете задать ему любой из параметров статистики - не только --shortstat. Что вы, вероятно, хотите использовать:
git log --author="Your name" --stat <commit1>..<commit2>
но вы можете использовать --numstatили --shortstatкак хорошо. git logВы также можете выбирать коммиты различными способами - взгляните на документацию . Возможно, вас заинтересуют такие вещи, как --since(вместо указания диапазонов фиксации, просто выберите коммиты с прошлой недели) и --no-merges(коммиты слияния фактически не вносят изменений), а также симпатичные параметры вывода ( --pretty=oneline, short, medium, full...).
Вот одна строка для получения полных изменений вместо изменений для каждого коммита из git log (измените параметры выбора коммитов по желанию - это коммиты вами, от commit1 до commit2):
git log --numstat --pretty="%H" --author="Your Name" commit1..commit2 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
(вы должны позволить git log распечатать некоторую идентифицирующую информацию о коммите; я произвольно выбрал хеш, а затем использовал awk, чтобы выделить строки только с тремя полями, которые являются данными со статистической информацией)