No dia a dia
Tarefas isoladas
Uma sessão isolada ganha pasta e branch próprias, com arquivos e área de stage separados. É o que permite dois agentes trabalharem no mesmo repositório sem se atropelar.
Por que isolar
Dois agentes na mesma pasta disputam os mesmos arquivos e a mesma área de stage. Um salva enquanto o outro lê, um faz commit do que o outro escreveu, e o resultado é um emaranhado que ninguém consegue revisar.
A sessão isolada usa worktree do git: outra pasta no disco, outra branch, o mesmo repositório. Cada agente trabalha como se tivesse um clone só dele, sem o custo de clonar.
Criar uma sessão isolada
No diálogo de nova sessão, em ⌘⇧S, marque Criar sessão isolada. A linha embaixo diz exatamente o que vai acontecer, e muda conforme a opção: ou a sessão parte da branch base, ou ela compartilha arquivos e branch com a pasta do projeto.
~/ingestao ❯ git log --oneline -3
4a093ce Testes da sincronização
4edff57 Evita registros duplicados na sincronização
3b1d01c Fila com limite configurável
~/ingestao ❯ npm test --silent
Nova sessão
✓ Criar sessão isolada (worktree)
Parte de main. Arquivos e stage separados das outras tarefas.
Plan mode (só planeja, não edita)
Em segundo plano (sem roubar o foco)
Com a opção marcada aparece o campo do nome. Se você deixar em branco, a branch nasce como session/ mais um apelido gerado do pedido. Projeto que não é repositório git não oferece a opção, e a sessão usa a pasta do projeto.
De onde a branch parte
Da branch base do projeto, se você tiver definido uma nas configurações. Sem isso, o Deck procura nesta ordem: a branch padrão do remoto, depois main, depois master.
- Atualiza antes de ramificar. Quando a base é do remoto, o app busca as novidades antes de criar, para a worktree nascer do commit mais novo. Dá para desligar por projeto.
- Nome repetido não sobrescreve. Se a branch já existir, o Deck cria uma variação numerada em vez de mexer na sua.
Onde a pasta nasce
Em Configurações, na parte de git e worktrees, você escolhe o lugar. A mesma escolha vale para as áreas de revisão de pull request.
| Opção | Onde a pasta aparece |
|---|---|
| Pasta do Deck | Dentro da pasta de dados do app, organizada por projeto. É o padrão. |
| Ao lado do repo | Irmã do repositório, com o nome do projeto e da tarefa. |
| Dentro do repo | Em .worktrees, dentro do próprio repositório. |
| Personalizado | Um modelo seu, com {pai}, {projeto} e {branch}. |
Se você usa ferramentas que varrem a pasta do projeto, como indexadores e watchers, guardar as worktrees fora do repositório evita que elas apareçam duas vezes.
O que a pasta leva junto
Uma worktree nasce com os arquivos versionados da branch base, e só. Isso quebraria projeto que depende de node_modules e de .env, então o Deck leva os ignorados junto, por atalho no sistema de arquivos, sem copiar.
- Só o que o git confirma como ignorado, e só no topo do repositório.
- Arquivo ignorado muda junto. Como é atalho, editar o
.envprincipal reflete na worktree. - Arquivo não versionado que não é ignorado não vai. Se você tem trabalho solto na pasta principal, ele fica lá.
- No Windows, pasta vira junção e arquivo é copiado, porque atalho para arquivo exige privilégio.
Isso é configurável por projeto, caso você prefira worktree completamente limpa.
Comando de preparo
Cada projeto pode ter um comando que roda na worktree recém-criada, em segundo plano. É o lugar de instalar dependências ou subir o que a tarefa precisa. O log fica em um arquivo dentro da própria pasta, então dá para conferir depois sem adivinhação.
Existe também o comando de limpeza, que roda antes de remover a worktree. Se ele falhar, a remoção para e pergunta se é para seguir assim mesmo.
Remover quando terminar
A página do projeto tem uma aba de worktrees com todas elas: a branch, o caminho, a idade e os botões de abrir sessão, ver mudanças e remover. Há também a limpeza das órfãs, para quando você apagou uma pasta à mão e o git ainda tem o registro.
Pelo caminho da sessão, arquivar oferece remover a worktree e a branch junto, e explica que cancelar arquiva só a sessão e deixa o trabalho no disco. Se outra sessão estiver viva na mesma pasta, o app não oferece a remoção.
A remoção descarta alteração não commitada de propósito, para não travar em pasta que o agente deixou suja. Se tiver algo que você quer guardar, faça o commit ou copie antes.
Com a worktree pronta e a branch cheia de mudança, o passo seguinte é ler o que foi feito. Isso está em Diff e revisão.