---
title: Isolamento de espaço de trabalho
description: "Git isolamento baseado em worktree para experimentação paralela sem conflitos"
---

Workspace Isolation é o sistema do Verdent para garantir que o trabalho paralelo nunca interfira consigo mesmo. Cada espaço de trabalho é um ambiente de trabalho completamente separado, isolado no nível do sistema de arquivos usando git worktrees.

---

## O que você vai aprender

- Como o isolamento de espaço de trabalho evita conflitos
- Como os git worktrees viabilizam o isolamento
- Diferença entre Base Workspace e Workspaces
- Criar, alternar e gerenciar espaços de trabalho
- Melhores práticas para gerenciamento de espaços de trabalho

---

## O que é Workspace Isolation?

Workspace Isolation garante que as alterações de uma tarefa nunca afetem outra. Experimente diferentes abordagens em paralelo, compare resultados e faça rebase seletivo apenas das alterações que você deseja de volta na branch principal.

### Como funciona

| Camada | Como funciona |
|-------|--------------|
| **Diretório** | Cada espaço de trabalho é um diretório isolado |
| **Branch** | Cada espaço de trabalho tem seu próprio checkout de branch |
| **Arquivos** | Alterações de arquivos em um espaço de trabalho não afetam os outros |
| **Staging** | Cada espaço de trabalho tem sua própria staging area |

### Benefícios

<CardGroup cols={2}>
  <Card title="Zero interferência" icon="shield-halved">
    Agentes paralelos não podem entrar em conflito, fisicamente impossível
  </Card>
  <Card title="Experimentação segura" icon="flask">
    Experimente alterações arriscadas sem afetar o código estável
  </Card>
  <Card title="Comparação clara" icon="code-compare">
    Use git diff para comparar abordagens entre espaços de trabalho
  </Card>
  <Card title="Rebase seletivo" icon="code-merge">
    Faça rebase apenas dos resultados em que você confia
  </Card>
</CardGroup>

---

## Base Workspace vs Workspaces

### Base Workspace

O Base workspace é o checkout original do seu repositório, servindo como ponto de partida padrão.

| Característica | Descrição |
|----------------|-------------|
| **Localização** | A localização original do seu git clone ou init |
| **Branch primária** | Normalmente na branch main ou de desenvolvimento |
| **Ponto de referência** | Fonte para comparar trabalho experimental |

**Quando usar o Base:**
- Alterações rápidas que não precisam de isolamento
- Ponto de referência para comparar trabalho experimental
- Quando você quer que as alterações vão diretamente para a branch principal
- Tarefas simples em que a execução paralela não é necessária

### Workspace

Um Workspace é um ambiente de trabalho isolado criado usando git worktrees, com seu próprio checkout de branch independente e estado de arquivos.

**Quando usar um Workspace:**
- Desenvolvimento de funcionalidades em paralelo
- Experimentação com alterações arriscadas
- Trabalhar em várias tarefas simultaneamente
- Quando você quer isolamento antes de fazer rebase

---

## Criar e gerenciar espaços de trabalho

### Criar um novo espaço de trabalho

| Plataforma | Atalho |
|----------|----------|
| **macOS** | `Cmd+Shift+N` |
| **Windows** | `Ctrl+Shift+N` |

**O que acontece:**
1. O Verdent cria um diretório isolado de git worktree
2. Uma nova branch é criada (ou uma branch existente é feita checkout)
3. O espaço de trabalho fica totalmente isolado dos outros espaços de trabalho
4. O espaço de trabalho aparece em **All Workspaces** na barra superior

### Alternar entre espaços de trabalho

| Ação | macOS | Windows |
|--------|-------|---------------|
| **Próximo espaço de trabalho** | `Ctrl+Tab` | `Ctrl+Tab` |
| **Espaço de trabalho anterior** | `Ctrl+Shift+Tab` | `Ctrl+Shift+Tab` |
| **Selecionar espaço de trabalho** | Clique em **All Workspaces** na barra superior | Clique em **All Workspaces** na barra superior |

