Mô tả: Giải thích lỗi “Not enough disk space to clone the repository”, vì sao kho mã nguồn phình to và cách chỉ lấy phần dữ liệu cần dùng.
Bạn chỉ muốn sửa vài dòng. Công cụ lại báo không đủ dung lượng để sao chép kho mã nguồn.
Đây là lỗi thiếu không gian lưu trữ ở môi trường nhận bản sao, chứ không phải dấu hiệu ứng dụng bị hỏng hay tệp trên GitHub biến mất.
Trong một trường hợp, API của GitHub báo kích thước kho khoảng 9 GB. Cần một chiếc tua vít, nhưng xe giao hàng mang tới cả cửa hàng dụng cụ, nguyên cả kệ.
Thông báo thực sự nói gì?
Nó xác nhận thao tác sao chép bị chặn vì không đủ chỗ. Riêng thông báo đó chưa cho biết chính xác dung lượng còn trống, lượng dữ liệu đã tải hay phần nặng nhất nằm ở tệp hiện tại hoặc lịch sử cũ.
Khoảng 9 GB là số liệu API được làm tròn, không phải kết quả đo bản sao trên máy đã gặp lỗi. Dữ liệu tải về, các tệp được giải nén và không gian tạm có thể chiếm dung lượng khác nhau.
Vì sao kho lại lớn như vậy?
Git lưu cả các phiên bản trước đây. Ảnh lớn, bản sao lưu và dữ liệu sinh tự động đã từng được đưa vào kho có thể vẫn tồn tại trong lịch sử. Nếu liên tục bổ sung bài viết, bản dịch, ảnh và kết quả xây dựng, bộ tệp hiện tại cũng có thể rất nặng.
Hãy kiểm tra riêng các tệp hiện tại và dữ liệu lịch sử trước khi kết luận bên nào gây ra vấn đề.
GitHub khuyến nghị giữ kho ở quy mô dễ quản lý, trong đó có mức tối đa được khuyến nghị là 10 GB cho thư mục .git trên đĩa. Đó không phải cơ chế tự động cấm clone ngay khi chạm mốc, cũng không nhất thiết là cùng chỉ số với kích thước do API cung cấp.
Chỉ lấy phần cần dùng
Nếu môi trường cũ đầy tệp tạm, khởi tạo môi trường mới có thể hữu ích. Nhưng khi chính kho mã nguồn đã quá lớn, lỗi vẫn có thể lặp lại.
Nếu chỉ cần đọc hoặc sửa một tệp, API tệp của GitHub cho phép xử lý trực tiếp khi có quyền truy cập. Nếu phải dùng Git, có thể thử:
git clone --depth=1 --filter=blob:none --sparse REPOSITORY_URL
Lệnh này giới hạn lịch sử, trì hoãn tải nội dung tệp và giảm lượng tệp được mở ra ban đầu. Nó không đảm bảo thành công trong mọi môi trường và một số thao tác cần toàn bộ lịch sử sẽ bị hạn chế.
Đừng vội xóa lịch sử
Việc viết lại hoặc xóa lịch sử có thể gây rắc rối cho bản sao của người khác, các tham chiếu cũ và quy trình tự động. Trước tiên hãy đo dung lượng trống, tìm tệp lớn hiện tại và đối tượng lịch sử lớn; sao lưu trước khi dọn dẹp có tính phá hủy.
Câu hỏi đáng đặt ra
Yêu cầu là “sửa tệp này”. Cách thực hiện lại là “dọn cả kho 9 GB sang đây”.
Tại sao phải chở cả kho chỉ để lấy một tệp? Đôi khi cần đổi cách vận chuyển dữ liệu chứ không phải mua ổ cứng lớn hơn.
Nguồn: khuyến nghị của GitHub, hướng dẫn tệp lớn, tài liệu Git clone.



