Git Worktree: Bir Vaqtning O'zida Bir Nechta Branchda Ishlash
Muallif: Javohir Abdullayev · · Dasturlash

Git Checkout va Stash Cheklovlaridan Charchadingizmi?
Tasavvur qiling: siz yangi murakkab funksiya (feature) ustida ishlayapsiz. O'nlab fayllar o'zgargan, frontend paketlari qayta o'rnatilgan va server ishlab turibdi. Shu paytda mijoz yoki jamoa yetakchisi favqulodda xatolik (hotfix) chiqqanini va uni darhol to'g'rilash kerakligini aytib qoldi.
Odatda dasturchilar nima qiladi? git stash buyrug'ini ishlatadi, main branchga o'tadi, hotfixni yozadi, commit qiladi va yana orqaga qaytib git stash pop qiladi. Ammo bu jarayonda ko'pincha konfliktlar kelib chiqadi, build fayllari buziladi yoki node_modules / venv paketlarini qaytadan tiklashga to'g'ri keladi. Bu esa qimmatli vaqtni va diqqatni o'g'irlaydi.
Aynan shu muammoni tubdan hal qilish uchun Git tizimida juda kuchli, lekin ko'pchilik e'tibordan chetda qoldiradigan vosita bor — Git Worktree.
Git Worktree Nima va U Qanday Ishlaydi?
Odatdagi Git repozitoriyasida sizda faqat bitta ishchi katalog (working directory) bo'ladi va siz git checkout yoki git switch orqali faqat bitta branchni ko'ra olasiz. Git Worktree esa bitta loyiha tarixi (.git papkasi) asosida bir vaqtning o'zida diskda bir nechta alohida ishchi papkalarni ochish imkonini beradi.
Bu degani, siz loyihani qayta git clone qilmasdan, kompyuteringiz xotirasini ortiqcha band qilmasdan, bir vaqtda 3-4 xil branchni alohida papkalarda ochib qo'yishingiz va ularning har birida mustaqil ishlashingiz mumkin.
Git Worktree Qaysi Holatlarda Ishni Tezlashtiradi?
- Favqulodda Hotfixlar: Asosiy kodingizni to'xtatmasdan, 10 soniyada alohida papkada
hotfixbranchini ochib, muammoni hal qilasiz. - Code Review va PR Tekshirish: Jamoadoshingizning kodini tekshirish uchun o'z ishingizni chala qoldirish shart emas. PR uchun alohida worktree ochib, loyihani ishga tushirib ko'rasiz.
- Uzoq Davom Etuvchi Build va Testlar: Bir branchda testlar yoki Docker build ketayotgan paytda, ikkinchi worktree orqali boshqa vazifani davom ettiraverasiz.
- Versiyalarni Solishtirish: Ikkita turli versiya yoki arxitekturani yonma-yon ochib, ularning ishlashini taqqoslash osonlashadi.
Amaliy Qo'llanma: Asosiy Buyruqlar
Git Worktree bilan ishlash nihoyatda oson. Keling, eng zarur buyruqlarni ko'rib chiqamiz.
1. Yangi Worktree Qo'shish
Mavjud branch asosida yangi papka yaratish:
git worktree add ../loyiha-hotfix hotfix-branchAgar yangi branch ochib, uni darhol yangi papkaga bog'lamoqchi bo'lsangiz:
git worktree add -b yangi-feature ../loyiha-feature mainUshbu buyruq asosiy repozitoriyadan bir pog'ona yuqorida loyiha-feature nomli papka ochadi va unga yangi-feature branchini bog'laydi.
2. Barcha Faol Worktree-larni Ko'rish
Ayni paytda qaysi papkalar qaysi branchga ulanganini bilish uchun:
git worktree listBu buyruq barcha papkalar yo'li va ularning joriy commit HEAD ko'rsatkichlarini jadval ko'rinishida chiqaradi.
3. Ish Tugagach Worktree-ni O'chirish
Hotfix muvaffaqiyatli topshirilgach, vaqtincha ochilgan papkani xavfsiz tozalash mumkin:
git worktree remove ../loyiha-hotfixAgar papkani qo'lda o'chirib yuborgan bo'lsangiz, Git ichki ma'lumotlarini tozalash uchun quyidagini bajaring:
git worktree pruneOptimal Loyiha Tuzilmasi: Bare Repository Usuli
Professional dasturchilar Git Worktree bilan ishlashda bare repository usulidan foydalanadilar. Bu loyihani boshidanoq tartibli boshqarishga yordam beradi:
- Loyihani bare rejimida klon qiling:
git clone --bare git@github.com:user/loyiha.git .bare - Asosiy papkaga
.gitfaylini yarating va unga bare manzilni ko'rsating. - Keyin har bir vazifa uchun alohida worktree oching:
main,feature/login,hotfix/payme-error.
Natijada, siz har bir vazifa uchun toza, mustaqil va bir-biriga xalaqit bermaydigan muhitga ega bo'lasiz. IDE (masalan, VS Code yoki PyCharm) orqali har bir papkani alohida oynada ochib bemalol ishlayverasiz.
Xulosa
Git Worktree — dasturchining kunlik ish unumdorligini oshiruvchi eng qulay instrumentlardan biri. U sizni context switching (diqqatni bir vazifadan ikkinchisiga o'tkazish) vaqtida yuzaga keladigan chalkashliklardan, keraksiz git stash nizolaridan xalos qiladi. Ushbu buyruqlarni bugunoq loyihalaringizda sinab ko'ring va ish tezligingiz sezilarli oshganini his qiling.
Teglar: #Git #Dasturlash #Samaradorlik #DevOps #Workflow