# Git worktree Claude Code: lygiagrečios sesijos

> Kaip naudoti --worktree, .worktreeinclude, worktree.baseRef ir subagentų izoliavimą. Skirtumai nuo šakų, worktree išvalymas ir dažniausios klaidos.

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




[Praktinės informacijos apie darbą su Ailoot rasite dokumentacijoje](https://ailoot.ai/docs/).

## Kas yra git worktree Claude Code

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

Pagrindinė mintis

Git worktree yra atskiras darbo katalogas kitai tos pačios saugyklos šakai. Komanda `claude --worktree <name>` automatiškai sukuria worktree kataloge `.claude/worktrees/<name>/` ir paleidžia jame Claude Code. Du terminalai → dvi sesijos → skirtingi failai diske, jokio trukdymo vienas kitam. Funkcija prieinama iš karto Claude Code v2.0+ versijoje; ją galima konfigūruoti naudojant `.worktreeinclude`, skirtą slaptiesiems duomenims, ir `worktree.baseRef`, skirtą pagrindinei šakai pasirinkti.

</div>

Kelių agentų lygiagretus paleidimas tame pačiame aplanke yra pagrindinė vibe-codingo problema 2026 m. tempu. DI agentai rašo kodą greičiau, nei žmogus spėja sekti, kas ką keičia. Be failų izoliavimo, paleidus dvi lygiagrečias Claude Code sesijas tame pačiame kataloge viena sesija galiausiai perrašo kitos darbą.

Git worktree šią problemą išsprendžia failų sistemos lygmeniu. Turite vieną pagrindinį katalogą, kuriame dirbate. Komanda `claude --worktree feature-auth` sukuria aplanką `.claude/worktrees/feature-auth/` atskiroje šakoje ir paleidžia Claude Code jame. Failai izoliuoti. Vienos sesijos pakeitimai kitai nematomi, kol jų aiškiai nesujungiate.

Oficialioje Anthropic dokumentacijoje tai apibūdinama taip:

<figure>
<blockquote>
<p>Kai kiekviena Claude Code sesija vykdoma atskirame worktree, vienos sesijos redagavimas niekada nepaveikia kitos sesijos failų. Viename terminale galite kurti funkciją, o kitame taisyti klaidą.</p>
</blockquote>
<figcaption>— Anthropic Docs, https://code.claude.com/docs/en/worktrees</figcaption>
</figure>

Savikontrolės užuomina: jei kada nors gavote commit, kuriame pusė failų buvo kito žmogaus darbas, jums reikia worktree.

## Kuo git worktree skiriasi nuo įprastos šakos

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

Pagrindinė mintis

Įprasta `git checkout` komanda perjungia darbinę kopiją tame pačiame aplanke—senieji failai dingsta iš disko, kol grįžtate į šaką. `git worktree add` sukuria **antrą aplanką** kitai šakai, šalia pirmojo. Abi šakos vienu metu yra diske; tarp jų pereinate paprasta `cd` komanda. Viduje yra viena `.git` saugykla su bendra istorija ir bendru nuotoliniu repozitoriumi. Tiesiog kelios darbinės kopijos.

</div>

Įprasta Git eiga: esate `main` šakoje ir vykdote `git checkout feature-x`—Git perrašo darbinės kopijos failus. Veikiantis `npm run dev` procesas sutrinka, nes pasikeitė jo naudojamas `package.json`. Atidedate nepatvirtintus pakeitimus ir laukiate, kol IDE iš naujo indeksuos failus. Grįžtate atgal ir viskas vėl perrašoma, todėl vėl reikia atlikti stash ir pop.

Git worktree suteikia kitą galimybę: vietoj to, kad tarp šakų perjunginėtumėte **vieną** aplanką, sukuriate **antrą** aplanką kitai šakai. Komanda `git worktree add ../project-feature-x feature-x` sukuria katalogą `../project-feature-x/` su `feature-x` šakos failais. Jūsų `main` lieka pradiniame aplanke, o kūrimo serveris veikia toliau.

| Parametras | `git checkout` šaka | `git worktree add` |
|----|----|----|
| Darbinės kopijos failai | Perrašomi | Atsiranda naujame aplanke |
| Lygiagretus darbas su dviem šakomis | Ne | Taip |
| Nepatvirtinti pakeitimai | Reikia `git stash` | Nieko daryti nereikia |
| Perjungimo greitis | Priklauso nuo pakeitimų apimties | Tereikia `cd` |
| Disko vieta | 1× | N× (po failų kopiją kiekvienai šakai) |

Anksčiau worktree režimą Claude Code reikėdavo nustatyti rankiniu būdu: `git worktree add`, tada `cd`, tada `claude`—ir kartoti kiekviename terminale. Žyma `--worktree` (taip pat `-w`) visus tris veiksmus atlieka viena komanda.

## Pirmos lygiagrečios sesijos paleidimas: žyma `--worktree`

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

Pagrindinė mintis

Komanda `claude --worktree feature-auth` sukuria worktree kataloge `.claude/worktrees/feature-auth/`, sukuria šaką `worktree-feature-auth` iš `origin/HEAD` ir paleidžia Claude Code būtent joje. Nereikia rankiniu būdu vykdyti `git worktree add` ar `cd`. Gretimame terminale pakartokite komandą kitu pavadinimu, kad turėtumėte dvi nepriklausomas sesijas. Jei pavadinimo nenurodysite (`claude --worktree`), Claude sugeneruos atsitiktinį, pavyzdžiui, `bright-running-fox`.

</div>

Minimalus pavyzdys. Atidarykite pirmą terminalą projekto šakniniame kataloge:

```bash
claude --worktree feature-auth
```

Claude Code atlieka tris veiksmus:

1. Sukuria `.claude/worktrees/feature-auth/` katalogą su `origin/HEAD` momentine kopija (paprastai tai numatytoji šaka).
2. Sukuria naują `worktree-feature-auth` šaką.
3. Paleidžia sesiją šiame aplanke.

Atidarykite antrą terminalą tame pačiame saugyklos šakniniame aplanke:

```bash
claude --worktree bugfix-123
```

Atlikta. Dvi Claude Code sesijos, skirtingi failai diske, skirtingos Git šakos. Jei pirmoje rašote autentifikavimo kodą, o antroje taisote nepavykusį testą, jos fiziškai negali trukdyti viena kitai.

Jei nenorite įvesti pavadinimo, Claude jį sugalvos:

```bash
claude --worktree
# → sukuria kažką panašaus į .claude/worktrees/bright-running-fox/
```

Patarimas Git pradedantiesiems: pridėkite `.claude/worktrees/` prie `.gitignore`. Kitaip pagrindiniame aplanke vykdydami `git status` matysite visų worktree turinį kaip nesekamus failus:

```
# .gitignore
.claude/worktrees/
```

Vengtina klaida: prieš pirmą kartą naujame kataloge paleisdami `--worktree`, įeikite į jį įprasta `claude` komanda (be žymos) ir patvirtinkite darbo srities patikimumo dialogą. Jei to nepadarysite, žyma nepavyks ir pateiks klaidą „trust not accepted“—taip pat ir naudojant ją su `-p` begalviam režimui.

## Kur yra worktree ir kaip juos rasti

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

Pagrindinė mintis

Pagal numatytuosius nustatymus visi worktree yra `.claude/worktrees/<name>/` kataloge šalia saugyklos šakninio katalogo. Sąrašą pamatysite vykdydami `git worktree list`. Norėdami rankiniu būdu pereiti į worktree, naudokite `cd .claude/worktrees/feature-auth`. Norėdami persijungti į kitą worktree Claude sesijoje, paprašykite jo „switch to another worktree“; jis naudos integruotą EnterWorktree įrankį. Senasis worktree diske liks nepakeistas.

</div>

Numatytoji vieta nekinta: `.claude/worktrees/<value>/` saugyklos šakniniame kataloge. Jei jūsų projektas yra `~/dev/my-app/`, `feature-auth` worktree bus `~/dev/my-app/.claude/worktrees/feature-auth/`.

Nestandartiniams išdėstymams (pavyzdžiui, jei norite worktree laikyti už saugyklos ribų) skirtas `WorktreeCreate` kabliukas—apie jį daugiau sužinosite toliau, dalyje apie SVN ir Mercurial.

Vienoje Claude sesijoje galite pereiti į kitą esamą worktree. Tiesiog pokalbyje pasakykite: „switch to `.claude/worktrees/bugfix-123`“, ir Claude iškvies `EnterWorktree` įrankį. Dabartinis aplankas liks nepakeistas—į jį galėsite sugrįžti tokiu pačiu būdu.

Standartinė Git komanda parodo visų worktree sąrašą, įskaitant pagrindinį ir rankiniu būdu sukurtus:

```bash
git worktree list
```

Išvestis atrodys taip:

```
/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` ir slaptųjų duomenų kopijavimas: failas `.worktreeinclude`

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

Pagrindinė mintis

Worktree yra naujai sukurta darbinė kopija. Failų, kuriuos nurodo `.gitignore` (`.env`, `.env.local`, vietinės konfigūracijos), naujame aplanke nėra. Be jų neveiks `npm run dev` ar `prisma db push`. Projekto šakniniame kataloge esantis `.worktreeinclude` failas naudoja `.gitignore` sintaksę ir nurodo Claude Code, kuriuos failus automatiškai kopijuoti į kiekvieną naują worktree. Jis naudojamas su `--worktree`, subagentų worktree ir darbalaukio programėlės sesijomis.

</div>

Kai `--worktree` sukuria naują aplanką, jame būna tik tai, kas užkomitinta Git. `.env` failas su API raktais ir `.env.local` su vietine konfigūracija įtraukti į `.gitignore`, todėl worktree jų nėra. Todėl pirmasis `npm run dev` nepavyksta ir pateikia „MISSING DATABASE_URL“.

Naminis sprendimas—po kiekvieno `--worktree` rankiniu būdu nukopijuoti `.env`. Vieną kartą tai suveikia, o vėliau pamirštama. Anthropic sprendimas—projekto šakniniame kataloge esantis `.worktreeinclude` failas, kuriame išvardyti Git ignoruojami failai, automatiškai kopijuotini į kiekvieną naują worktree.

Sukurkite `.worktreeinclude` failą saugyklos šakniniame kataloge:

```
.env
.env.local
config/secrets.json
```

Sintaksė tokia pati kaip `.gitignore`. Galite naudoti glob šablonus:

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

Anthropic pateikia aiškią taisyklę, padedančią išvengti nesklandumų:

<figure>
<blockquote>
<p>Faile naudojama gitignore sintaksė. Kopijuojami tik šabloną atitinkantys failai, kuriuos Git taip pat ignoruoja. Git sekami failai niekada nedubliuojami.</p>
</blockquote>
<figcaption>— Anthropic Docs, https://code.claude.com/docs/en/worktrees</figcaption>
</figure>

Kitaip tariant, per `.worktreeinclude` netyčia nenukopijuosite `package.json`—jis nenurodytas `.gitignore`. Ten saugu įrašyti bet kokius šablonus.

Tas pats `.worktreeinclude` veikia trimis režimais: rankiniu būdu naudojant `--worktree`, automatiškai kuriant subagentų worktree (žr. toliau) ir dirbant Claude darbalaukio programėlės sesijose.

## Worktree iš pull request kodo peržiūrai

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

Pagrindinė mintis

Komanda `claude --worktree "#1234"` iš origin parsiunčia pull request \#1234 ir sukuria worktree kataloge `.claude/worktrees/pr-1234/` su PR šaka. Galite pateikti visą URL—`claude --worktree https://github.com/OWNER/REPO/pull/1234`. Tai naudinga kodo peržiūrai: atidarykite PR atskirame aplanke, o Claude galės vykdyti testus, skaityti žurnalus ir parašyti komentarą, kol pagrindinė saugykla liks nepaliesta.

</div>

Įprastas kodo peržiūros scenarijus: kolega atsiuntė PR; turite patikrinti kodą, paleisti testus ir palikti komentarą. Naudodami įprastą `git checkout pull/1234/head`, vėl perjungtumėte darbinę kopiją ir sutrikdytumėte aktyvią sesiją.

Su `--worktree` žyma tai atliekama viena komanda:

```bash
claude --worktree "#1234"
```

Kas nutinka: Claude Code paleidžia `git fetch origin pull/1234/head`, sukuria worktree kataloge `.claude/worktrees/pr-1234/` ir išsirenka PR šaką. Sesija prasideda. Galite iš karto paprašyti „perskaityti diff, paleisti testus ir rasti logikos klaidas“—kol Claude dirba, jūsų pagrindinė sesija `main` šakoje tęsiasi.

Alternatyvi sintaksė—visas pull request URL:

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

Naudojimas tikrame projekte: sujungę `claude --worktree "#N"` su savo kodo peržiūros subagentu, automatinę peržiūrą gausite per minutę ar dvi. Paleiskite jį fone, tęskite darbą pagrindiniame lange, o prie rezultato grįžkite per `claude agents`.

## Pagrindinė šaka: `worktree.baseRef` reikšmė `fresh` arba `head`

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

Pagrindinė mintis

Pagal numatytuosius nustatymus worktree išsišakoja iš `origin/HEAD`—naujausio sinchronizuoto commit iš nuotolinės saugyklos. Tai saugi, „švari“ pradžia. Jei norite worktree įtraukti vietinius neišsiųstus įrašus, nustatymuose įrašykite `worktree.baseRef: "head"`. HEAD identifikuoja įrašą; neįrašyti sekamų failų pakeitimai lieka pradinėje darbinėje kopijoje ir reikalauja atskiro aiškaus perkėlimo. Tai naudinga, kai subagentui reikia dirbti su jūsų dabartine funkcija, neperjungiant į main. Priimamos tik `fresh` arba `head` reikšmės; savavališkos nuorodos nepalaikomos.

</div>

Numatytasis nustatymas toks: kiekvienas naujas worktree pradedamas nuo `origin/HEAD`. Privalumas—švari pradžia, kuri tikrai atitinka tai, ką matys CI. Trūkumas—jei dabartinėje šakoje turite nepatvirtintų pakeitimų arba kelis vietinius commit, kurių nėra nuotolinėje saugykloje, naujame worktree jų nebus.

Norėdami worktree pradėti nuo dabartinio vietinio HEAD įrašo, šį nustatymą pridėkite prie `.claude/settings.json` arba bendrųjų nustatymų:

```json
{
  "worktree": {
    "baseRef": "head"
  }
}
```

Dabar `claude --worktree experimental-feature` pradeda nuo dabartinio vietinio `HEAD`. Tai naudinga, kai funkcija jau turi vietinių neišsiųstų įrašų. Dar neįrašyti sekami pakeitimai neįtraukiami. Jei subagentui jų reikia, aiškiai išsaugokite ir perkelkite reikalingus pakeitimus, tada patikrinkite paskirties pakeitimų skirtumus; šio perkėlimo nepainiokite su `.worktreeinclude`, kuris apdoroja ignoruojamus vietinius failus.

Nustatymas priima tiksliai dvi reikšmes: `"fresh"` (= `origin/HEAD`) ir `"head"` (= vietinis HEAD). Savavališkos nuorodos, tokios kaip `"feature-branch"`, ar commit maiša nepalaikomos—tai sąmoningas apribojimas, neleidžiantis pasirinkčių deriniams pernelyg išaugti.

## Automatiškai izoliuokite subagentus: `isolation: worktree`

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

Pagrindinė mintis

Claude Code subagentas yra specializuotas agentas, atliekantis vieną užduotį (kodo peržiūrą, pertvarkymą, tyrimą). Jei vienoje sesijoje vienu metu paleidžiate kelis subagentus, pagal numatytuosius nustatymus jie dirba tame pačiame aplanke ir gali perrašyti vienas kito failus. Įtraukite `isolation: worktree` į subagento frontmatter, kad kiekvienas gautų laikiną worktree, kuris pabaigoje tvarkingai pašalinamas, jei jame nieko necommitinta.

</div>

Kai Claude pasakote „paleisk tris subagentus: vienas nagrinėja duomenų bazę, antras apžiūri API, o trečias tikrina testus“, pagal numatytuosius nustatymus visi trys dirba jūsų darbinėje kopijoje. Jei bent du iš jų vienu metu rašo į tą patį failą, kyla konfliktas. Sprendimas—automatiškai kiekvienam skirti atskirą worktree.

1 būdas: paprašykite žodžiu. Parašykite Claude pokalbyje:

```
Naudok worktree savo agentams.
```

Claude šioje sesijoje taikys izoliavimą visiems tolesniems subagentams.

2 būdas: aiškiai nustatykite tai pačiame subagente. Subagento faile (pavyzdžiui, `.claude/agents/code-reviewer.md`) į frontmatter įtraukite lauką:

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

Esi kruopštus peržiūrėtojas. Perskaityk diff ir ieškok logikos klaidų...
```

Nuo šiol kiekvieną kartą paleidus šį subagentą jam sukuriamas laikinas worktree kataloge `.claude/worktrees/`. Jei subagentas nieko neįrašė, baigus darbą aplankas automatiškai ištrinamas. Jei yra nepatvirtintų pakeitimų, Claude paklaus, ar juos palikti, ar pašalinti.

Subagentų worktree pagrindinė šaka tokia pati kaip ir `--worktree`: pagal numatytuosius nustatymus `origin/HEAD`, o nustačius `worktree.baseRef: head`—vietinis `HEAD`.

## Sprendimų lentelė: worktree, `/bg`, subagentas ar Agent View

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

Pagrindinė mintis

Keturi Claude Code mechanizmai, kuriuos dažnai painiojama. Worktree užtikrina **failų izoliavimą** (diską). `/bg` yra **fono sesija** (kontekstą ir žetonus). Subagentas yra **specializuotas vienkartinis agentas** (promptą ir įrankius). Agent View yra **visų sesijų skydelis** (UI). Juos galima derinti: `/bg` automatiškai sukuria worktree, subagentas su `isolation: worktree` paleidžiamas laikiname worktree, o Agent View visas tris rodo kaip eilutes viename sąraše.

</div>

| Įrankis | Ką izoliuoja | Kada naudoti |
|----|----|----|
| `claude --worktree <name>` | Failus (atskiras aplankas + šaka) | Norite rankiniu būdu palaikyti N sesijų skirtinguose terminaluose |
| `/bg` (arba `Ctrl+B`) | Kontekstą ir laiką | Ilga užduotis, kai nenorite blokuoti dabartinio lango. Fone sukuriamas worktree |
| Subagentas su `isolation: worktree` | Failus vienos sesijos viduje | Vienas promptas paskiria darbą N agentų, o jums reikia apsaugos nuo jų tarpusavio failų perrašymo |
| `claude agents` (Agent View) | Nieko, tai UI | Norite viename skydelyje matyti visas vykdomas / pristabdytas / užbaigtas sesijas |
| `/goal` | Autonomijos valdymą | Norite, kad Claude dirbtų, kol bus įvykdyta sąlyga, tarp ėjimų nepateikdami promptų |

Tipiniai deriniai:

- **„2 funkcijos lygiagrečiai, rankiniu būdu“** — du terminalai, kiekviename vykdoma `claude --worktree`. Paprasčiausias atvejis.
- **„Paleisk naktinį pertvarkymą; uždarysiu programą“** — `/bg` + `/goal` su užbaigimo sąlyga. Sesija vykdoma nepriklausomai nuo jūsų lango.
- **„Vienas promptas, trys lygiagretūs tyrimai“** — trys subagentai su `isolation: worktree`. Kiekvienas savo izoliacinėje aplinkoje.
- **„Kas dabar vyksta?“** — `claude agents`. Visų sesijų skydelis su filtrais „running“, „blocked“ ir „done“.

## 5 darbo su worktree klaidos

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

Pagrindinė mintis

Dažniausios problemos: pamirštamas `.worktreeinclude`, todėl neveikia aplinka; worktree supainiojamas su įprasta šaka ir prarandami nepatvirtinti pakeitimai; laikomos 5+ lygiagrečios sesijos ir pamirštama, kas kur vyksta; nesukonfigūruojamas `cleanupPeriodDays`, todėl kaupiasi nenaudojami aplankai; pamirštamas patikimumo dialogas naujame kataloge, dėl to `--worktree` nepavyksta ir pateikiama klaida.

</div>

**1. Paleidote worktree, trūksta `.env`, niekas neveikia.** Dažniausia problema. Worktree yra naujai sukurta darbinė kopija be Git ignoruojamų failų. Vos nustatę worktree režimą, įtraukite į `.worktreeinclude` šabloną `.env*` ir būtinas vietines konfigūracijas. Patikrinkite, ar failas yra saugyklos šakniniame kataloge, o ne `.claude/`.

**2. Norite pereiti į main šaką, vykdote `cd` į šakninį katalogą ir prarandate worktree nepatvirtintus pakeitimus.** Šakninis aplankas ir worktree yra dvi **skirtingos** darbinės kopijos. Grįžote su `cd`; worktree pakeitimai liko savo vietoje—niekur nedingo. Tačiau jei susipainiojote ir pagrindiniame aplanke paleidote `git stash`, manydami, kad esate worktree, stash bus sukurtas pagrindinėje šakoje, o ne toje, kurioje tikėjotės.

**3. Paleidote 5 lygiagrečias sesijas ir nebeprisimenate, ką kiekviena daro.** Anthropic dokumentacijoje aiškiai įspėjama, kad dauguma programuotojų negali mintyse valdyti daugiau nei 2–3 sesijų. Perkrovos požymis—atsidarę Agent View negalite iš karto pasakyti, ką daro kiekvienas agentas. Apsiribokite dviem vienu metu veikiančiomis sesijomis. Jei užduočiai reikia daugiau, ją reikėtų koordinuoti per `/goal` + subagentus, o ne rankiniu būdu.

**4. `-p` (begalviu režimu) paleisti worktree automatiškai neišvalomi.** Komanda `claude --worktree feature-x -p "do thing"` nerodo interaktyvaus išėjimo raginimo, todėl Claude neturi progos paklausti „pašalinti worktree?“. Tokie worktree kaupiasi. Išvalykite juos rankiniu būdu: `git worktree remove .claude/worktrees/feature-x`. Arba naudokite cron scenarijų, kuris pašalina viską, kas seniau nei 7 dienos.

**5. Patikimumo dialogas naujame aplanke.** Jei saugyklą atidarote pirmą kartą ir iškart vykdote `claude --worktree`, komanda nepavyks. Vykdykite `claude` be žymų, patvirtinkite darbo srities patikimumą ir išeikite—tada `--worktree` veiks. Taip sąmoningai užtikrinama, kad Claude negautų prieigos prie kito žmogaus projekto be naudotojo sutikimo.

## Išvalymas: kas ištrinama automatiškai

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

Pagrindinė mintis

`--worktree` sukurtas worktree, kuriame nėra pakeitimų (commit, nesekamų failų ar nepatvirtintų pakeitimų), automatiškai pašalinamas jums išėjus. Jei yra pakeitimų, Claude paklaus. Subagentų ir `/bg` worktree automatiškai pašalinami pasibaigus nustatymuose nurodytam `cleanupPeriodDays` laikotarpiui, jei jie švarūs. `-p` sukurti worktree visai neišvalomi—pašalinkite juos rankiniu būdu naudodami `git worktree remove`.

</div>

Išvalymo logika priklauso nuo to, ką nuveikėte worktree ir kaip paleidote sesiją. Anthropic dokumentacijoje išvardijami trys scenarijai:

<figure>
<blockquote>
<p>Jei worktree nėra nepatvirtintų pakeitimų, nesekamų failų ar naujų commit, jums išėjus iš sesijos worktree ir jo šaka automatiškai pašalinami. Jei sesija turi pavadinimą, Claude užuot pašalinęs paklaus, kad galėtumėte worktree pasilikti vėlesniam laikui.</p>
</blockquote>
<figcaption>— Anthropic Docs, https://code.claude.com/docs/en/worktrees</figcaption>
</figure>

1 scenarijus: įėjote, nieko nedarėte ir išėjote—worktree buvo pašalintas.

2 scenarijus: šį tą nuveikėte, bet necommitinote—išeinant Claude paklaus „palikti ar pašalinti?“. Pasirinkus „palikti“, aplankas ir šaka išsaugomi vėlesniam laikui. Pasirinkus „pašalinti“, katalogas ištrinamas **kartu su** nepatvirtintais pakeitimais ir naujais commit. Tai destruktyvu—nespauskite „pašalinti“ iš įpročio.

3 scenarijus: paleidote su `-p` (begalviu režimu), komanda baigė darbą ir išėjo. Worktree lieka. Išvalykite jį rankiniu būdu:

```bash
git worktree remove .claude/worktrees/feature-x
```

Be to, subagentų ir `/bg` sesijų worktree automatiškai pašalinami fono valymo metu, jei jie senesni nei `cleanupPeriodDays` dienų (tai nustatymas, paprastai pagal numatytuosius parametrus lygus 30 dienų) **ir** juose nėra neišsaugoto darbo. `--worktree` sukurti worktree automatinis valymas neliečia—už juos atsakote jūs.

## Alternatyvos SVN, Perforce ir Mercurial: `WorktreeCreate` kabliukas

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

Pagrindinė mintis

Worktree režimas pagal numatytuosius nustatymus naudoja `git worktree`. SVN, Perforce, Mercurial ir kitoms VCS galite prijungti savo mechanizmą per `WorktreeCreate` ir `WorktreeRemove` kabliukus Claude Code nustatymuose. Kabliukas gauna pavadinimą per stdin, turi išvesti sukurto katalogo kelią ir baigti vykdymą kodu 0. Naudojant savo kabliuką, `.worktreeinclude` neapdorojamas—vietinius failus kabliuko viduje turite nukopijuoti patys.

</div>

Jei saugykla naudoja Subversion arba Mercurial, `--worktree` žyma neveiks tiesiogiai. Anthropic siūlo išplėtimo galimybę per du kabliukus: `WorktreeCreate` (sukuria izoliuotą kopiją) ir `WorktreeRemove` (ją pašalina).

SVN kabliuko pavyzdys iš oficialios dokumentacijos:

```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\"'"
          }
        ]
      }
    ]
  }
}
```

Kabliukas iš stdin nuskaito worktree pavadinimą (`{ "name": "feature-auth" }`), vykdo `svn checkout` iš anksto apskaičiuotame kataloge ir išveda kelią į stdout—Claude Code naudoja jį kaip naujos sesijos darbinį katalogą.

Svarbi pastaba: naudojant savo kabliuką, `.worktreeinclude` neveikia. Jei naujame aplanke reikia `.env` ar kitų Git ignoruojamų failų, nukopijuokite juos pačiame kabliuko scenarijuje.

## Kas toliau: trys susiję lygiagretaus darbo mechanizmai

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

Pagrindinė mintis

Worktree suteikia failų izoliavimą. `/bg` suteikia konteksto ir žetonų izoliavimą. Subagentas suteikia užduočių ir įrankių izoliavimą. `/goal` suteikia autonomiją, kol įvykdoma sąlyga. Kiekvienas atskirai išsprendžia vieną problemą. Kartu jie leidžia atlikti 3–5 užduotis lygiagrečiai ir nepervargti. Toliau verta panagrinėti susijusius autonominio režimo, pasirinktinių subagentų ir dinaminių darbo eigų vadovus, kuriuos rasite toliau pateiktose nuorodose.

</div>

Worktree suteikia failų izoliavimą. `/bg` suteikia konteksto izoliavimą. Subagentai suteikia užduočių izoliavimą. Kiekvienas mechanizmas atskirai išsprendžia vieną problemą. Kartu jie leidžia dirbti su trimis–penkiomis užduotimis lygiagrečiai ir nepervargti. Tai įgūdžių rinkinys, kuriuo paremtas pažangus vibe-codingas 2026 m.

Ši tema natūraliai siejasi su trimis kitomis: [kaip nustatyti autonominį agentą naudojant `/goal` ir Agent View](https://ailoot.ai/blog/lt/claude-code-goal-agent-view/), [kaip sukurti savo užduotims skirtus subagentus](https://ailoot.ai/blog/lt/claude-code-subagents/) ir [kaip paleisti šimtus agentų per Dynamic Workflows](https://ailoot.ai/blog/lt/claude-code-dynamic-workflows/).

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

### Šaltiniai

- [Lygiagrečių sesijų vykdymas naudojant worktree - Claude Code Docs](https://code.claude.com/docs/en/worktrees)
- [Pasirinktinių subagentų kūrimas - Claude Code Docs](https://code.claude.com/docs/en/sub-agents)
- [Claude Code pakeitimų žurnalas (2026 m. gegužė–birželis)](https://code.claude.com/docs/en/changelog)
- [Agentų vykdymas lygiagrečiai - Claude Code Docs](https://code.claude.com/docs/en/agents)
- [Agent View - Claude Code Docs](https://code.claude.com/docs/en/agent-view)
- [git worktree vadovo puslapis](https://git-scm.com/docs/git-worktree)

</div>





[Atidarykite Ailoot](https://ailoot.ai/).

## Klausimai ir atsakymai

### Ar baseRef head nukopijuoja neįrašytus pakeitimus į naują worktree?

Ne. Jis pradeda nuo dabartinio vietinio HEAD įrašo, įskaitant vietinius įrašus, kurių nėra nuotolinėje saugykloje. Dar neįrašyti sekami pakeitimai lieka pradinėje kopijoje; reikalingą WIP perkelkite aiškiai ir patikrinkite naują worktree.

### Kodėl naujame worktree nėra mano .env?

Worktree yra naujas išskleidimas, todėl Git ignoruojamų vietinių failų nėra. Claude Code `.worktreeinclude` nurodo ignoruojamus kopijuotinus failus; pasirinktinis WorktreeCreate hook tokį kopijavimą turi atlikti pats. Įtraukite tik užduočiai tikrai reikalingus failus.


## Ailoot · Įmonė ir jos projektų portfelis

Ailoot remiasi sukaupta veiklos patirtimi, plačia klientų baze, stabiliomis paslaugomis ir nuolatine KPI kontrole.

Įmonė ir jos projektų portfelis: milijonai klientų; mėnesio pardavimai siekia milijardus.

Ailoot šią veiklos patirtį pritaiko teikdama API prieigą prie DI funkcijų klientų produktuose, agentuose, programose ir automatizavimo sprendimuose.
