Git katta fayllar ombori (LFS)
Git LFS
Git LFS nima?
Git LFS (Large File Storage) — katta fayllarni (masalan, videolar, rasmlar yoki ma’lumotlar to‘plamlarini) samarali boshqarishga yordam beradigan Git kengaytmasi.
LFS katta fayllarni to‘g‘ridan-to‘g‘ri repozitoriyingizda saqlash o‘rniga repozitoriyda kichik ko‘rsatkich (pointer) faylni saqlaydi, haqiqiy tarkibni esa alohida LFS serverida saqlaydi.
Bu juda katta fayllar bilan ishlasangiz ham repozitoriyingizni tez va ixcham saqlaydi.
Repozitoriyni klonlagan har bir kishi ko‘rsatkich faylni oladi, Git LFS esa haqiqiy fayl tarkibini kerak bo‘lganda yuklab oladi.
.gitattributes haqida batafsil ma’lumot uchun maxsus sahifaga qarang.
Git LFS’dan qachon foydalanish kerak
- Katta fayllarni (media, ma’lumotlar to‘plamlari, binar fayllar) versiyalash kerak bo‘lganda
- Loyihangiz standart Git xostingining fayl hajmi cheklovlaridan oshib ketganda
- Repozitoriyingiz hajmini boshqariladigan va tez holda saqlamoqchi bo‘lganingizda
Git LFS’ni o‘rnatish
- Git LFS’ni git-lfs.github.com saytidan yuklab oling va o‘rnating.
- Repozitoriyingizda LFS’ni ishga tushiring (initialize):
Misol
git lfs install
Fayllarni LFS bilan kuzatish
- Git LFS’ga qaysi fayllarni boshqarishni ularni “kuzatish” (track) orqali ayting. Masalan, barcha Photoshop fayllarini kuzatish uchun:
Misol: .psd fayllarni kuzatish
git lfs track "*.psd"
Istalgan fayl turini kuzatishingiz mumkin. Mana yana bir nechta misol:
git lfs track "*.zip"
git lfs track "data/*.csv"
git lfs track "images/*.{png,jpg}"
LFS qanday ishlaydi (.gitattributes va ko‘rsatkichlar)
Fayl turini LFS bilan kuzatganingizda, Git .gitattributes fayliga qoida qo‘shadi. Bu Git’ga ushbu fayllar uchun LFS’dan foydalanishni bildiradi.
Misol: .gitattributes yozuvi
*.psd filter=lfs diff=lfs merge=lfs -text
Kuzatiladigan faylni qo‘shib, commit qilganingizda, Git repozitoriyingizda kichik “ko‘rsatkich” (pointer) faylni saqlaydi. Haqiqiy tarkib esa LFS serveriga yuklanadi.
LFS fayllari bo‘lgan repozitoriyni klonlasangiz yoki pull qilsangiz, Git haqiqiy tarkibni LFS serveridan yuklab oladi (agar sizda LFS o‘rnatilgan bo‘lsa).
LFS fayllarini qo‘shish, commit va push qilish
- Fayllarni odatdagidek qo‘shing:
git add largefile.psd - Commit qiling:
git commit -m "Add large file" - Push qiling:
git push origin main
Haqiqiy fayl ma’lumotlari LFS serverida saqlanadi, repozitoriyingizda esa ko‘rsatkich fayl bo‘ladi.
LFS holatini tekshirish
Repozitoriyingizdagi qaysi fayllar LFS tomonidan boshqarilishini ko‘ring:
Misol: LFS fayllarini ro‘yxat qilish
git lfs ls-files
Fayllarni LFS kuzatuvidan chiqarish/olib tashlash
.gitattributesfaylini tahrirlang va tegishli qatorni olib tashlang yoki o‘zgartiring.- Untrack buyrug‘ini ishga tushiring:
Misol: Faylni kuzatuvdan chiqarish
git lfs untrack "*.psd"
git add .gitattributes
O‘zgarishni commit qiling. Fayl endi LFS tomonidan boshqarilmaydi (lekin mavjud versiyalari LFS’da saqlanib qoladi).
Maslahatlar va eng yaxshi amaliyotlar
- LFS’dan faqat oddiy Git uchun juda katta yoki juda tez-tez o‘zgaradigan fayllar uchun foydalaning.
- Undan foydalanishdan oldin xosting provayderingiz LFS’ni qo‘llab-quvvatlashini tekshiring (ayniqsa, yopiq repozitoriylar uchun).
- LFS xotira kvotangizni kuzatib boring. Bepul tariflar ko‘pincha cheklangan bo‘ladi.
Muammolarni bartaraf etish
- Agar repozitoriyni klonlab, haqiqiy tarkib o‘rniga ko‘rsatkich fayllarni ko‘rsangiz, Git LFS o‘rnatilganiga ishonch hosil qiling va
git lfs pullbuyrug‘ini ishga tushiring. - Agar LFS’ni qo‘llab-quvvatlamaydigan masofaviy repozitoriyga push qilsangiz, xato olasiz.
- Agar LFS kvotangizdan oshib ketsangiz, ba’zi fayllar yuklanmasligi mumkin.
Ogohlantirishlar
- Hamma xosting provayderlari ham LFS’ni qo‘llab-quvvatlamaydi. Foydalanishdan oldin tekshiring.
- Bepul tariflarda LFS xotirasi ko‘pincha cheklangan bo‘ladi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
