body{font-family:Arial,sans-serif;line-height:1.6;margin:0;padding:20px;background:#f9f9f9;color:#333}
h1,h2,h3{color:#2c3e50}
a{color:#2980b9;text-decoration:none}
a:hover{text-decoration:underline}
ul{margin-left:20px}
.container{max-width:800px;margin:auto;background:#fff;padding:30px;box-shadow:0 0 10px rgba(0,0,0,0.1)}
.intro{font-size:1.1em;margin-bottom:20px}
.footer{margin-top:40px;padding-top:20px;border-top:1px solid #ddd;font-size:0.9em;color:#777}
Bạn đã bao giờ gặp khó khăn khi đẩy các tệp media, mô hình 3D hay dataset khổng lồ lên GitHub? Git LFS – hay Large File Storage – chính là giải pháp giúp bạn quản lý tệp tin lớn trong repository một cách nhanh chóng, gọn gàng và an toàn.
🔎 Git LFS là gì?
Git LFS (Large File Storage) là một extension của Git được thiết kế để thay thế các tệp tin có kích thước lớn bằng pointer (đại diện) trong lịch sử commit, trong khi nội dung thực tế được lưu trữ trên một server riêng biệt.
🛠️ Tại sao nên dùng Git LFS?
- Tốc độ clone và fetch nhanh hơn: Repository chỉ chứa các pointer, giảm đáng kể dung lượng tải về.
- Giảm áp lực lên máy chủ Git: Các tệp lớn không chiếm chỗ trong lịch sử commit, giúp server xử lý nhẹ hơn.
- Quản lý phiên bản tệp lớn: Bạn vẫn có thể theo dõi thay đổi của các file nhị phân mà không lo “binary lock”.
- Tương thích với các dịch vụ phổ biến: GitHub, GitLab, Bitbucket đều hỗ trợ Git LFS ngay từ đầu.
🚀 Cài đặt và cấu hình Git LFS
Bước 1: Cài đặt Git LFS
Trên Windows, macOS hoặc Linux, chỉ cần chạy một lệnh đơn giản:
git lfs install
Bước 2: Đánh dấu các tệp lớn
Sử dụng git lfs track để chỉ định các loại file muốn lưu trữ bằng LFS, ví dụ:
git lfs track "*.psd"
git lfs track "assets/**/*.mp4"
Sau khi chạy, Git sẽ tự động cập nhật file .gitattributes với các rule trên.
Bước 3: Thêm, commit và push như bình thường
Những tệp được track sẽ được thay thế bằng pointer khi bạn commit. Khi push, Git LFS sẽ tải các tệp thực tế lên server LFS tương ứng.
💡 Các mẹo thực tiễn khi dùng Git LFS
- Giới hạn kích thước: Hầu hết các dịch vụ giới hạn kích thước tệp LFS (ví dụ GitHub: 2 GB/tệp). Kiểm tra giới hạn trước khi commit.
- Sử dụng .gitattributes một cách cẩn thận: Đảm bảo chỉ track những loại file thực sự cần LFS, tránh lãng phí băng thông.
- Kiểm soát quota: Theo dõi lượng lưu trữ LFS của bạn trong bảng điều khiển của GitHub/GitLab để tránh bị “over‑quota”.
- Cache cục bộ: Git LFS lưu trữ các tệp đã tải về trong
~/.git-lfs, giúp làm việc offline nhanh hơn.
🔧 Giải quyết các vấn đề thường gặp
1. Lỗi “object not found” khi clone
Đảm bảo máy của bạn đã cài git lfs và chạy git lfs pull sau khi clone.
2. Quá nhiều dữ liệu LFS trên server
Sử dụng lệnh git lfs prune để xóa các tệp LFS không còn được tham chiếu trong lịch sử hiện tại.
3. Cần di chuyển repository sang server mới
Thực hiện git lfs migrate export --everything để chuyển toàn bộ nội dung LFS trở lại Git bình thường, sau đó push lên server mới.
📚 Tham khảo thêm
Kết luận
Với Git LFS, việc quản lý tệp tin lớn trong repository không còn là nỗi lo. Bạn có thể giữ cho lịch sử Git nhẹ, giảm thời gian clone và vẫn duy trì khả năng versioning cho các file nhị phân quan trọng. Hãy áp dụng các bước cài đặt và mẹo thực tiễn ở trên để tối ưu hoá workflow của mình ngay hôm nay!