Git LFS (Large File Storage) هو امتداد لمعالجة الملفات الثنائية الكبيرة (مقاطع الفيديو والمجموعات البيانية وموارد التصميم والملفات الثنائية الكبيرة) بكفاءة في Git. تم تصميم Git للنصوص والكود المصدري ويتعامل بشكل سيء مع الملفات الثنائية الكبيرة، لذا يخزن LFS هذه الملفات بشكل منفصل مع الاحتفاظ بمراجع خفيفة الوزن في المستودع.
المشكلة: Git والملفات الثنائية الكبيرة
Git stores every version of every file in its history (the full content):
→ LARGE BINARY files (videos, datasets, PSDs, big binaries) bloat the repo ENORMOUSLY:
- every change stores another full copy (binaries don't diff well)
- the repo and EVERY clone become huge and slow (clone/fetch download all history)
- history can't be shrunk easily (the large blobs are permanent)
→ Git is great for source code (text, diffable), POOR for large binaries.
