Pular para o conteúdo
DocumentaçãoInstalar

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.

A opção de isolamento no diálogo de nova sessão, com o nome da branch logo abaixo.

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çãoOnde a pasta aparece
Pasta do DeckDentro da pasta de dados do app, organizada por projeto. É o padrão.
Ao lado do repoIrmã do repositório, com o nome do projeto e da tarefa.
Dentro do repoEm .worktrees, dentro do próprio repositório.
PersonalizadoUm 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 .env principal 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.