> ## Documentation Index
> Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Worktrees

> Configurați automat worktree-uri Git pentru taskuri Cascade paralele

Windsurf oferă suport pentru folosirea worktree-urilor Git, pentru a rula taskuri Cascade în paralel, fără a interfera cu workspace-ul principal.

Când folosiți worktree-uri, fiecare conversație Cascade primește propria sesiune, permițându-i lui Cascade să facă modificări sau să construiască și să testeze codul, fără a interfera cu workspace-ul principal.

<div id="basic-worktree-usage">
  ## Utilizarea de bază a worktree-urilor
</div>

Cel mai simplu mod de a începe să utilizați worktree-uri este să comutați la modul „Worktree” din colțul din dreapta jos al câmpului de introducere Cascade.

<Frame>
  <img style={{ maxHeight: "500px" }} src="https://mintcdn.com/codeium/U6QOrK-OfUtO4wfJ/assets/windsurf/worktree-toggle.png?fit=max&auto=format&n=U6QOrK-OfUtO4wfJ&q=85&s=8bb3e54349d5c84d4db81210a67ee931" width="873" height="224" data-path="assets/windsurf/worktree-toggle.png" />
</Frame>

<Note>
  În prezent, puteți comuta la un worktree doar la începutul unei sesiuni Cascade. Conversațiile nu pot fi mutate într-un alt worktree după ce au început.
</Note>

După ce Cascade face modificări de fișiere în worktree, aveți opțiunea de a da clic pe „merge” pentru a integra acele modificări înapoi în workspace-ul principal.

<Frame>
  <img style={{ maxHeight: "500px" }} src="https://mintcdn.com/codeium/U6QOrK-OfUtO4wfJ/assets/windsurf/worktree-merge.png?fit=max&auto=format&n=U6QOrK-OfUtO4wfJ&q=85&s=bb47b232dd861f3e37255b9b82fb18bc" width="724" height="98" data-path="assets/windsurf/worktree-merge.png" />
</Frame>

<div id="location">
  ## Location
</div>

Worktree-urile sunt organizate după numele repo-ului în `~/.windsurf/worktrees/<repo_name>`.

Fiecărui worktree i se atribuie un nume unic, generat aleatoriu.

Pentru a vedea o listă a worktree-urilor active, puteți rula `git worktree list` din directorul repo-ului.

<Warning>
  Deoarece worktree-urile se află într-un director diferit față de proiectul dumneavoastră original, **sistemele de build sau uneltele care se bazează pe căi relative** (de ex., referințe de tip `../shared-lib`, dependențe legate prin symlink-uri sau dependențe de sursă dintr-un monorepo rezolvate pe baza căii) pot să nu mai funcționeze corect într-un worktree. Dacă proiectul dumneavoastră folosește căi relative în afara rădăcinii repository-ului, configurați un hook [`post_setup_worktree`](./worktrees#setup-hook) pentru a crea symlink-urile necesare sau pentru a copia fișierele necesare în locațiile așteptate.
</Warning>

<div id="setup-hook">
  ## Hook de configurare
</div>

Fiecare worktree conține o copie a fișierelor din repository, dar nu include fișiere `.env` sau alte pachete care nu sunt controlate prin versionare.

Dacă doriți să includeți fișiere sau pachete suplimentare în fiecare worktree, puteți folosi hook-ul `post_setup_worktree` [hook](./hooks#post_setup_worktree) pentru a le copia în directorul worktree-ului.

Hook-ul `post_setup_worktree` rulează după ce fiecare worktree este creat și configurat. Este executat în interiorul noului director **worktree**.

Variabila de mediu `$ROOT_WORKSPACE_PATH` indică calea originală a workspace-ului și poate fi folosită pentru a accesa fișiere sau pentru a rula comenzi relativ la repository-ul original.

<div id="example">
  ### Exemplu
</div>

Copiați fișierele de mediu și instalați dependențele la crearea unui nou worktree.

**Config** (în `.windsurf/hooks.json`):

```json theme={null}
{
  "hooks": {
    "post_setup_worktree": [
      {
        "command": "bash $ROOT_WORKSPACE_PATH/hooks/setup_worktree.sh",
        "show_output": true
      }
    ]
  }
}
```

**Script** (`hooks/setup_worktree.sh`):

```bash theme={null}
#!/bin/bash

# Copiați fișierele de mediu din workspace-ul original
if [ -f "$ROOT_WORKSPACE_PATH/.env" ]; then
    cp "$ROOT_WORKSPACE_PATH/.env" .env
    echo "Fișierul .env a fost copiat"
fi

if [ -f "$ROOT_WORKSPACE_PATH/.env.local" ]; then
    cp "$ROOT_WORKSPACE_PATH/.env.local" .env.local
    echo "Fișierul .env.local a fost copiat"
fi

# Instalați dependențele
if [ -f "package.json" ]; then
    npm install
    echo "Dependențele npm au fost instalate"
fi

exit 0
```

Acest hook se asigură că fiecare worktree are în mod automat configurată configurația de mediu necesară și dependențele instalate.

<div id="cleanup">
  ## Curățare
</div>

Windsurf curăță automat worktree-urile mai vechi atunci când creează un nou worktree, pentru a preveni utilizarea excesivă a spațiului pe disc. Fiecare workspace poate avea cel mult **20** de worktree-uri.

Worktree-urile sunt curățate în funcție de momentul în care au fost accesate ultima dată — cele mai vechi sunt eliminate primele. Această curățare are loc la nivel de workspace, asigurând că worktree-urile din diferite repository-uri rămân independente unele de altele.

În plus, dacă ștergeți manual o conversație Cascade, Windsurf va șterge automat worktree-ul asociat.

<div id="source-control-panel">
  ## Panoul Source Control
</div>

În mod implicit, Windsurf nu afișează worktree-urile create de Cascade în panoul SCM.
Puteți seta `git.showWindsurfWorktrees` la `true` în setările dvs. pentru a modifica acest comportament și a afișa worktree-urile în panoul SCM.
