Se você já precisou parar o que estava fazendo em uma branch de desenvolvimento para corrigir um bug urgente em produção, sabe o trabalho que dá: você precisa fazer stash das alterações atuais, trocar de branch, compilar tudo de novo e, depois, voltar. O Git Worktree resolve esse problema permitindo que você abra múltiplos diretórios de trabalho conectados ao mesmo repositório local.
O que é o Git Worktree? Link para o cabeçalho
O comando git worktree permite anexar árvores de trabalho adicionais ao seu repositório atual. Em vez de clonar o projeto inteiro duas vezes em pastas diferentes — o que duplica o espaço em disco e desconecta os históricos —, o Worktree compartilha o mesmo banco de dados .git, mas oferece pastas separadas para você editar arquivos e rodar testes em branches diferentes ao mesmo tempo.
- Economia de espaço: Compartilha o mesmo diretório
.gitcentral. - Issempre atualizado: Cada pasta tem sua própria branch ativa e independente.
- Agilidade: Adeus aos comandos constantes de stash e pop.
Exemplo Prático de Uso Link para o cabeçalho
Imagine que você está na sua branch principal (main) ou desenvolvendo uma nova funcionalidade (feature-login), mas precisa criar uma correção rápida. Veja como usar o Worktree passo a passo:
- Visualize os worktrees atuais:
git worktree list
Isso mostrará o seu diretório principal atual.
- Crie um worktree para o bugfix:
Suponha que você queira criar uma pasta chamada hotfix-login fora do seu projeto principal para corrigir um erro na branch main:
git worktree add ../hotfix-login main
(Nota: O Git vai criar a pasta
hotfix-loginno diretório pai, já apontando para a branchmain).
- Trabalhe na nova pasta:
Abra a nova pasta em seu editor de código. Faça suas alterações, salve e faça o commit normalmente. O seu repositório principal continuará completamente intacto.
- Remova o worktree após o uso:
Assim que o bug for corrigido e você enviar o código, você pode limpar o worktree com segurança:
git worktree remove ../hotfix-login