Anda ingin --stat
opsi git diff
, atau jika Anda ingin menguraikannya dalam skrip, --numstat
opsi.
git diff --stat <commit-ish> <commit-ish>
--stat
menghasilkan output yang dapat dibaca manusia yang biasa Anda lihat setelah penggabungan; --numstat
menghasilkan tata letak tabel yang bagus yang dapat ditafsirkan dengan mudah oleh skrip.
Entah bagaimana saya merindukan bahwa Anda ingin melakukan ini di beberapa komit pada saat yang sama - itu tugas untuk git log
. Ron DeVera menyentuh ini, tetapi Anda benar-benar dapat melakukan lebih dari apa yang ia sebutkan. Karena secara git log
internal memanggil mesin diff untuk mencetak informasi yang diminta, Anda dapat memberikannya opsi stat yang berbeda - bukan hanya --shortstat
. Apa yang mungkin ingin Anda gunakan adalah:
git log --author="Your name" --stat <commit1>..<commit2>
tetapi Anda bisa menggunakan --numstat
atau --shortstat
juga. git log
juga dapat memilih komit dengan berbagai cara lain - lihat dokumentasi . Anda mungkin tertarik pada hal-hal seperti --since
(daripada menentukan rentang komit, cukup pilih komit sejak minggu lalu) dan --no-merges
(gabungan komit tidak benar-benar memperkenalkan perubahan), serta opsi output yang cantik (--pretty=oneline, short, medium, full...
).
Berikut adalah satu-liner untuk mendapatkan perubahan total alih-alih perubahan per-komit dari git log (ubah opsi pemilihan komit seperti yang diinginkan - ini dilakukan oleh Anda, dari commit1 ke 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)}'
(Anda harus membiarkan git log mencetak beberapa informasi identitas tentang komit; Saya sewenang-wenang memilih hash, lalu menggunakan awk untuk hanya memilih garis dengan tiga bidang, yang merupakan informasi stat)