Git automatycznie uruchamia czyszczenie pamięci :
• Jeśli w repozytorium znajduje się zbyt wiele luźnych obiektów
• Gdy nastąpi wypychanie do zdalnego repozytorium
• Po kilku poleceniach, które mogą wprowadzić wiele luźnych obiektów
• Gdy niektóre polecenia, takie jak git reflog, wygasają, wyraźnie o to poproś
I wreszcie, wyrzucanie elementów bezużytecznych ma miejsce, gdy jawnie zażądasz ich za pomocą polecenia git gc. Ale kiedy to powinno być? Nie ma solidnej odpowiedzi na to pytanie, ale jest kilka dobrych rad i najlepszych praktyk.
Powinieneś rozważyć uruchomienie git gc ręcznie w kilku sytuacjach:
• Jeśli właśnie ukończyłeś gałęzię filtru git. Przypomnij sobie, że gałąź filtra przepisuje wiele zatwierdzeń, wprowadza nowe i pozostawia stare w referencji, które powinny zostać usunięte, gdy będziesz zadowolony z wyników. Wszystkie martwe obiekty (do których nie ma już odniesienia, ponieważ właśnie usunąłeś jeden odnośnik do nich) powinny zostać usunięte poprzez odśmiecanie.
• Po kilku poleceniach, które mogą wprowadzić wiele luźnych obiektów. Może to być na przykład duży wysiłek bazowy.
A z drugiej strony, kiedy należy uważać na zbieranie śmieci?
• Jeśli istnieją osierocone referencje, które możesz chcieć odzyskać
• W kontekście git rerere i nie musisz zapisywać rezolucji na zawsze
• W kontekście tylko tagów i gałęzi wystarczających, aby Git na stałe zachował zatwierdzenie
• W kontekście pobierania FETCH_HEAD (pobieranie bezpośrednio przez URL poprzez git fetch), ponieważ są one natychmiast przedmiotem odśmiecania