Isolamento de espaço de trabalho
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
Zero interferência
Agentes paralelos não podem entrar em conflito, fisicamente impossível
Experimentação segura
Experimente alterações arriscadas sem afetar o código estável
Comparação clara
Use git diff para comparar abordagens entre espaços de trabalho
Rebase seletivo
Faça rebase apenas dos resultados em que você confia
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:
- O Verdent cria um diretório isolado de git worktree
- Uma nova branch é criada (ou uma branch existente é feita checkout)
- O espaço de trabalho fica totalmente isolado dos outros espaços de trabalho
- 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
Concluir o trabalho
Conclua o trabalho no espaço de trabalho
Revisar alterações
Clique em Task Changes no painel central para revisar todas as modificações
Fazer rebase para a branch principal
Clique em Workspace Actions → Rebase to main branch na Workspace Bar
Resolver conflitos
Resolva quaisquer conflitos, se solicitado
Verificar
Revise as alterações antes de confirmar
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
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.
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.
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.
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.
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.