więc pracuję z kilkoma przyjaciółmi i wszyscy jesteśmy nowi w git i jeden z nich popełnił dużą ilość zewnętrznych plików binarnych, które spowalnia repozytorium, i zajmuje duży dysk -przestrzeń.git wolne miejsce na dysku, usuwając historię repozytorium
Właśnie rozpoczęliśmy projekt, więc nie ma w nim nic ważnego oprócz pliku readme. Więc chcielibyśmy wyczyścić historię repozytorium do bieżącego stanu.
So basicly it looks this:
Head -> A -> B -> C total disk size 45 MB, 1 file, 300 deleted files
And we want this:
Head -> A total disk size 1 kB, 1 file, 0 deleted files
Oczywistym rozwiązaniem byłoby utworzenie nowego repozytorium i skopiowanie pliku readme do nowego repozytorium. Chciałabym jednak nauczyć się czegoś dla celów edukacyjnych/ciekawości, jeśli istnieje polecenie GIT, które może to zrobić.
Eksperymentowałem z poleceniem Rebase, ale wygląda na to, że nadal zachowuje starą historię i swoje dane, co wprowadza mnie w błąd, ponieważ jeśli zmiana bazy danych nie spowoduje wyczyszczenia danych z repozytorium, możesz również nie używać go.
Przeszukałem kilka innych postów na ten temat i podejrzewam, że nie można tego zrobić z git. Chciałbym jednak to potwierdzić.
I tak to jest zdalny katalog na github
Dzięki za wszelką pomoc.
Więc dla mojego rozwiązania wybrałem zrobić:
rebase using tortoisegit
squash all commits
then using git bash:
git reflog expire --all --expire-unreachable=now
git gc --aggressive --prune=now
git push origin master --force
To nie wydaje się lokalną historią repozytorium chce się kurczyć w wielkości dysku. Jednak klonowanie repozytorium ponownie pokazuje pożądane wyniki i rozmiar dysku. A także log repozytorium.
Dzięki za pomocne odpowiedzi. Interesujący Rebase wydaje się bardzo silny.
'git gc' daje mi taką samą redukcję rozmiaru jak klonowanie repozytorium na nowo, FWIW. – rogerdpack