کار با فایل‌های بزرگ

نمای کلی

گیت برای فایل‌های باینری بزرگ طراحی نشده است. برای چنین فایل‌هایی از Git LFS (Large File Storage) استفاده کنید تا مخزن شما بزرگ نشود و کارآمد باقی بماند.

چه زمانی Git LFS استفاده کنیم

  • فایل‌های بزرگتر از 50MB
  • فایل‌های باینری که اغلب تغییر می‌کنند (تصاویر، صوت، ویدئو، دیتاست‌ها)
  • آرتیفکت‌های build یا وابستگی‌های بزرگ

راه‌اندازی

// Install Git LFS (one-time)
git lfs install

// Track file types
git lfs track "*.psd"

// Verify tracked patterns
git lfs track

اضافه کردن و کامیت فایل‌ها

git add .gitattributes
git add assets/largefile.psd
git commit -m "Add large PSD file"
git push origin main

اشتباهات رایج

  • نصب نکردن Git LFS قبل از کلون
  • ردیابی فایل‌های منفرد به جای نوع فایل
  • کامیت مستقیم فایل‌های بزرگ بدون LFS
  • نادیده گرفتن تغییرات .gitattributes
  • Push کردن فایل‌های خیلی بزرگ و رد شدن توسط پلتفرم

بهترین شیوه‌ها

  • نوع فایل را ردیابی کنید، نه فایل‌های منفرد
  • فایل .gitattributes را commit کنید تا تیم شما به درستی ردیابی کند
  • فایل‌های باینری که زیاد تغییر می‌کنند را در تاریخچهٔ معمولی ذخیره نکنید
  • برای مخزن‌های بزرگ از shallow clone یا sparse checkout استفاده کنید
  • به‌طور دوره‌ای اشیاء قدیمی را پاک کنید: git lfs prune

تکنیک‌های پیشرفته

  • تبدیل فایل‌های بزرگ موجود در تاریخچه: git lfs migrate
  • قفل کردن فایل‌ها برای ویرایش گروهی: git lfs lock
  • ادغام با CI/CD برای pull فقط در صورت نیاز