# Isolamento dei workspace (/it/docs/verdent-manager/advanced-features/workspace-isolation)

> Come Verdent separa le modifiche parallele al codice con i git worktree



L'isolamento dei workspace separa le modifiche parallele al codice a livello di filesystem con i git worktree. Un workspace ha una propria cartella, un checkout del branch, file e stato di staging.

<Note>
  La creazione manuale dei workspace non è disponibile nell'interfaccia attuale di Verdent Desktop. Il pulsante **Nuovo workspace**, la relativa scorciatoia da tastiera e **Duplica in nuovo workspace** sono nascosti. La duplicazione di una risposta crea la nuova attività nel workspace corrente.
</Note>

***

## Cosa imparerai [#cosa-imparerai]

* Come l'isolamento dei workspace previene i conflitti
* Come i git worktree abilitano l'isolamento
* Differenza tra workspace base e workspace
* Come appaiono nell'interfaccia i workspace esistenti e quelli gestiti da Verdent
* Best practice per la gestione dei workspace

***

## Cos'è l'isolamento dei workspace? [#cosè-lisolamento-dei-workspace]

Quando Verdent esegue il lavoro in workspace separati, le modifiche di un worktree non modificano i file o lo stato di staging di un altro worktree. Questo rende più sicure l'implementazione e la revisione in parallelo.

### Come funziona [#come-funziona]

| Livello      | Come funziona                                                    |
| ------------ | ---------------------------------------------------------------- |
| **Cartella** | Ogni workspace è una cartella isolata                            |
| **Branch**   | Ogni workspace ha il proprio checkout del branch                 |
| **File**     | Le modifiche ai file in un workspace non influiscono sugli altri |
| **Staging**  | Ogni workspace ha la propria area di staging                     |

### Vantaggi [#vantaggi]

<CardGroup cols="2">
  <Card title="Nessuna interferenza" icon="shield-halved">
    Le modifiche ai file restano in cartelle worktree separate
  </Card>

  <Card title="Sperimentazione sicura" icon="flask">
    Prova modifiche rischiose senza influire sul codice stabile
  </Card>

  <Card title="Confronto chiaro" icon="code-compare">
    Usa git diff per confrontare approcci tra workspace
  </Card>

  <Card title="Rebase selettivo" icon="code-merge">
    Esegui il rebase solo dei risultati di cui ti fidi
  </Card>
</CardGroup>

***

## Workspace base e workspace [#workspace-base-e-workspace]

### Workspace base [#workspace-base]

Il workspace base è il checkout originale del repository e funge da punto di partenza predefinito.

| Caratteristica           | Descrizione                                     |
| ------------------------ | ----------------------------------------------- |
| **Posizione**            | La posizione originale del tuo git clone o init |
| **Branch principale**    | Di solito sul branch main o di sviluppo         |
| **Punto di riferimento** | Origine per confrontare il lavoro sperimentale  |

**Quando usare il workspace base:**

* Modifiche rapide che non richiedono isolamento
* Punto di riferimento per confrontare il lavoro sperimentale
* Quando vuoi che le modifiche vadano direttamente sul branch principale
* Attività semplici in cui l'esecuzione parallela non è necessaria

### Workspace [#workspace]

Un workspace è un ambiente di lavoro isolato creato con i git worktree, con un checkout del branch e uno stato dei file indipendenti.

Verdent può usare un workspace quando un flusso di lavoro supportato richiede modifiche al codice isolate. I workspace esistenti restano associati al loro progetto e possono contenere più attività.

***

## Lavorare con workspace esistenti [#lavorare-con-workspace-esistenti]

I workspace già appartenenti a un progetto restano raggruppati con quel progetto nel pannello Progetti. Seleziona un workspace per visualizzarne le attività e lo stato dei file.

* Le attività nello stesso workspace condividono i suoi file, ma mantengono contesti di conversazione separati.
* Passare a un altro workspace cambia il worktree attivo e il contesto del branch.
* La duplicazione di una risposta mantiene l'attività duplicata nel workspace corrente.
* Elimina un workspace solo dopo aver eseguito commit, rebase o aver comunque conservato il lavoro di cui hai bisogno.