**Preservação de estado:**
- O Verdent mantém todos os estados de espaço de trabalho ativos
- Alterne instantaneamente sem atraso de configuração
- Contexto completo preservado ao alternar

---

## Fazer rebase das alterações do espaço de trabalho

Quando você estiver pronto para integrar as alterações do espaço de trabalho de volta à branch principal:

### Usando a interface do Verdent

<Steps>
  <Step title="Concluir o trabalho">
    Conclua o trabalho no espaço de trabalho
  </Step>
  <Step title="Revisar alterações">
    Clique em **Task Changes** no painel central para revisar todas as modificações
  </Step>
  <Step title="Fazer rebase para a branch principal">
    Clique em **Workspace Actions → Rebase to main branch** na Workspace Bar
  </Step>
  <Step title="Resolver conflitos">
    Resolva quaisquer conflitos, se solicitado
  </Step>
  <Step title="Verificar">
    Revise as alterações antes de confirmar
  </Step>
</Steps>

### Manter os espaços de trabalho atualizados

Use **Workspace Actions → Sync with main branch** para trazer as últimas alterações da branch principal para o seu espaço de trabalho. Isso ajuda a evitar grandes conflitos ao fazer rebase.

---

## Melhores práticas

### Convenções de nomenclatura

| Prática | Exemplo |
|----------|---------|
| Nomes descritivos | `feature-auth`, `bugfix-123`, `experiment-caching` |
| Incluir números de tickets | `JIRA-456-user-login` |
| Manter nomes curtos | Evite nomes excessivamente longos |

### Manutenção de espaços de trabalho

| Prática | Por quê |
|----------|-----|
| **Excluir espaços de trabalho já rebaseados** | Liberar espaço em disco |
| **Remover experimentos abandonados** | Manter a lista de espaços de trabalho gerenciável |
| **Manter um número razoável de espaços de trabalho** | Os recursos do sistema são finitos |

### Higiene do Git

| Prática | Por quê |
|----------|-----|
| **Faça commits com frequência** | Faça commit do trabalho em andamento antes de alternar |
| **Commits pequenos** | Commits menores são mais fáceis de fazer cherry-pick |
| **Sincronize com a base regularmente** | Não deixe os espaços de trabalho divergirem demais da branch principal |
| **Reduza a complexidade de conflitos** | A integração regular evita grandes conflitos |

---

## Perguntas frequentes

<AccordionGroup>
<Accordion title="Quanto espaço em disco cada espaço de trabalho usa?">
Cada espaço de trabalho duplica os arquivos de trabalho, mas compartilha o diretório `.git`. O uso de espaço equivale aproximadamente ao tamanho do seu projeto por espaço de trabalho. Projetos grandes com muitos espaços de trabalho paralelos usarão um espaço em disco significativo.
</Accordion>

<Accordion title="Posso excluir um espaço de trabalho?">
Sim. Exclua o espaço de trabalho pelo Verdent. Isso remove o diretório, mas preserva qualquer trabalho com commit na branch.
</Accordion>

<Accordion title="O que acontece com as alterações sem commit se eu excluir um espaço de trabalho?">
As alterações sem commit são perdidas quando um espaço de trabalho é excluído. Sempre faça commit ou stash das alterações antes de remover um espaço de trabalho.
</Accordion>

<Accordion title="Posso converter um espaço de trabalho no base workspace?">
Não há conversão direta, mas você pode fazer rebase de todas as alterações do espaço de trabalho para a branch principal e depois excluir o espaço de trabalho. O histórico da branch é preservado.
</Accordion>

<Accordion title="Os worktrees funcionam com todos os serviços de hospedagem git?">
Sim. Os worktrees do Git são um recurso padrão do git. Eles funcionam com GitHub, GitLab, Bitbucket e qualquer outro serviço de hospedagem git.
</Accordion>
</AccordionGroup>
