Git LFS: Quản lý, Nâng cấp và Khắc phục Lỗi Dung Lượng Hiệu Quả
Bạn đang gặp khó khăn khi làm việc với các tệp lớn trong Git? Git Large File Storage (LFS) là giải pháp hoàn hảo! Bài viết này sẽ cung cấp cho bạn hướng dẫn toàn diện về cách quản lý dung lượng, khắc phục các lỗi thường gặp, và nâng cấp Git LFS để đảm bảo quy trình làm việc mượt mà và hiệu quả. Từ việc mua thêm dung lượng lưu trữ đến xử lý các lỗi vượt quá giới hạn push, chúng tôi sẽ trang bị cho bạn mọi kiến thức cần thiết.
Quản lý Dung Lượng Git LFS: Mua Thêm Dung Lượng và Băng Thông
Khi sử dụng Git LFS, bạn có thể cần mua thêm dung lượng và băng thông để đáp ứng nhu cầu dự án. Dưới đây là hướng dẫn chi tiết để bạn có thể thực hiện việc này trên GitHub, cho cả tài khoản cá nhân và tổ chức.
Mua thêm dung lượng cho tài khoản cá nhân
-
Bước 1: Truy cập vào phần "Settings" (Cài đặt) trong tài khoản GitHub của bạn.
-
Bước 2: Trong mục "Access" (Truy cập) của thanh bên, nhấp vào "Billing and plans" (Thanh toán và gói). Sau đó chọn "Plans and usage" (Gói và sử dụng).
-
Bước 3: Bên cạnh "Git LFS Data", nhấp vào "Add more data" (Thêm dữ liệu) hoặc sử dụng menu "Edit" (Chỉnh sửa) và chọn "Add more data packs" (Thêm gói dữ liệu).
-
Bước 4: Nhập số lượng gói dữ liệu bạn muốn thêm vào tài khoản. Mỗi gói có giá $5 mỗi tháng, cung cấp 50 GiB băng thông và 50 GiB dung lượng lưu trữ.
-
Bước 5: Xác nhận số lượng gói dữ liệu hàng tháng mới bằng cách nhấp vào "Purchase" (Mua).
Mua thêm dung lượng cho tổ chức
Chủ sở hữu tổ chức và người quản lý thanh toán có thể truy cập và thay đổi cài đặt thanh toán cho tổ chức. Các bước thực hiện tương tự như với tài khoản cá nhân:
-
Bước 1: Truy cập vào "Settings" (Cài đặt) trong tài khoản GitHub của bạn.
-
Bước 2: Trong mục "Access" (Truy cập), nhấp vào "Organizations" (Tổ chức).
-
Bước 3: Bên cạnh tổ chức, nhấp vào "Settings" (Cài đặt).
-
Bước 4: Nếu bạn là chủ sở hữu tổ chức, trong mục "Access" (Truy cập), nhấp vào "Billing and plans" (Thanh toán và gói).
-
Bước 5: Bên cạnh "Git LFS Data", nhấp vào "Add more data" (Thêm dữ liệu) hoặc sử dụng menu "Edit" (Chỉnh sửa) và chọn "Add more data packs" (Thêm gói dữ liệu).
-
Bước 6: Nhập số lượng gói dữ liệu bạn muốn thêm vào tài khoản. Mỗi gói có giá $5 mỗi tháng, cung cấp 50 GiB băng thông và 50 GiB dung lượng lưu trữ.
-
Bước 7: Xác nhận số lượng gói dữ liệu hàng tháng mới bằng cách nhấp vào "Purchase" (Mua).
Khắc Phục Lỗi Giới Hạn Push 2GB
GitHub có giới hạn 2GB cho mỗi lần push. Bạn có thể gặp lỗi này khi tải lên các kho lưu trữ lớn lần đầu, nhập kho lưu trữ lớn từ các nền tảng khác, hoặc khi cố gắng viết lại lịch sử của các kho lưu trữ lớn hiện có.
Các thông báo lỗi thường gặp
Khi gặp giới hạn này, bạn có thể thấy một trong các thông báo lỗi sau:
fatal: the remote end hung up unexpectedly
remote: fatal: pack exceeds maximum allowed size
Giải pháp
Có hai cách chính để khắc phục lỗi này: chia nhỏ push thành các phần nhỏ hơn, hoặc xóa lịch sử Git và bắt đầu lại từ đầu. Nếu bạn có một commit duy nhất lớn hơn 2GB và không thể xóa lịch sử Git, bạn cần thực hiện interactive rebase để chia commit lớn thành nhiều commit nhỏ hơn.
Chia nhỏ push lớn
Bạn có thể tránh gặp giới hạn bằng cách chia push thành các phần nhỏ hơn, mỗi phần dưới 2GB. Nếu một nhánh nhỏ hơn giới hạn này, bạn có thể push tất cả cùng một lúc. Tuy nhiên, nếu một nhánh lớn hơn 2GB, bạn cần chia push thành các phần nhỏ hơn nữa và chỉ push một vài commit tại một thời điểm.
-
Bước 1: Nếu bạn chưa cấu hình remote, hãy thêm kho lưu trữ làm remote mới.
-
Bước 2: Để tìm các commit phù hợp trải dài theo lịch sử của nhánh chính trong kho lưu trữ cục bộ, hãy chạy lệnh sau:
git log --oneline --reverse refs/heads/BRANCH-NAME | awk 'NR % 1000 == 0'
Lệnh này hiển thị mỗi commit thứ 1000. Bạn có thể tăng hoặc giảm số này để điều chỉnh kích thước bước.
-
Bước 3: Push từng commit một đến kho lưu trữ được lưu trữ trên GitHub của bạn:
git push REMOTE-NAME +<YOUR_COMMIT_SHA_NUMBER>:refs/heads/BRANCH-NAME
-
Bước 4: Nếu bạn thấy thông báo
remote: fatal: pack exceeds maximum allowed size
, hãy giảm kích thước bước ở bước 2 và thử lại.
-
Bước 5: Lặp lại quy trình tương tự cho mọi commit bạn đã xác định trong lịch sử từ bước 2.
-
Bước 6: Nếu đây là lần đầu tiên kho lưu trữ này được push lên GitHub, hãy thực hiện push mirror cuối cùng để đảm bảo mọi refs còn lại được push lên:
git push REMOTE-NAME --mirror
-
Bước 7: Nếu vẫn quá lớn, bạn cần push các nhánh khác theo giai đoạn bằng các bước tương tự.
Bắt đầu lại từ đầu
Nếu kho lưu trữ không có bất kỳ lịch sử nào, hoặc commit ban đầu của bạn lớn hơn 2GB và bạn không ngại thiết lập lại lịch sử Git, bạn có thể bắt đầu lại từ đầu.
-
Bước 1: Trên bản sao cục bộ của bạn, xóa thư mục ẩn
.git
để xóa tất cả lịch sử Git trước đó và chuyển đổi nó trở lại thành một thư mục bình thường chứa đầy tệp.
-
Bước 2: Tạo một thư mục trống mới.
-
Bước 3: Chạy
git init
và git lfs install
trên thư mục mới, và thêm kho lưu trữ GitHub trống mới làm remote.
-
Bước 4: Nếu bạn đã sử dụng Git Large File Storage và có tất cả các quy tắc theo dõi Git LFS bạn định sử dụng đã được liệt kê trong tệp
.gitattributes
trong thư mục cũ, đó phải là tệp đầu tiên bạn sao chép sang thư mục mới. Bạn nên đảm bảo các quy tắc theo dõi đã được thiết lập trước khi bạn thêm bất kỳ tệp nào khác, để không có khả năng những thứ dành cho Git LFS sẽ được commit vào bộ nhớ Git thông thường.
-
Bước 5: Nếu bạn chưa sử dụng Git LFS, bạn có thể bỏ qua bước này, hoặc bạn có thể thiết lập các quy tắc theo dõi bạn định sử dụng trong tệp
.gitattributes
trong thư mục mới trước khi bạn sao chép bất kỳ tệp nào khác.
-
Bước 6: Di chuyển các lô tệp nhỏ hơn 2GB từ thư mục cũ sang thư mục mới. Sau khi mỗi lô được di chuyển, hãy tạo commit và push nó trước khi di chuyển lô tiếp theo. Bạn có thể thực hiện cách tiếp cận thận trọng và giữ ở mức khoảng 2GB. Ngoài ra, nếu bạn có một thư mục chứa các tệp dành cho Git LFS, bạn có thể bỏ qua các tệp đó khi xem xét giới hạn 2GB cho mỗi lô.
-
Bước 7: Khi thư mục cũ trống, kho lưu trữ GitHub sẽ chứa mọi thứ. Nếu bạn đang sử dụng Git LFS, tất cả các tệp dành cho Git LFS sẽ được push lên bộ nhớ Git LFS.
Tối ưu hóa Git LFS
Để sử dụng Git LFS hiệu quả, hãy đảm bảo rằng bạn chỉ theo dõi các tệp thực sự cần thiết. Sử dụng tệp .gitattributes
để chỉ định các loại tệp lớn cần được quản lý bởi LFS.
- Kiểm tra dung lượng thường xuyên: Theo dõi việc sử dụng dung lượng LFS của bạn để tránh vượt quá giới hạn và phát sinh chi phí không cần thiết.
- Xóa các tệp không cần thiết: Nếu có các tệp lớn không còn cần thiết trong dự án, hãy xóa chúng khỏi kho lưu trữ LFS để giải phóng dung lượng.
- Cân nhắc sử dụng Bitbucket: Nếu bạn đang tìm kiếm một giải pháp lưu trữ LFS khác, Bitbucket cung cấp các gói lưu trữ khác nhau với giá cả cạnh tranh.
Kết Luận
Git LFS là công cụ mạnh mẽ để quản lý các tệp lớn trong dự án Git. Bằng cách hiểu rõ cách mua thêm dung lượng, khắc phục các lỗi thường gặp và tối ưu hóa việc sử dụng, bạn có thể tận dụng tối đa Git LFS để quy trình làm việc của bạn luôn suôn sẻ và hiệu quả. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để làm chủ Git LFS!