git gc
đã làm git repack
như vậy không có ý nghĩa trong việc đóng gói thủ công trừ khi bạn sẽ chuyển một số tùy chọn đặc biệt cho nó.
Bước đầu tiên là để xem liệu phần lớn không gian là (như thường lệ) là cơ sở dữ liệu đối tượng của bạn.
git count-objects -v
Điều này sẽ đưa ra một báo cáo về việc có bao nhiêu đối tượng được giải nén trong kho lưu trữ của bạn, chúng chiếm bao nhiêu dung lượng, bao nhiêu tệp bạn có và bao nhiêu dung lượng chúng chiếm.
Lý tưởng nhất là sau khi đóng gói lại, bạn sẽ không có các đối tượng được giải nén và một tệp gói nhưng hoàn toàn bình thường khi có một số đối tượng không được tham chiếu trực tiếp bởi các nhánh hiện tại vẫn hiện diện và giải nén.
Nếu bạn có một gói lớn duy nhất và bạn muốn biết những gì đang chiếm dung lượng thì bạn có thể liệt kê các đối tượng tạo nên gói cùng với cách chúng được lưu trữ.
git verify-pack -v .git/objects/pack/pack-*.idx
Lưu ý rằng verify-pack
có một tệp chỉ mục chứ không phải chính tệp gói. Điều này đưa ra một báo cáo về mọi đối tượng trong gói, kích thước thật và kích thước đóng gói của nó cũng như thông tin về việc liệu nó có bị "phân tách" hay không và nếu có thì nguồn gốc của chuỗi delta.
Để xem liệu có bất kỳ đối tượng lớn bất thường nào trong kho lưu trữ của bạn không, bạn có thể sắp xếp đầu ra bằng số trên cột thứ ba của cột thứ tư (ví dụ | sort -k3n
).
Từ đầu ra này, bạn sẽ có thể thấy nội dung của bất kỳ đối tượng nào bằng cách sử dụng git show
lệnh, mặc dù không thể thấy chính xác vị trí trong lịch sử cam kết của kho lưu trữ mà đối tượng được tham chiếu. Nếu bạn cần làm điều này, hãy thử một cái gì đó từ câu hỏi này .