2013-03-25 22 views
9

Ich habe ein Projekt mit ~ 12MB Wert von Code und Assets drin. Ich habe es mit Git verfolgt und habe gerade bemerkt, dass mein Ordner .git jetzt etwas über 1,83 GB ist. Es besteht aus ein paar kleinen Dateien und dann nur aus einer Paketdatei, die etwa 1,82 GB des Ordners ausmacht.Git Repository zu groß

Ich habe git gc --aggressive und git gc --prune ausgeführt. Es ist die gleiche Größe. Ich habe versucht:

git reflog expire --expire=now --all 
git repack -ad # Remove dangling objects from packfiles 
git prune  # Remove dangling loose objects 

Aber es ist immer noch die gleiche Größe. Ich habe es sogar geklont (einmal lokal mit einem erzwungenen Repack, und noch einmal von Git), aber es ist immer noch 1,83 GB auf jedem. Ist das normal? Gibt es eine Möglichkeit, die Größe zu reduzieren, oder starte ich einfach einen neuen Repo, kopiere den Code und akzeptiere, dass meine früheren Commits weg sind?

+2

Mit "Vermögenswerte" meinst du nicht komprimierbare Sachen wie Bilder usw.? Hast du diese oft bearbeitet? [Dies] (http://naleid.com/blog/2012/01/17/finding-and-purging-big-files-from-git-history/) scheint zu sein, was Sie wollen, aber Disclaimer: I habe es noch nie gemacht, also klopfe dein Repo, bevor du damit herumhantierst: p – Amadan

+5

Allgemeiner VCS-Kommentar: Binärdateien (Bilder/ZIP ...) werden normalerweise wie für jede Version gespeichert (im Gegensatz zu Text, der durch komprimiertes Speichern sehr effektiv gepackt werden kann) Diffs) und kann nicht komprimiert werden (wie die meisten Binärformate jetzt Tage sind bereits komprimiert) ... So könnte es sehr gut sein, Sie haben viele Versionen von Binärdateien, die einfach so viel Platz brauchen (sehen Sie, wenn Sie eine Art von sammeln können pro-Datei-Typ Statistiken über die Anzahl der Versionen/Dateigrößen) –

+0

Ok, das binäre Datei-Bit scheint ein wahrscheinlicher Täter zu sein. Gibt es eine Möglichkeit, diese Dateien aus früheren Commits zu entfernen und sie zusätzlich zu meiner .gitignore-Datei hinzuzufügen? – Bryce

Antwort

10

Ok, die Kommentare waren ein guter Anfang zu verstehen, was die Ursache des Problems wahrscheinlich war. Ich verstehe den Befehl git filter-branch nicht wirklich, also war ich ein wenig vorsichtig, nur das zu verwenden.

Ich kam in dieses Werkzeug: http://rtyley.github.com/bfg-repo-cleaner/

Es wirkte Wunder. Mein Repo ist jetzt unter 10 MB.

+7

Ich bin der Autor des BFG Repo-Cleaner, und deine Antwort macht mich sehr, sehr glücklich. –

+1

Danke! Im Ernst, dieses Tool ist so viel einfacher als das Kopieren und Einfügen von zufälligen Git-Hacks aus dem Internet. – Bryce