Da ich kein Blog habe, dachte ich, ich teile das mal hier mit der Gemeinschaft 😛
Und zwar habe ich mehrere Git-Repos, bei denen ich manchmal lokal was ändere, ohne sofort zu commiten oder gar zu pushen. Nun wollte ich wissen wie der Stand der Dinge ist, ohne im Terminal in jedes einzelne Verzeichnis wechseln zu müssen. Da sowas wie git status /pfad/zum/repo/
offenbar nicht funktioniert und meine Recherchen im Netz nichts ergaben, habe ich mich selbst dem Problem angenommen und herausgekommen ist das hier:
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/bash # # Ich jag die beiden Sachen in Zeile 9 und 10 über'n STDERR raus, damit ich die eigentlich unnötige find-Ausgabe nachher nach /dev/null schieben kann # find . -type d -name ".git" -execdir bash -c ' if [ ! $(git status | grep -o nothing) ] then basename "$PWD" >&2 # basename durch echo ersetzen, um den ganzen Pfad zum Repo auszugeben git status -s >&2 fi ' \; > /dev/null |
Wenn man gut konfigurierte Repos hat, lässt sich das Script auch leicht erweitern. Beispielsweise könnte man einfach Git-Befehle wie push
, pull
oder commit
übergeben und sie an das innere Script weiterreichen. Umbauten und Verbesserungen sind unbedingt gewünscht 😉