# Claude Code’da Git worktree: parallel seanslar

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

Source: https://ailoot.ai/blog/uz/claude-code-git-worktree/
Canonical: https://ailoot.ai/blog/uz/claude-code-git-worktree/
Language: uz
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-045
Revision: sha256-e51d9b5551adbb4a789d2a3cdbfca5308073dc1073b4eb2a3b1a9b7f90f556d6




[Ailoot bilan ishlashga oid amaliy ma’lumotlar hujjatlarda berilgan](https://ailoot.ai/docs/).

## Claude Code’da git worktree nima

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

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:

<figure>
<blockquote>
<p>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.</p>
</blockquote>
<figcaption>— Anthropic hujjatlari, https://code.claude.com/docs/en/worktrees</figcaption>
</figure>

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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.</p>

</div>

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.

| Parametr | `git checkout` tarmog‘i | `git worktree add` |
|----|----|----|
| Ishchi nusxa fayllari | Ustidan yoziladi | Yangi papkada paydo bo‘ladi |
| Ikki tarmoqda parallel ishlash | Yo‘q | Ha |
| Commit qilinmagan o‘zgarishlar | `git stash` kerak | Hech narsa qilish shart emas |
| O‘tish tezligi | Farq hajmiga bog‘liq | Shunchaki `cd` |
| Disk hajmi | 1× | 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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

Eng sodda misol. Birinchi terminalni loyiha ildizida oching:

```bash
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:

```bash
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:

```bash
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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

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:

```bash
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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

`--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:

<figure>
<blockquote>
<p>Faylda gitignore sintaksisi ishlatiladi. Faqat andozaga mos keladigan va Git e’tiborsiz qoldiradigan fayllar nusxalanadi. Git kuzatadigan fayllar hech qachon takroran nusxalanmaydi.</p>
</blockquote>
<figcaption>— Anthropic hujjatlari, https://code.claude.com/docs/en/worktrees</figcaption>
</figure>

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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

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:

```bash
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:

```bash
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`

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

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:

```json
{
  "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`

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

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:

```yaml
---
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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

| Vosita | Nimani izolyatsiya qiladi | Qachon 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 vaqt | Joriy oynani band qilmaydigan uzoq vazifa. Ichkarida worktree yaratiladi |
| `isolation: worktree` bilan subagent | Bitta seans ichidagi fayllar | Bitta so‘rov N agentga vazifa beradi va ularning bir-birining ishini ustidan yozishidan himoya kerak bo‘lsa |
| `claude agents` (Agent View) | Hech narsani emas, UI | Barcha ishlayotgan / pauzadagi / tugallangan seanslarni bitta boshqaruv panelida ko‘rmoqchi bo‘lsangiz |
| `/goal` | Avtonomiyani boshqarish | Claude’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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

**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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

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

<figure>
<blockquote>
<p>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.</p>
</blockquote>
<figcaption>— Anthropic hujjatlari, https://code.claude.com/docs/en/worktrees</figcaption>
</figure>

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:

```bash
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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

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:

```json
{
  "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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

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.

</div>

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](https://ailoot.ai/blog/uz/claude-code-goal-agent-view/), [vazifalaringiz uchun o‘z subagentlaringizni yaratish](https://ailoot.ai/blog/uz/claude-code-subagents/) va [Dynamic Workflows orqali yuzlab agentlarni ishga tushirish](https://ailoot.ai/blog/uz/claude-code-dynamic-workflows/) haqida.

<div class="section" role="doc-bibliography" aria-label="Sources">

### Manbalar

- [Worktree’lar yordamida parallel seanslarni ishga tushirish - Claude Code hujjatlari](https://code.claude.com/docs/en/worktrees)
- [Maxsus subagentlarni yaratish - Claude Code hujjatlari](https://code.claude.com/docs/en/sub-agents)
- [Claude Code o‘zgarishlar jurnali (2026-yil may-iyun)](https://code.claude.com/docs/en/changelog)
- [Agentlarni parallel ishga tushirish - Claude Code hujjatlari](https://code.claude.com/docs/en/agents)
- [Agent View - Claude Code hujjatlari](https://code.claude.com/docs/en/agent-view)
- [git worktree qo‘llanmasi](https://git-scm.com/docs/git-worktree)

</div>





[Ailoot’ni oching](https://ailoot.ai/).

## 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.


## Ailoot · Kompaniya va uning loyihalar portfeli

Ailoot to‘plangan faoliyat tajribasi, keng mijozlar bazasi, barqaror xizmat va doimiy KPI nazoratiga tayanadi.

Kompaniya va uning loyihalar portfeli: millionlab mijozlar; oylik sotuvlar hajmi milliardlarda.

Ailoot bu faoliyat tajribasini mijozlar mahsulotlari, agentlar, ilovalar va avtomatlashtirishlarda AI imkoniyatlariga API orqali kirishni ta’minlashda qo‘llaydi.
