Auf einem Entwickler-Rechner oder Homelab-Server sammeln sich schnell viele Git-Repositories an: eigene Projekte, geklonte Tools, Konfigurationsdateien unter Versionskontrolle. Die Frage Habe ich irgendwo noch uncommitted Changes? lässt sich nicht auf einen Blick beantworten — außer mit diesem Script.
git-status-report.sh durchsucht ein Verzeichnis rekursiv nach Git-Repositories und zeigt für jedes den aktuellen Branch, uncommitted Changes, untracked Files und lokale Commits die noch nicht gepusht wurden. Alles farbkodiert, alles auf einen Blick.
Das Problem
Wer regelmäßig mit Git arbeitet, kennt das: Man hat ein halbes Dutzend Repos auf dem Rechner und irgendwo liegen Änderungen die nie committed wurden. Oder ein Feature-Branch der nie gepusht wurde. git status hilft — aber nur für ein Repo gleichzeitig.
Die Lösung
Das Script nutzt find um alle .git-Verzeichnisse zu lokalisieren, und fragt dann für jedes Repository über git status --porcelain und git rev-list den aktuellen Zustand ab. Die Ausgabe ist tabellarisch: grün = alles sauber, gelb = Änderungen vorhanden.
Voraussetzungen
Nur bash und git werden benötigt. Funktioniert auf Linux und macOS.
Verwendung
# Alle Repos im Home-Verzeichnis prüfen
bash git-status-report.sh
# Bestimmtes Verzeichnis durchsuchen
bash git-status-report.sh ~/projekte
# Nur Repos MIT Änderungen anzeigen
bash git-status-report.sh --dirty-only
# Suchtiefe begrenzen (Standard: 4)
bash git-status-report.sh --depth 2