Sie möchten die --stat
Option git diff
oder, wenn Sie dies in einem Skript analysieren möchten , die --numstat
Option.
git diff --stat <commit-ish> <commit-ish>
--stat
Erzeugt die für Menschen lesbare Ausgabe, die Sie nach dem Zusammenführen gewohnt sind. --numstat
erzeugt ein schönes Tabellenlayout, das Skripte leicht interpretieren können.
Ich habe irgendwie übersehen, dass Sie dies bei mehreren Commits gleichzeitig tun wollten - das ist eine Aufgabe für git log
. Ron DeVera geht darauf ein, aber Sie können tatsächlich viel mehr tun, als er erwähnt. Da git log
die Diff-Maschinerie intern aufgerufen wird, um die angeforderten Informationen zu drucken, können Sie ihr eine der Diff-Stat-Optionen geben - nicht nur --shortstat
. Was Sie wahrscheinlich verwenden möchten, ist:
git log --author="Your name" --stat <commit1>..<commit2>
aber du kannst --numstat
oder --shortstat
auch verwenden. git log
Sie können Commits auch auf verschiedene andere Arten auswählen - sehen Sie sich die Dokumentation an . Möglicherweise interessieren Sie sich für Dinge wie --since
(anstatt Festschreibungsbereiche anzugeben, wählen Sie einfach Festschreibungen seit letzter Woche aus) und --no-merges
(Festschreibungsübertragungen führen keine Änderungen ein) sowie für die hübschen Ausgabeoptionen ( --pretty=oneline, short, medium, full...
).
Hier ist ein Einzeiler, um Gesamtänderungen anstelle von Änderungen pro Festschreibung aus dem Git-Protokoll zu erhalten (ändern Sie die Auswahloptionen für die Festschreibung wie gewünscht - dies wird von Ihnen festgeschrieben, von Festschreibung1 zu Festschreibung2):
git log --numstat --pretty="%H" --author="Your Name" commit1..commit2 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
(Sie müssen das Git-Protokoll einige identifizierende Informationen über das Commit drucken lassen. Ich habe den Hash willkürlich ausgewählt und dann mit awk nur die Zeilen mit drei Feldern ausgewählt, die die stat-Informationen enthalten.)