Menu
Coddy logo textTech

Git Worktree

Última atualização

git worktree permite que um mesmo repositório tenha vários diretórios de trabalho ao mesmo tempo, cada um em uma branch diferente. Em vez de fazer stash do seu trabalho para trocar de branch, você faz checkout da outra branch em uma pasta separada - revise um PR, rode um hotfix ou compile uma branch enquanto edita outra, tudo compartilhando o mesmo histórico .git.

Experimente isto no terminal playground - um shell de verdade no seu navegador, sem nada para instalar.

Sintaxe

CommandWhat it does
git worktree add ../hotfix hotfixFaz checkout de hotfix em uma pasta irmã
git worktree add -b new ../newCria uma branch e um worktree para ela
git worktree listLista todos os worktrees e suas branches
git worktree remove ../hotfixRemove um worktree
git worktree pruneLimpa entradas obsoletas de worktree

Exemplo prático

Corrija um bug na main sem perturbar sua branch de feature.

StepCommandResult
1git worktree add ../fix mainmain em checkout em ../fix
2Corrija e faça commit em ../fixHotfix feito na main
3git worktree remove ../fixLimpeza; a branch de feature ficou intacta

Perguntas frequentes sobre git worktree

O que é um git worktree?
Um worktree é um diretório de trabalho adicional vinculado ao mesmo repositório, com checkout em uma branch ou commit diferente. Ele permite ter várias branches em checkout ao mesmo tempo em pastas separadas, todas compartilhando um único histórico .git - assim você não precisa fazer stash nem clonar para trabalhar em duas branches ao mesmo tempo.
Como adiciono um worktree?
Rode git worktree add <path> <branch>, por exemplo git worktree add ../hotfix hotfix. O Git faz checkout dessa branch na nova pasta. Para criar uma branch nova ao mesmo tempo, use git worktree add -b <newbranch> <path>.
Quando devo usar um worktree em vez de trocar de branch?
Use quando trocar de branch for prejudicial - você tem trabalho não commitado, uma compilação longa que não quer interromper ou precisa comparar duas branches lado a lado. Um worktree entrega a outra branch na própria pasta sem tocar na atual.
Como removo um worktree?
Rode git worktree remove <path>. Se a pasta foi apagada manualmente, rode git worktree prune para limpar o registro obsoleto. Você não pode remover o worktree principal (a pasta original do repositório), apenas os extras que você adicionou.
Posso praticar isto online?
Sim. Abra o terminal playground para rodar git worktree em um shell de verdade no seu navegador - sem nada para instalar. O curso interativo e gratuito de Git da Coddy também cobre os fluxos de trabalho com branches passo a passo.
Coddy programming languages illustration

Aprenda Git com a Coddy

COMEÇAR