Phiên bản ngắn: có nghĩa là những gì nó nói, và nếu bạn chỉ để nó kết thúc, tất cả sẽ ổn.
Trong hầu hết các hoạt động có khả năng làm tăng số lượng các đối tượng lỏng lẻo (không giải nén) trong kho lưu trữ (bao gồm các lần đẩy), Git gọi git gc --auto
. Nếu có đủ các đối tượng lỏng lẻo (theo mặc định, ít nhất là 6700), thì nó sẽ gọi git repack -d -l
để đóng gói chúng. Nếu có quá nhiều gói riêng biệt, nó cũng sẽ đóng gói lại thành một.
Một gói là một tệp duy nhất được nén delta, chứa một số lượng lớn các đối tượng. Việc lưu trữ các đối tượng theo gói sẽ hiệu quả hơn, nhưng cần có thời gian để đóng gói (nén) các đối tượng, do đó, Git ban đầu tạo ra các đối tượng lỏng lẻo, sau đó đóng gói chúng theo lô ngay bây giờ và sau đó, thông qua việc gọi tự động git gc --auto
.
Nếu bạn để Git hoàn thành việc đóng gói lại, điều này sẽ không xảy ra một lần nữa. Nó thực sự có thể mất một lúc, đặc biệt là nếu bạn có nhiều đối tượng nhị phân lớn, nhưng nếu nó kích hoạt, thì đó là một dấu hiệu cho thấy nó có thể sẽ làm giảm đáng kể dung lượng đĩa được lấy bởi repo. Nếu bạn thực sự không muốn nó xảy ra, bạn có thể thay đổi tham số cấu hình gc.auto
. Nếu bạn tăng nó lên một cái gì đó lớn hơn nhiều so với 6700, nó sẽ xảy ra ít thường xuyên hơn, nhưng mất nhiều thời gian hơn khi nó xảy ra. Nếu bạn giảm nó, nó vẫn sẽ phải thực hiện đóng gói lại hiện tại của bạn, nhưng sau đó nó sẽ xảy ra thường xuyên hơn và kết thúc nhanh hơn. Nếu bạn đặt thành 0, nó sẽ tắt tự động đóng gói lại.
Xem man git-gc
(dưới --auto
) và man git-config
(dưới gc.auto
) để biết thêm thông tin.