2014-02-17 3 views
6

Ich habe einen großen grauen Haufen Code und ich bin es in der Versionskontrolle einrichten.Finden Sie die Gesamtgröße von nicht committed oder untracked Dateien in git

ich einen Befehl möchte ich auf Linux laufen kann mir die Gesamtgröße der Dateien geben, die begangen werden würde und schob wenn ich git add -A && git commit -am 'initial commit' lief

Die Gesamtgröße benötigt wird, auch die eine Pause von Ordner würde handlich sein.

dann werde ich diese verwenden, um meine ignoriert aufzubauen, so dass ich die repo auf eine realistische Größe bekommen kann, bevor ich es treiben

Antwort

7

Ich glaube, ich habe meine eigene Frage beantwortet:

for f in `git status --porcelain | sed 's#^...##'`; do du -cs $f | head -n 1; done | sort -nr; echo "TOTAL:"; du -cs . 

Aber ich bin offen für bessere Ideen oder nützliche Tricks. Meine aktuelle Ausgabe ist 13GB :)


Der obige Befehl im Grunde gibt es, es gibt mir die gesamte Zeile für Zeile von git status aber mir nicht die Gesamtsumme geben. Ich bekomme derzeit die Summe aller Dateien am Ende, was nicht korrekt ist. Ich versuchte einige Verwendung von bc, aber konnte es nicht zur Arbeit

+0

funktioniert nicht auf CentOS 6.6 – podarok

0

Da Sie nur alles hinzufügen, sehe ich keinen Grund, über Git gehen. Verwenden Sie einfach die üblichen Unix-Tools: du, find, & c.

+1

Der Grund ist, dass ich Dinge ignorieren werde und dann diesen Befehl ausführen, um zu sehen, was ich auf – edmondscommerce

2

angepasst ich die Antwort von edmondscommerce durch eine einfache awk-Anweisung hinzugefügt, die die Ausgabe der for-Schleife summiert und druckt die Summe (von 1024 * 1024 geteilt Mb konvertieren), dass

for f in `git status --porcelain | sed 's#^...##'`; do du -cs $f | head -n 1; done | sort -nr | awk ' {tot = tot+$1; print } END{ printf("%.2fMb\n",tot/(1024*1024)) }' 

Hinweis - Porzellan druckt Pfadnamen relativ zur Wurzel des Git Repos. Also, wenn Sie diese in einem Unterverzeichnis tun die du Aussage nicht in der Lage sein, die Dateien zu finden ..

(whoppa, meine erste Antwort in sof, kann mit ihm die Kraft sein)

+0

gebracht habe, funktioniert nicht auf CentOS 6.6 – podarok

Verwandte Themen