Krótka wersja: oznacza to, co mówi, a jeśli po prostu pozwolisz jej zakończyć, wszystko będzie dobrze.
Podczas większości operacji, które mogą potencjalnie zwiększyć liczbę luźnych (rozpakowanych) obiektów w repozytorium (w tym wypycha), Git wywołuje git gc --auto
. Jeśli jest wystarczająco dużo luźnych obiektów (domyślnie co najmniej 6700), wywoła je, git repack -d -l
aby je spakować. Jeśli jest zbyt wiele oddzielnych paczek, przepakuje je również w jedno.
Pakiet to pojedynczy plik skompresowany w formacie delta, zawierający dużą liczbę obiektów. Bardziej wydajne jest przechowywanie obiektów w paczkach, ale pakowanie (kompresowanie) obiektów wymaga czasu, więc Git początkowo tworzy luźne obiekty, a następnie od czasu do czasu pakuje je partiami, automatycznie wywołując git gc --auto
.
Jeśli pozwolisz Gitowi zakończyć pakowanie, to się nie powtórzy. Może to rzeczywiście zająć trochę czasu, zwłaszcza jeśli masz dużo dużych obiektów binarnych, ale jeśli się uruchomi, oznacza to, że prawdopodobnie drastycznie zmniejszy ilość miejsca na dysku zajętego przez repo. Jeśli naprawdę nie chcesz, aby tak się stało, możesz zmienić parametr config gc.auto
. Jeśli zwiększysz go do czegoś znacznie większego niż 6700, zdarzy się to rzadziej, ale zajmie to więcej czasu. Jeśli go zmniejszysz, nadal będziesz musiał wykonać bieżące przepakowanie, ale później będzie to miało miejsce częściej i zakończy się szybciej. Ustawienie wartości 0 spowoduje wyłączenie automatycznego przepakowywania.
Aby uzyskać więcej informacji, zobacz man git-gc
(pod --auto
) i man git-config
(pod gc.auto
).