Git LFS (Large File Storage) là một extension để xử lý các tệp binary lớn (video, dataset, asset thiết kế, các binary lớn) một cách hiệu quả trong Git. Git được thiết kế cho văn bản/mã nguồn và xử lý các binary lớn kém, nên LFS lưu chúng riêng biệt trong khi giữ các tham chiếu nhẹ trong repository.
Vấn đề: Git và các binary lớn
Git lưu mọi phiên bản của mọi tệp trong lịch sử của nó (toàn bộ nội dung):
→ các tệp BINARY LỚN (video, dataset, PSD, binary lớn) làm phình repo ENORMOUSLY:
- mỗi thay đổi lưu thêm một bản sao đầy đủ (binary không diff tốt)
- repo và MỌI bản clone trở nên khổng lồ và chậm (clone/fetch tải toàn bộ lịch sử)
- lịch sử không thể thu nhỏ dễ dàng (các blob lớn là vĩnh viễn)
→ Git tuyệt vời cho mã nguồn (văn bản, diff được), KÉM cho các binary lớn.
