Ви хочете, щоб --stat
варіант git diff
, або якщо ви хочете проаналізувати це в сценарії, --numstat
варіант.
git diff --stat <commit-ish> <commit-ish>
--stat
створює зрозумілий для людини вихід, який ви звикли бачити після злиття; --numstat
створює хороший макет таблиці, який сценарії можуть легко інтерпретувати.
Я якось пропустив те, що ви хотіли зробити це на кількох комісіях одночасно - це завдання для git log
. Рон ДеВера торкається цього, але ви насправді можете зробити набагато більше того, що він згадує. Оскільки git log
внутрішньо викликує машину diff для друку запитуваної інформації, ви можете надати їй будь-який з варіантів різної статистики - не тільки --shortstat
. Можливо, ви хочете використовувати:
git log --author="Your name" --stat <commit1>..<commit2>
але ви можете використовувати --numstat
або --shortstat
також. git log
Ви також можете обирати комісії різними іншими способами - ознайомтеся з документацією . Можливо, вас зацікавлять такі речі, як --since
(замість того, щоб вказувати діапазони комісій, просто вибирайте комісії з минулого тижня) та --no-merges
(об'єднання об'єктів насправді не вносять зміни), а також гарні параметри виводу ( --pretty=oneline, short, medium, full...
).
Ось один-лайн, щоб отримати загальні зміни замість змін, що виконуються, з журналу git (змінити параметри вибору комісій за бажанням - це виконуєш ти, від 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 лише для вибору рядків з трьома полями, які є тими, що мають статистичну інформацію)