2013-03-25 23 views
9

Mam projekt z wartością kodu i zasobami ~ 12MB. Śledziłem go za pomocą Gita i zauważyłem, że mój folder .git ma teraz nieco ponad 1,83 GB. Składa się z kilku małych plików, a następnie tylko jednego pliku pakietu, który tworzy około 1,82 GB folderu.Repozytorium Git za duże

Uruchomiłem git gc --aggressive i git gc --prune. Jest tego samego rozmiaru. Próbowałem:

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

Ale wciąż jest tego samego rozmiaru. Sklonowałem go nawet raz (raz lokalnie z wymuszonym przepakowywaniem, i jeszcze raz z Git), ale wciąż jest 1.83GB na każdym. Czy to normalne? Czy istnieje sposób na zmniejszenie jego rozmiaru, czy mogę po prostu rozpocząć nowe repo, skopiować kod i zaakceptować, że moje wcześniejsze zatwierdzenia znikną?

+2

Przez "aktywa" rozumie się nieściśliwe elementy, takie jak obrazy itp.? Czy często je edytowałeś? [This] (http://naleid.com/blog/2012/01/17/finding-and-purging-big-files-from-git-history/) wydaje się być tym, o co prosisz, ale Disclaimer: I nigdy tego nie robili, więc sklonuj swoje repo przed tym, jak z nim zepsuć: p – Amadan

+5

Uwagi ogólne VCS: pliki binarne (obrazy/ZIP ...) są zwykle przechowywane tak, jak w przypadku każdej wersji (w przeciwieństwie do tekstu, który można bardzo skutecznie spakować, przechowując skompresowane diffs) i nie można go skompresować (ponieważ większość formatów binarnych teraz jest już skompresowanych) ... Więc bardzo dobrze może być, że masz wiele wersji plików binarnych, które zajmują po prostu tyle miejsca (zobacz, czy możesz zebrać coś w rodzaju statystyka typu pliku na liczbę wersji/rozmiarów plików) –

+0

Ok, bit pliku binarnego wydaje się być prawdopodobnym winowajcą. Czy istnieje sposób na usunięcie tych plików z poprzednich zatwierdzeń, oprócz dodania ich do mojego pliku .gitignore? – Bryce

Odpowiedz

10

Dobrze, komentarze były świetnym początkiem, aby zrozumieć, jaka była najprawdopodobniej przyczyna problemu. Naprawdę nie rozumiem polecenia git filter-branch, więc trochę się obawiałem, że go użyję.

natknąłem tego narzędzia: http://rtyley.github.com/bfg-repo-cleaner/

To cuda. Moje repo ma teraz mniej niż 10 MB.

+7

Jestem autorem BFG Repo-Cleaner, a twoja odpowiedź bardzo mnie cieszy. –

+1

Dzięki! Poważnie, to narzędzie jest o wiele prostsze niż kopiowanie i wklejanie losowych haków git z internetu. – Bryce

Powiązane problemy