Blog

Claude Code’da Git worktree: parallel seanslar

Markdown

--worktree, .worktreeinclude, worktree.baseRef va subagent izolyatsiyasidan qanday foydalanish. Tarmoqlardan farqlari, worktree’larni tozalash va keng tarqalgan xatolar.

Maqolani to‘liq o‘qish

Ailoot bilan ishlashga oid amaliy ma’lumotlar hujjatlarda berilgan.

Claude Code’da git worktree nima

Asosiy xulosa

Git worktree — shu repozitoriydagi boshqa tarmoq uchun alohida ish katalogi. claude --worktree <name> buyrug‘i .claude/worktrees/<name>/ ichida worktree’ni avtomatik yaratadi va unda Claude Code’ni ishga tushiradi. Ikki terminal → ikki seans → diskdagi turli fayllar, o‘zaro xalaqit yo‘q. Claude Code v2.0+ versiyasida o‘rnatilgan holda mavjud; sirlar uchun .worktreeinclude, asosiy tarmoqni tanlash uchun esa worktree.baseRef orqali sozlanadi.

Bitta jildda bir nechta agentni parallel ishga tushirish 2026-yil sur’atidagi vibe-codingning asosiy og‘riqli nuqtasi. AI agentlari kodni odam kim nimaga tegayotganini kuzatib ulgurishidan tezroq yozadi. Fayllar izolyatsiya qilinmasa, bitta katalogda ikkita Claude Code seansini parallel ishga tushirish bir seans ikkinchisining ishini ustidan yozishi bilan tugaydi.

Git worktree bu muammoni fayl tizimi darajasida hal qiladi. Ishlaydigan bitta asosiy katalogingiz bo‘ladi. claude --worktree feature-auth buyrug‘i alohida tarmoqda .claude/worktrees/feature-auth/ papkasini yaratib, Claude Code’ni shu yerda ishga tushiradi. Fayllar izolyatsiya qilingan. Bitta seansdagi o‘zgarishlar ularni aniq birlashtirmaguningizcha boshqasiga ko‘rinmaydi.

Anthropic’ning rasmiy hujjatlarida bu quyidagicha tushuntirilgan:

Har bir Claude Code seansini o‘z worktree’sida ishga tushirsangiz, bir seansdagi tahrirlar boshqa seansdagi fayllarga hech qachon ta’sir qilmaydi. Bitta terminalda xususiyat yarata turib, boshqasida xatoni tuzatishingiz mumkin.

— Anthropic hujjatlari, https://code.claude.com/docs/en/worktrees

O‘zingizni tekshirish uchun maslahat: commit qilganingizda fayllarning yarmi boshqa birovning ishi bo‘lib chiqqan bo‘lsa, sizga worktree kerak.

git worktree oddiy tarmoqdan nimasi bilan farq qiladi

Asosiy xulosa

Oddiy git checkout bir xil papkadagi ishchi nusxani almashtiradi — tarmoqqa qaytmaguningizcha eski fayllar diskdan yo‘qoladi. git worktree add esa boshqa tarmoq uchun birinchisining yonida ikkinchi papka yaratadi. Ikkala tarmoq ham diskda bir vaqtning o‘zida turadi; ular orasida oddiy cd bilan o‘tasiz. Ichkarida bitta .git repozitoriy, umumiy tarix va umumiy remote bo‘ladi. Shunchaki bir nechta ishchi nusxa.

Standart Git jarayoni: main tarmog‘idasiz va git checkout feature-x buyrug‘ini bajarasiz — Git ishchi nusxadagi fayllarni almashtiradi. Ishlayotgan npm run dev jarayoni package.json o‘zgarib ketgani uchun buziladi. Commit qilinmagan o‘zgarishlarni stash qilib, IDE qayta indekslashini kutasiz. Qaytib o‘tasiz va hammasi yana ustidan yoziladi, shuning uchun yana stash va pop qilishingizga to‘g‘ri keladi.

