Git submodule’lari
Git submodule’lari
Git submodule’lari nima?
Git submodule’lari bitta Git repozitoriysini boshqasining ichiga ichki katalog sifatida kiritish imkonini beradi.
Bu alohida repozitoriylarda boshqariladigan kutubxonalar yoki bog‘liqliklarni qo‘shish uchun foydali, bunda ularning commit tarixi alohida saqlanadi.
Nega submodule’lardan foydalanish kerak?
Submodule’lar quyidagi hollarda foydali:
- Boshqa loyihadagi koddan qayta foydalanmoqchi bo‘lganingizda
- Kutubxona yoki bog‘liqlikni muayyan commit’da kuzatmoqchi bo‘lganingizda
- Loyihalar tarixini alohida saqlamoqchi bo‘lganingizda
Submodule’ni qanday qo‘shish mumkin
Loyihangizga submodule qo‘shish uchun quyidagidan foydalaning:
Misol: Submodule qo‘shish
git submodule add https://github.com/example/library.git libs/library
Bu libs/library ichki katalogini yaratadi va .gitmodules faylini submodule ma’lumotlari bilan yangilaydi.
Submodule’lari bo‘lgan repozitoriyni qanday klonlash mumkin
Submodule’lari bo‘lgan repozitoriyni klonlaganingizda, ularning tarkibini alohida yuklab olishingiz kerak:
Misol: Submodule’larni ishga tushirish (init) va yangilash
git submodule init
git submodule update
Yoki klonlash vaqtida hammasini birdaniga bajaring:
Misol: Submodule’lar bilan klonlash
git clone --recurse-submodules https://github.com/user/repo.git
Submodule holatini qanday tekshirish mumkin
Submodule’laringizning joriy commit’i va holatini ko‘rish uchun quyidagidan foydalaning:
Misol: Submodule holati
git submodule status
Barcha submodule’larda buyruqlarni qanday ishga tushirish mumkin
Har bir submodule’da buyruq ishga tushirishingiz mumkin. Masalan, ularning holatini tekshirish uchun:
Misol: foreach
git submodule foreach git status
Submodule’larni qanday yangilash mumkin
Submodule’larni ularning masofaviy repozitoriysidagi eng so‘nggi commit’gacha yangilash uchun:
Misol: Barcha submodule’larni yangilash
git submodule update --remote
Submodule’ni qanday olib tashlash mumkin
Submodule’ni olib tashlash uchun:
.gitmodulesfaylidan tegishli bo‘limni o‘chiring- Submodule katalogini ishchi daraxtingizdan (working tree) olib tashlang
git rm --cached path/to/submodulebuyrug‘ini ishga tushiring
.gitmodules haqida
.gitmodules fayli barcha submodule’lar va ularning yo‘llarini kuzatib boradi. Submodule’larni ko‘chirsangiz yoki olib tashlasangiz, bu faylni tahrirlang.
Misol: .gitmodules fayli
[submodule "libs/library"] path = libs/library url = https://github.com/example/library.git
Muammolarni bartaraf etish va eng yaxshi amaliyotlar
- Agar klonlashdan keyin submodule’lar bo‘sh bo‘lsa,
git submodule update --init --recursivebuyrug‘ini ishga tushiring. - Agar submodule URL’ini o‘zgartirsangiz,
.gitmodulesva.git/configfayllarining ikkalasini ham yangilang. - Submodule’lar har doim eng so‘nggisiga emas, balki muayyan commit’ga ishora qiladi — yangi o‘zgarishlarni olmoqchi bo‘lsangiz, yangilashni unutmang.
- Submodule’lardan qat’iy versiyada kuzatmoqchi bo‘lgan tashqi loyihalar uchun foydalaning. Oddiyroq ehtiyojlar uchun Git subtree yoki fayllarni nusxalash kabi muqobil yo‘llarni ko‘rib chiqing.
Eslatma: Submodule’lar kuchli vosita, lekin ularni boshqarish murakkab bo‘lishi mumkin.
Ulardan faqat boshqa loyihani muayyan commit’da kuzatish haqiqatan zarur bo‘lsagina foydalaning.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
