Git LFS — مدیریت فایلهای بزرگ
ذخیره فایلهای حجیم (ویدئو، تصویر، مدل سهبعدی) با Git Large File Storage بدون سنگین کردن مخزن.
مشکل: فایلهای بزرگ در گیت
گیت برای فایلهای متنی کوچک طراحی شده. اگر فایلهای حجیم (ویدئو، PSD، مدل سهبعدی، دیتاست) کامیت کنید:
- 🐌 کلون و pull فوقالعاه کند میشود (هر نسخه از فایل در تاریخچه ذخیره میشود!)
- 💾 حجم مخزن بهسرعت چند گیگ میرسد
- 🚫 گیتهاب محدودیت ۱۰۰ مگابایت per file دارد (خطا میدهد!)
راهحل: Git LFS
Git Large File Storage (LFS) فایلهای بزرگ را جای دیگری ذخیره میکند و در گیت فقط یک اشارهگر کوچک میگذارد. مخزن سبک میماند و فایلها هنگام نیاز دانلود میشوند!
نصب LFS
# ویندوز: همراه Git for Windows نصب است، یا:
git lfs install
# Git LFS initialized.
استفاده از LFS
# ۱. مشخص کردن فایلهای بزرگ (الگو):
git lfs track "*.psd"
git lfs track "*.mp4"
git lfs track "assets/models/*"
# ۲. فایل .gitattributes خودکار ساخته میشود — کامیتش کنید:
git add .gitattributes
git commit -m "راهاندازی LFS"
# ۳. کار عادی! فایل بزرگ را اضافه و کامیت کنید:
git add design.psd
git commit -m "افزودن طرح PSD"
git push
قبل از اولین کامیت فایل بزرگ، حتماً
git lfs track انجام شده باشد! اگر فایل حجیم معمولی کامیت شده، تاریخچه سنگین شده و پاککردنش سخت است.مدیریت فایلهای LFS
# لیست فایلهای تحت نظر LFS:
git lfs ls-files
# لیست الگوهای track شده:
git lfs track
# دانلود واقعی همه فایلهای LFS:
git lfs pull
# فقط اشارهگرها را نگه دار، محتوا را پاک کن (جای دیسک آزاد شود):
git lfs prune
LFS در گیتهاب
| پلن | سهمیه LFS رایگان |
|---|---|
| Free | ۱ گیگابایت فضای ذخیره + ۱ گیگ پهنای باند ماهانه |
| Pro | بیشتر (قابل خرید) |
اگر سهمیه تمام شود، push فایلهای LFS بلاک میشود — قابل ارتقا یا استفاده از سرور LFS شخصی.
کی از LFS استفاده کنیم؟
| ✅ مناسب LFS | ❌ مناسب نیست |
|---|---|
| فایلهای طراحی (PSD، AI) | فایلهای متنی کد |
| ویدئو و صوت پروژه | وابستگیها (node_modules — اصلاً کامیت نشود!) |
| مدلهای سهبعدی و بازی | خروجی build |
| دیتاستهای یادگیری ماشین | هر چیز قابل تولید مجدد |
خلاصه
- گیت برای فایل بزرگ ساخته نشده — LFS مشکل را حل میکند
git lfs track "*.psd"قبل از اولین کامیت!- در مخزن فقط اشارهگر ذخیره میشود — سبک و سریع
- گیتهاب سهمیه LFS محدودی دارد
این مبحث بخشی از دوره آموزش کامل Git است.