Git worktree sizga boshqa yo‘l beradi: tarmoqlar orasida bitta papkani almashtirish o‘rniga, boshqa tarmoq uchun ikkinchi papka yaratasiz. git worktree add ../project-feature-x feature-x buyrug‘i feature-x tarmog‘idagi fayllar bilan ../project-feature-x/ katalogini yaratadi. main asl papkada qoladi, dev-server esa ishlashda davom etadi.

Parametrgit checkout tarmog‘igit worktree add
Ishchi nusxa fayllariUstidan yoziladiYangi papkada paydo bo‘ladi
Ikki tarmoqda parallel ishlashYo‘qHa
Commit qilinmagan o‘zgarishlargit stash kerakHech narsa qilish shart emas
O‘tish tezligiFarq hajmiga bog‘liqShunchaki cd
Disk hajmi1×N× (har bir tarmoq uchun fayllarning bittadan nusxasi)

Avval Claude Code’da worktree rejimini qo‘lda sozlash kerak edi: git worktree add, keyin cd, keyin claude — va har bir terminalda shu amallarni takrorlash. --worktree bayrog‘i (-w ham) uchalasini bitta buyruqda bajaradi.

Birinchi parallel seansni ishga tushirish: --worktree bayrog‘i

Asosiy xulosa

claude --worktree feature-auth buyrug‘i .claude/worktrees/feature-auth/ ichida worktree yaratadi, origin/HEAD dan worktree-feature-auth tarmog‘ini yaratadi va Claude Code’ni shu yerning o‘zida ishga tushiradi. Qo‘lda git worktree add yoki cd qilish shart emas. Yon terminalda boshqa nom bilan takrorlang — ikkita mustaqil seans hosil bo‘ladi. Nom bermasangiz (claude --worktree), Claude bright-running-fox kabi tasodifiy nom yaratadi.

Eng sodda misol. Birinchi terminalni loyiha ildizida oching:

claude --worktree feature-auth

Claude Code uchta ishni bajaradi:

  1. origin/HEAD (odatda standart tarmog‘ingiz) nusxasi bilan .claude/worktrees/feature-auth/ ni yaratadi.
  2. Yangi worktree-feature-auth tarmog‘ini yaratadi.
  3. Seansni shu papkada boshlaydi.

Xuddi shu repozitoriy ildiz papkasida ikkinchi terminalni oching:

claude --worktree bugfix-123

Bo‘ldi. Ikki Claude Code seansi, diskda turli fayllar, turli Git tarmoqlari. Birinchisida autentifikatsiyani yozib, ikkinchisida yiqilayotgan testni tuzatsangiz, ular jismonan bir-biriga xalaqit bera olmaydi.

Nom yozishni istamasangiz, Claude o‘zi topadi:

claude --worktree
# → .claude/worktrees/bright-running-fox/ kabi biror narsani yaratadi

Git’ni endi o‘rganayotganlar uchun maslahat: .claude/worktrees/ ni .gitignore ga qo‘shing. Aks holda, asosiy papkada git status bajarganingizda, barcha worktree’larning tarkibi kuzatilmaydigan fayllar sifatida ko‘rinadi:

# .gitignore
.claude/worktrees/

Oldini olish kerak bo‘lgan muammo: yangi katalogda birinchi --worktree ishga tushirishdan avval, odatiy claude buyrug‘i bilan (bayroqsiz) kiring va ish maydoniga ishonch dialogini tasdiqlang. Aks holda, -p bilan headless rejimida birga ishlatganingizda ham, bayroq “trust not accepted” xatosi bilan muvaffaqiyatsiz bo‘ladi.

Worktree’lar qayerda joylashadi va ularni qanday topish mumkin

Asosiy xulosa

Standart bo‘yicha barcha worktree’lar repozitoriy ildizi yonidagi .claude/worktrees/<name>/ ichida joylashadi. Ro‘yxatni ko‘rish uchun git worktree list ni bajaring. Worktree’ga qo‘lda kirish uchun cd .claude/worktrees/feature-auth dan foydalaning. Claude seansi ichida almashish uchun undan “boshqa worktree’ga o‘tish”ni so‘rang; u ichki EnterWorktree vositasidan foydalanadi. Eski worktree diskda o‘zgarishsiz qoladi.