***

## Eseguire il rebase delle modifiche del workspace [#eseguire-il-rebase-delle-modifiche-del-workspace]

Quando sei pronto a integrare le modifiche del workspace nel branch principale:

### Usare l'interfaccia di Verdent [#usare-linterfaccia-di-verdent]

<Steps>
  <Step title="Completa il lavoro">
    Completa il lavoro nel workspace
  </Step>

  <Step title="Rivedi le modifiche">
    Seleziona **Modifiche attività** nel pannello centrale per rivedere tutte le modifiche
  </Step>

  <Step title="Esegui il rebase sul branch principale">
    Seleziona **Azioni workspace → Esegui rebase sul branch principale** nella barra del workspace
  </Step>

  <Step title="Risolvi i conflitti">
    Risolvi eventuali conflitti se richiesto
  </Step>

  <Step title="Verifica">
    Rivedi le modifiche prima di confermare
  </Step>
</Steps>

### Mantenere aggiornati i workspace [#mantenere-aggiornati-i-workspace]

Usa **Azioni workspace → Sincronizza con il branch principale** per scaricare le ultime modifiche dal branch principale nel tuo workspace. Questo aiuta a prevenire conflitti di grandi dimensioni durante il rebase.

***

## Best practice [#best-practice]

### Manutenzione dei workspace [#manutenzione-dei-workspace]

| Pratica                                         | Perché                                    |
| ----------------------------------------------- | ----------------------------------------- |
| **Elimina i workspace dopo il rebase**          | Libera spazio su disco                    |
| **Rimuovi gli esperimenti abbandonati**         | Mantiene gestibile l'elenco dei workspace |
| **Mantieni ragionevole il numero di workspace** | Le risorse di sistema sono finite         |

### Igiene di Git [#igiene-di-git]

| Pratica                                  | Perché                                                              |
| ---------------------------------------- | ------------------------------------------------------------------- |
| **Esegui commit frequenti**              | Esegui il commit del lavoro in corso prima di cambiare workspace    |
| **Commit piccoli**                       | I commit più piccoli sono più facili da selezionare con cherry-pick |
| **Sincronizza regolarmente con la base** | Non lasciare che i workspace divergano troppo dal branch principale |
| **Riduci la complessità dei conflitti**  | L'integrazione regolare previene conflitti di grandi dimensioni     |

***

## Domande frequenti [#domande-frequenti]

<AccordionGroup>
  <Accordion title="Quanto spazio su disco usa ogni workspace?">
    Ogni workspace duplica i file di lavoro ma condivide la cartella `.git`. L'uso dello spazio equivale approssimativamente alla dimensione del progetto per ogni workspace. I progetti di grandi dimensioni con molti workspace paralleli useranno molto spazio su disco.
  </Accordion>

  <Accordion title="Posso eliminare un workspace?">
    Sì. Elimina il workspace tramite Verdent. Questo rimuove la cartella ma conserva eventuale lavoro committato sul branch.
  </Accordion>

  <Accordion title="Come creo un nuovo workspace?">
    La creazione manuale non è disponibile nell'interfaccia Desktop attuale. La voce **Nuovo workspace** e la scorciatoia sono nascoste. Verdent può comunque usare internamente i workspace per i flussi di lavoro isolati supportati.
  </Accordion>

  <Accordion title="Cosa succede alle modifiche non committate se elimino un workspace?">
    Le modifiche non committate vengono perse quando un workspace viene eliminato. Esegui sempre il commit o lo stash delle modifiche prima di rimuovere un workspace.
  </Accordion>

  <Accordion title="Posso convertire un workspace nel workspace base?">
    Non esiste una conversione diretta, ma puoi eseguire il rebase di tutte le modifiche dal workspace al branch principale, quindi eliminare il workspace. La cronologia del branch viene conservata.
  </Accordion>

  <Accordion title="I worktree funzionano con tutti i servizi di hosting git?">
    Sì. I worktree di Git sono una funzionalità standard di git. Funzionano con GitHub, GitLab, Bitbucket e qualsiasi altro servizio di hosting git.
  </Accordion>
</AccordionGroup>
