Dưới đây là những gì người tạo ra git Linus nói về cách thu nhỏ repo git của bạn:
Tương đương với "git gc --aguptive" - nhưng được thực hiện * đúng cách * - là thực hiện (qua đêm) một cái gì đó như
git repack -a -d --depth=250 --window=250
trong đó điều sâu sắc đó chỉ là về độ sâu của chuỗi delta có thể (làm cho chúng dài hơn đối với lịch sử cũ - nó đáng giá trên không gian) và điều cửa sổ là về một cửa sổ đối tượng mà chúng ta muốn mỗi ứng cử viên quét sẽ lớn đến mức nào.
Và ở đây, bạn có thể muốn thêm cờ "-f" (đó là "bỏ tất cả các đồng bằng cũ", vì bây giờ bạn đang thực sự cố gắng đảm bảo rằng cái này thực sự tìm thấy các ứng cử viên tốt.
nguồn: http://gcc.gnu.org/ml/gcc/2007-12/msg00165.html
Điều này sẽ thoát khỏi dữ liệu nhị phân mồ côi trong repo của tôi? "git repack" sẽ không loại bỏ hình ảnh hoặc dữ liệu nhị phân mà bạn đã kiểm tra trong repo của mình và sau đó xóa nó. Để xóa những loại dữ liệu đó vĩnh viễn khỏi repo của bạn, bạn phải viết lại lịch sử của mình. Một ví dụ phổ biến đó là khi bạn vô tình kiểm tra mật khẩu của mình trong git. Bạn có thể quay lại và xóa một số tệp nhưng sau đó bạn phải viết lại lịch sử của mình từ đó đến bây giờ và sau đó buộc đẩy sau đó repo mới về nguồn gốc của bạn.
git count-objects -v
?