Standart joylashuv o‘zgarmaydi: repozitoriy ildizidagi .claude/worktrees/<value>/. Loyihangiz ~/dev/my-app/ ichida bo‘lsa, feature-auth worktree ~/dev/my-app/.claude/worktrees/feature-auth/ ichida bo‘ladi.

Nostandart joylashuvlar uchun (masalan, worktree’ni repozitoriydan tashqarida istasangiz) WorktreeCreate hook’i mavjud — bu haqda quyida, SVN va Mercurial haqidagi bo‘limda batafsilroq.

Bitta Claude seansi ichida boshqa mavjud worktree’ga o‘tishingiz mumkin. Chatda shunchaki “.claude/worktrees/bugfix-123 ga o‘t” deb ayting, shunda Claude EnterWorktree vositasini chaqiradi. Joriy papka o‘zgarishsiz qoladi — xuddi shu yo‘l bilan unga qaytishingiz mumkin.

Standart Git buyrug‘i barcha worktree’lar, jumladan asosiy va qo‘lda yaratilgan worktree’lar ro‘yxatini ko‘rsatadi:

git worktree list

Natija taxminan quyidagicha ko‘rinadi:

/home/user/dev/my-app                  abc1234 [main]
/home/user/dev/my-app/.claude/worktrees/feature-auth  def5678 [worktree-feature-auth]
/home/user/dev/my-app/.claude/worktrees/bugfix-123    9876fed [worktree-bugfix-123]

.env va sirlarni nusxalash: .worktreeinclude fayli

Asosiy xulosa

Worktree — yangi checkout. .gitignore ichidagi fayllar (.env, .env.local, lokal sozlamalar) yangi papkada bo‘lmaydi. Ularsiz npm run dev yoki prisma db push ishlamaydi. Loyiha ildizidagi .worktreeinclude fayli .gitignore sintaksisidan foydalanadi va Claude Code’ga har bir yangi worktree’ga avtomatik nusxalanadigan fayllarni ko‘rsatadi. U --worktree, subagent worktree’lari va desktop ilovasi seanslarida qo‘llanadi.

--worktree yangi papka yaratganda, unga faqat Git’ga commit qilingan narsalar kiradi. API kalitlari bo‘lgan .env va lokal sozlamali .env.local .gitignore da, shuning uchun worktree’da bo‘lmaydi. Natijada, birinchi npm run dev darhol “MISSING DATABASE_URL” xatosi bilan muvaffaqiyatsiz tugaydi.

Qo‘lda qilinadigan yechim — har bir --worktree dan keyin .env ni nusxalash. Bir marta ishlaydi, keyin esa unutiladi. Anthropic yechimi — loyiha ildizidagi .worktreeinclude faylida Git e’tiborsiz qoldiradigan va har bir yangi worktree’ga avtomatik nusxalanadigan fayllarni sanab chiqish.

Repozitoriy ildizida .worktreeinclude faylini yarating:

.env
.env.local
config/secrets.json

Sintaksis .gitignore bilan bir xil. Glob andozalaridan foydalanishingiz mumkin:

