gitpuls

Blog · GitHub

Wie viele Zeilen habe ich diese Woche wirklich geändert?

Von Cédric Freivogel, outperform GmbH · Veröffentlicht

Die rohe Summe hinzugefügter und gelöschter Zeilen aus git misst, wie viel Datenmasse sich geändert hat, nicht, wie viel gearbeitet wurde: Ohne Ausschlussregel zählen Lockfiles, Datendateien und Build-Ausgaben so viel wie Code. In der Kalenderwoche vom 22. bis 28. September 2026 fiel unsere Summe von +414’085 hinzugefügten Zeilen auf +89’450, sobald eine feste Regel griff.

Was zählen die Zeilenangaben von git?

Jede Zeile in jeder Datei, die ein Commit berührt, egal, was für eine Datei es ist. git log --numstat «shows number of added and deleted lines in decimal notation and pathname without abbreviation»; bei Binärdateien gibt es «two - instead of saying 0 0» aus (git-Handbuch, git log --help, git 2.54, geprüft am 9. Oktober 2026). Ein Lockfile, das ein Paketmanager neu geschrieben hat, und eine von Hand geschriebene Funktion sehen in dieser Ausgabe gleich aus.

Welche Dateien verfälschen die Zahl?

Erzeugte Daten, weit mehr als Lockfiles. In der Kalenderwoche vom 22. bis 28. September 2026 fügten unsere 443 Commits ohne Merges +444’132 Zeilen hinzu. Auf Lockfiles entfielen davon +30’047; von den übrigen +414’085 stammten +324’635 aus Datendateien, rund 78 Prozent, die meisten davon JSON, das ein Projekt aus einer Quelle neu erzeugt.

Die Woche danach, vom 29. September bis 5. Oktober 2026, zeigt die andere Seite: +63’504 Zeilen ohne Lockfiles, +54’418 nach der Regel. In einer Woche ohne neu erzeugte Daten nimmt die Regel wenig weg, und genau das soll sie.

Welche Ausschlussregel taugt?

Eine, die Dateien nach ihrer Art entfernt und einzelne Ausreisser abfängt. gitpuls wendet diese Regel auf jedes Konto an, das es liest:

Die letzte Zeile ist das Netz darunter: Sie fängt eine erzeugte Datei, die die Muster noch nicht kennen. Mit der Regel kam die Woche vom 22. bis 28. September 2026 auf +89’450 und −27’565 Zeilen.

Wer es am eigenen Repo ausprobieren will, beginnt mit Lockfiles und Datendateien und lässt git rechnen:

git log --since='1 week ago' --no-merges --pretty=tformat: --numstat -- . \
  ':(exclude)*.lock' ':(exclude)**/package-lock.json' ':(exclude)**/*.csv' ':(exclude)**/dist/**' \
  | awk '$1 != "-" { add += $1; del += $2 } END { print "+" add, "-" del }'

Warum nicht GitHubs Wochenstatistik?

Weil sie jede Datei zählt und bei grossen Repos aufhört. GitHub beschreibt den Endpunkt als «a weekly aggregate of the number of additions and deletions pushed to a repository» und ergänzt: «This endpoint can only be used for repositories with fewer than 10,000 commits» (GitHub Docs, Repo-Statistiken, geprüft am 9. Oktober 2026). Einen Dateityp ausschliessen lässt sich dort nicht, die Datendateien von oben wären also drin, und sie zeigt ein Repo nach dem anderen, nicht eine Woche über alle.

Wie dieser Text entstanden ist

Dieser Artikel ist mit einem KI-Assistenten aus unseren eigenen Messungen und den oben verlinkten Quellen entstanden; die Quellen wurden am 9. Oktober 2026 geprüft. Die Zahlen stammen von der Methodenseite, geschätzt ist nichts.