.env*
*.local
config/*.json
.vscode/settings.json

Anthropic tasodifiy xatolarning oldini olish uchun aniq qoida beradi:

Faylda gitignore sintaksisi ishlatiladi. Faqat andozaga mos keladigan va Git e’tiborsiz qoldiradigan fayllar nusxalanadi. Git kuzatadigan fayllar hech qachon takroran nusxalanmaydi.

— Anthropic hujjatlari, https://code.claude.com/docs/en/worktrees

Boshqacha aytganda, .worktreeinclude orqali package.json ni tasodifan nusxalab bo‘lmaydi — u .gitignore da yo‘q. U yerga istalgan andozani xavfsiz kiritish mumkin.

Xuddi shu .worktreeinclude uch rejimda ishlaydi: qo‘lda --worktree, subagentlar uchun avtomatik worktree’lar (quyida ko‘ring) va Claude desktop ilovasidagi seanslar.

Kodni ko‘rib chiqish uchun pull request’dan worktree yaratish

Asosiy xulosa

claude --worktree "#1234" buyrug‘i origin’dan pull request #1234 ni olib keladi va PR tarmog‘i bilan .claude/worktrees/pr-1234/ ichida worktree yaratadi. To‘liq URL’ni ham berishingiz mumkin: claude --worktree https://github.com/OWNER/REPO/pull/1234. Kodni ko‘rib chiqish uchun foydali: PR’ni o‘z papkasida oching, Claude esa testlarni ishga tushirishi, loglarni o‘qishi va izoh yozishi mumkin; asosiy repozitoriy esa o‘zgarishsiz qoladi.

Kod ko‘rib chiqishning odatiy holati: hamkasbingiz PR yubordi; kodni tekshirishingiz, testlarni ishga tushirishingiz va izoh qoldirishingiz kerak. Oddiy git checkout pull/1234/head bilan ishchi nusxani yana almashtirasiz va faol seansingizni buzib qo‘yasiz.

--worktree bayrog‘i bilan buni bitta buyruqda bajarasiz:

claude --worktree "#1234"

Nima sodir bo‘ladi: Claude Code git fetch origin pull/1234/head ni bajaradi, .claude/worktrees/pr-1234/ ichida worktree yaratadi va PR tarmog‘ini checkout qiladi. Seans boshlanadi. Darhol undan “farqni o‘qi, testlarni ishga tushir va mantiqiy xatolarni top” deb so‘rashingiz mumkin — Claude ishlayotganda, main dagi asosiy seansingiz ishlashda davom etadi.

Muqobil sintaksis — pull request’ning to‘liq URL’i:

claude --worktree https://github.com/OWNER/REPO/pull/1234

Haqiqiy loyihada qo‘llash: claude --worktree "#N" ni o‘zingizning kod ko‘rib chiquvchi subagentingiz bilan birlashtirsangiz, bir-ikki daqiqada avtomatik ko‘rib chiqish olasiz. Uni orqa fonda ishga tushiring, asosiy oynada ishlashda davom eting va natijaga claude agents orqali qayting.

Asosiy tarmoq: fresh yoki head uchun worktree.baseRef

Asosiy xulosa

Standart bo‘yicha worktree origin/HEAD dan — remotedan so‘nggi sinxronlangan commit’dan — tarmoqlanadi. Bu xavfsiz, “toza” boshlanishdir. Mahalliy push qilinmagan commit’lar kerak bo‘lsa, worktree.baseRef: "head" ni belgilang. HEAD commit’ni bildiradi. Commit qilinmagan kuzatiladigan tahrirlar asl ish nusxasida qoladi va alohida aniq ko‘chirishni talab qiladi. Subagent main’ga o‘tmasdan joriy xususiyatingiz ustida ishlashi kerak bo‘lganda foydali. Faqat fresh yoki head qiymatlarini qabul qiladi; ixtiyoriy ref’lar qo‘llanmaydi.

Standart sozlama shunday: har bir yangi worktree origin/HEAD dan boshlanadi. Afzalligi — toza boshlanish bo‘lib, u CI ko‘radigan holatga mos kelishi kafolatlanadi. Kamchiligi esa, joriy tarmog‘ingizda commit qilinmagan o‘zgarishlar yoki remotedagidan ortiq bir nechta lokal commit bo‘lsa, ular yangi worktree’ga kiritilmaydi.

Worktree’ni joriy mahalliy HEAD commit’idan boshlash uchun .claude/settings.json ga (yoki global sozlamalarga) qo‘shing:

{
  "worktree": {
    "baseRef": "head"
  }
}

Endi claude --worktree experimental-feature joriy mahalliy HEAD dan boshlanadi. Xususiyatingizda hali push qilinmagan mahalliy commit’lar bo‘lsa foydali. Commit qilinmagan kuzatiladigan tahrirlar kirmaydi. Subagentga ular kerak bo‘lsa, kerakli o‘zgarishlarni saqlab aniq ko‘chiring va target diff’ni tekshiring. Buni ignore qilingan mahalliy fayllarga mo‘ljallangan .worktreeinclude bilan aralashtirmang.

Sozlama aynan ikkita qiymatni qabul qiladi: "fresh" (= origin/HEAD) va "head" (= lokal HEAD). "feature-branch" yoki commit xeshi kabi ixtiyoriy ref’lar yo‘q — bu imkoniyatlar soni nazoratsiz ko‘payib ketmasligi uchun ataylab qo‘yilgan cheklov.

Subagentlarni avtomatik izolyatsiya qilish: isolation: worktree

Asosiy xulosa

Claude Code’dagi subagent — bitta vazifani bajaradigan ixtisoslashgan agent (kod ko‘rib chiqish, refaktoring, tadqiqot). Bitta seansdan bir nechta subagentni parallel ishga tushirsangiz, standart bo‘yicha ular bir papkada ishlaydi va bir-birining fayllari ustidan yozishi mumkin. Subagent frontmatter’iga isolation: worktree qo‘shsangiz, har biri uchun vaqtinchalik worktree yaratiladi; hech narsa commit qilmagan bo‘lsa, ish yakunida toza qilib o‘chiriladi.

Claude’ga “uchta subagent ishga tushir: biri ma’lumotlar bazasini o‘qisin, ikkinchisi API’ni ko‘rsin, uchinchisi testlarni tekshirsin” desangiz, standart bo‘yicha ularning uchalasi ham ishchi nusxangizda ishlaydi. Hatto ikkitasi bir vaqtda bitta faylga yozsa ham, ziddiyat yuzaga keladi. Yechim — har biriga o‘z worktree’sini avtomatik berish.

1-usul: og‘zaki so‘rang. Suhbatda Claude’ga shunday yozing:

Use worktrees for your agents.

Claude ushbu seansda keyingi barcha subagentlarga izolyatsiyani qo‘llaydi.

2-usul: buni subagentning o‘zida aniq belgilang. Subagent faylida (masalan, .claude/agents/code-reviewer.md) frontmatter’ga maydon qo‘shing:

---
name: code-reviewer
description: Reads the diff and writes code review comments
isolation: worktree
---

You're a meticulous reviewer. Read the diff and look for logic errors...

Endi ushbu subagent har ishga tushganda .claude/worktrees/ ichida vaqtinchalik worktree oladi. Subagent hech narsa yozmagan bo‘lsa, ishini tugatgach papka avtomatik o‘chiriladi. Commit qilinmagan o‘zgarishlar bo‘lsa, Claude ularni qoldirish yoki olib tashlashni so‘raydi.

Subagent worktree’larining asosiy tarmog‘i --worktree dagi bilan bir xil: standart bo‘yicha origin/HEAD; worktree.baseRef: head bo‘lganda lokal HEAD.

Qaror matritsasi: worktree, /bg, subagent yoki Agent View

Asosiy xulosa

Ko‘pincha chalkashtiriladigan Claude Code’ning to‘rtta mexanizmi. Worktree — fayl izolyatsiyasi (disk). /bg — fon seansi (kontekst va tokenlar). Subagent — bir martalik ixtisoslashgan agent (so‘rov matni va vositalar). Agent View — barcha seanslar uchun boshqaruv paneli (UI). Ularni birga ishlatish mumkin: /bg worktree’ni avtomatik yaratadi, isolation: worktree bo‘lgan subagent vaqtinchalik worktree’da boshlanadi, Agent View esa uchalasini bitta ro‘yxatda qatorlar sifatida ko‘rsatadi.

VositaNimani izolyatsiya qiladiQachon foydalaniladi
claude --worktree <name>Fayllar (alohida papka + tarmoq)Turli terminallarda N ta seansni qo‘lda parallel ishlatmoqchi bo‘lsangiz
/bg (yoki Ctrl+B)Kontekst va vaqtJoriy oynani band qilmaydigan uzoq vazifa. Ichkarida worktree yaratiladi
isolation: worktree bilan subagentBitta seans ichidagi fayllarBitta so‘rov N agentga vazifa beradi va ularning bir-birining ishini ustidan yozishidan himoya kerak bo‘lsa
claude agents (Agent View)Hech narsani emas, UIBarcha ishlayotgan / pauzadagi / tugallangan seanslarni bitta boshqaruv panelida ko‘rmoqchi bo‘lsangiz
/goalAvtonomiyani boshqarishClaude’dan sizning navbatlar orasidagi so‘rovlaringizsiz shart bajarilguncha ishlashini istasangiz

Odatdagi birikmalar:

  • “2 ta xususiyatni qo‘lda parallel ishga tushirish” — ikkita terminal, har birida claude --worktree. Eng sodda holat.
  • “Ilovani yopaman, kechasi bilan refaktoringni ishga tushir” — /bg + /goal va yakunlash sharti. Seans oynangizdan mustaqil ishlaydi.
  • “Bitta so‘rov, uchta parallel tekshiruv” — isolation: worktree bilan uchta subagent. Har biri o‘z sandbox’ida.
  • “Hozir nima ishlayapti?” — claude agents. “running,” “blocked” va “done” filtrlari bo‘lgan barcha seanslar boshqaruv paneli.

Worktree bilan ishlashda uchraydigan 5 ta muammo

Asosiy xulosa

Eng ko‘p uchraydigan muammolar: .worktreeinclude ni unutib, muhit ishlamay qolishi; worktree’ni oddiy tarmoq bilan chalkashtirib, commit qilinmagan o‘zgarishlarni yo‘qotish; 5+ ta parallel seansni ochib, qaysi biri qayerdaligini unutish; cleanupPeriodDays ni sozlamay, keraksiz papkalar to‘planishiga yo‘l qo‘yish; yangi katalogdagi ishonch dialogini unutib, --worktree bayrog‘i xato bilan muvaffaqiyatsiz bo‘lishi.

1. Worktree ishga tushirildi, .env yo‘q, hech narsa ishlamayapti. Eng ko‘p uchraydigan muammo. Worktree — Git e’tiborsiz qoldirgan fayllarsiz yangi checkout. Yechim — worktree rejimini sozlaganingiz zahoti .env* va zarur lokal sozlamalar bilan .worktreeinclude faylini qo‘shish. Fayl .claude/ ichida emas, repozitoriy ildizida ekanini tekshiring.

2. Asosiy tarmoqqa o‘tmoqchi bo‘lib, ildizga cd buyrug‘ini berasiz va worktree’dagi commit qilinmagan o‘zgarishlarni yo‘qotaman deb o‘ylaysiz. Ildiz papka va worktree — turli ishchi nusxalar. cd bilan qaytdingiz; worktree’dagi o‘zgarishlar o‘z joyida qoldi — hech qayerga ketmadi. Ammo adashib, worktree’daman deb asosiy papkada git stash bajarsangiz, stash kutilgan tarmoqda emas, asosiy tarmoqda yaratiladi.

3. 5 ta parallel seansni ishga tushirdingiz va har biri nima qilayotganini eslay olmaysiz. Anthropic hujjatlarida ko‘pchilik dasturchilar 2–3 tadan ortiq seansni aqliy jihatdan boshqara olmasligi aniq ogohlantirilgan. Yuklama oshganining belgisi — Agent View’ni ochib, har bir agent nima qilayotganini darhol ayta olmaslik. Bir vaqtda ikkita seans bilan cheklaning. Vazifaga ko‘proq kerak bo‘lsa, uni qo‘lda emas, /goal + subagentlar orqali muvofiqlashtiring.

4. -p (headless) rejimida ishga tushirilgan worktree’lar avtomatik tozalanmaydi. claude --worktree feature-x -p "do thing" buyrug‘i interaktiv chiqish so‘rovini ko‘rsatmaydi, shuning uchun Claude “worktree’ni olib tashlaymi?” deb so‘raydigan nuqta bo‘lmaydi. Bunday worktree’lar to‘planadi. Qo‘lda tozalang: git worktree remove .claude/worktrees/feature-x. Yoki 7 kundan eski narsalarni olib tashlaydigan cron skriptidan foydalaning.

5. Yangi papkadagi ishonch dialogi. Repozitoriyni birinchi marta ochib, darhol claude --worktree ni bajarsangiz, buyruq muvaffaqiyatsiz bo‘ladi. claude ni bayroqsiz ishga tushiring, ish maydoniga ishonchni tasdiqlang va chiqing — shundan keyin --worktree ishlaydi. Bu ataylab shunday qilingan: Claude foydalanuvchi roziligisiz birovning loyihasiga kira olmaydi.

Tozalash: nimalar avtomatik o‘chiriladi

Asosiy xulosa

Hech qanday o‘zgarishsiz (--worktree dan yaratilgan commitlar, kuzatilmaydigan fayllar yoki commit qilinmagan o‘zgarishlar yo‘q) worktree’dan chiqqaningizda u avtomatik o‘chiriladi. O‘zgarishlar bo‘lsa, Claude so‘raydi. Subagentlar va /bg dan yaratilgan worktree’lar toza bo‘lsa, sozlamalardagi cleanupPeriodDays muddati tugaganda avtomatik o‘chiriladi. -p dan yaratilgan worktree’lar umuman tozalanmaydi — ularni git worktree remove bilan qo‘lda olib tashlang.

Tozalash tartibi worktree’da nima qilganingiz va seansni qanday boshlaganingizga bog‘liq. Anthropic hujjatlarida uchta holat keltirilgan:

Worktree’da commit qilinmagan o‘zgarishlar, kuzatilmaydigan fayllar yoki yangi commitlar bo‘lmasa, seansdan chiqqaningizda worktree va uning tarmog‘i avtomatik o‘chiriladi. Seans nomlangan bo‘lsa, worktree’ni keyinroq saqlab qolishingiz uchun Claude uni o‘chirish o‘rniga so‘raydi.

— Anthropic hujjatlari, https://code.claude.com/docs/en/worktrees

1-holat: kirdingiz, hech narsa qilmadingiz va chiqdiz — worktree o‘chirildi.

2-holat: ish qildingiz, lekin commit qilmadingiz — chiqqaningizda Claude “saqlash yoki olib tashlash?” deb so‘raydi. “Saqlash” papka va tarmoqni keyin uchun qoldiradi. “Olib tashlash” katalogni commit qilinmagan o‘zgarishlar va yangi commitlar bilan birga o‘chiradi. Bu halokatli amal — odat bo‘yicha “olib tashlash”ni bosmang.

3-holat: -p (headless) bilan ishga tushirdingiz, buyruq tugadi va chiqdi. Worktree qoladi. Uni qo‘lda tozalang:

git worktree remove .claude/worktrees/feature-x

Bundan tashqari, subagent va /bg seanslarining worktree’lari cleanupPeriodDays kundan (sozlama, odatda standart bo‘yicha 30 kun) eski va saqlanmagan ishi bo‘lmasa, fon tozalashi orqali avtomatik o‘chiriladi. --worktree dan yaratilgan worktree’larga avtomatik tozalash tegmaydi — ular sizning mas’uliyatingizda.

SVN, Perforce va Mercurial uchun muqobillar: WorktreeCreate hook’i

Asosiy xulosa

Worktree rejimi standart bo‘yicha git worktree dan foydalanadi. SVN, Perforce, Mercurial va boshqa VCS’lar uchun Claude Code sozlamalaridagi WorktreeCreate va WorktreeRemove hook’lari orqali o‘z mexanizmingizni ulashingiz mumkin. Hook worktree nomini stdin’dan oladi, yaratilgan katalog yo‘lini chiqarishi va 0 chiqish kodi bilan tugashi kerak. O‘z hook’ingizdan foydalansangiz, .worktreeinclude ishlov berilmaydi — lokal fayllarni hook ichida o‘zingiz nusxalashingiz kerak.

Agar repozitoriy Subversion yoki Mercurial’dan foydalansa, --worktree bayrog‘i to‘g‘ridan-to‘g‘ri ishlamaydi. Anthropic ikkita hook orqali kengaytirish nuqtasini taqdim etadi: WorktreeCreate (izolyatsiya qilingan nusxa yaratadi) va WorktreeRemove (uni o‘chiradi).

Rasmiy hujjatlardagi SVN hook’iga misol:

{
  "hooks": {
    "WorktreeCreate": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bash -c 'NAME=$(jq -r .name); DIR=\"$HOME/.claude/worktrees/$NAME\"; svn checkout https://svn.example.com/repo/trunk \"$DIR\" >&2 && echo \"$DIR\"'"
          }
        ]
      }
    ]
  }
}

Hook worktree nomini stdin’dan ({ "name": "feature-auth" }) o‘qiydi, oldindan belgilangan katalogga svn checkout ni bajaradi va yo‘lni stdout’ga chiqaradi — Claude Code undan yangi seansning ishchi katalogi sifatida foydalanadi.

Muhim eslatma: o‘z hook’ingizdan foydalansangiz, .worktreeinclude qo‘llanmaydi. Yangi papkada .env yoki Git e’tiborsiz qoldiradigan boshqa fayllar kerak bo‘lsa, ularni hook skriptining ichida nusxalang.

Keyingi mavzular: parallel ishlashning yonma-yon uch mexanizmi

Asosiy xulosa

Worktree fayllarni izolyatsiya qiladi. /bg kontekst va tokenlarni izolyatsiya qiladi. Subagent vazifa va vositalarni izolyatsiya qiladi. /goal shart bajarilguncha avtonom ishlashni ta’minlaydi. Har biri alohida bitta muammoni hal qiladi. Birgalikda ular aqliy zo‘riqishsiz 3–5 ta parallel vazifani davom ettirish imkonini beradi. Keyin quyidagi havolalar orqali avtonom rejim, maxsus subagentlar va dinamik ish jarayonlariga oid qo‘llanmalarni ko‘rib chiqish mantiqan to‘g‘ri bo‘ladi.

Worktree fayllarni izolyatsiya qiladi. /bg kontekstni izolyatsiya qiladi. Subagentlar vazifani izolyatsiya qiladi. Har bir mexanizm alohida bitta muammoni hal qiladi. Birgalikda ular aqliy zo‘riqishsiz uchdan beshtagacha parallel vazifada ishlash imkonini beradi. Bu 2026-yilda ilg‘or vibe-coding asosidagi ko‘nikmalar to‘plamidir.

Bu mavzuni tabiiy ravishda uchta yaqin mavzu davom ettiradi: /goal va Agent View yordamida avtonom agentni sozlash, vazifalaringiz uchun o‘z subagentlaringizni yaratish va Dynamic Workflows orqali yuzlab agentlarni ishga tushirish haqida.

Ailoot’ni oching.

Batafsil

Ko‘p beriladigan savollar

baseRef head commit qilinmagan tahrirlarni ko‘chiradimi?

Yo‘q. Joriy mahalliy HEAD commit’idan, jumladan remote’da yo‘q commit’lardan boshlaydi. Commit qilinmagan kuzatiladigan tahrirlar asl nusxada qoladi. Kerakli WIP’ni aniq ko‘chirib, yangi worktree’ni tekshiring.

Yangi worktree’da .env nega yo‘q?

Bu yangi checkout, Git ignore qilgan mahalliy fayllar bo‘lmaydi. Claude Code’dagi .worktreeinclude nusxalanadigan ignore fayllarni belgilaydi. Maxsus WorktreeCreate hook nusxalashni o‘zi bajarishi kerak. Faqat vazifaga zarur fayllarni kiriting.

Barcha maqolalar