No macOS, remova um worktree vinculado finalizado pelo Terminal com git worktree remove, mas primeiro verifique se ele contém alterações de que você ainda precisa. O Git remove um worktree limpo; se ele estiver modificado (dirty), a operação é interrompida a menos que você force a remoção. Para manter o trabalho não finalizado, faça o commit ou stash antes de remover o diretório. Não adicione --force apenas para ignorar o aviso do Git: isso pode descartar os arquivos locais do worktree. Estas etapas se aplicam a worktrees vinculados, não ao diretório de trabalho principal do repositório. Documentação do Git worktree
1. Localize o worktree e verifique seu estado
Abra o Terminal e vá para o repositório principal ou qualquer worktree vinculado pertencente ao mesmo repositório. Para ver todos os caminhos e branches de worktrees associados, execute:
git worktree list
Copie o caminho exato do worktree finalizado. Em seguida, inspecione seu status de dentro desse worktree, colocando o caminho entre aspas se ele contiver espaços:
cd "/path/to/finished-worktree"
git status --short --branch
A saída de status ajuda a revelar arquivos rastreados modificados ou em stage, bem como arquivos não rastreados. Verifique também o worktree no Finder para identificar arquivos locais dos quais seu fluxo de trabalho depende. Arquivos ignorados pelo Git podem não aparecer na saída de status comum. Se não tiver certeza se algo no diretório é dispensável, pare antes da remoção e faça um backup separado ou preserve o diretório. Um worktree do Git compartilha dados de repositório com seu worktree principal, mas possui checkout e índice próprios; remover o checkout não é uma operação de backup de uso geral. Documentação do Git worktree
2. Preserve as alterações que deseja manter
Se o trabalho estiver pronto para ser mantido no repositório, faça o commit no branch do worktree. Primeiro, revise o status e o diff; em seguida, adicione ao stage apenas os arquivos que pretende incluir e faça o commit:
git diff
git add path/to/file
git commit -m "Describe the finished work"
Remova o espaço acidental no início antes de git commit se o seu shell tratá-lo de forma inesperada; a forma limpa é git commit -m "Describe the finished work". Um commit mantém as alterações no histórico do Git, mas verifique se ele está no branch pretendido antes de remover o worktree.
Se as alterações não estiverem finalizadas, use o stash para as edições rastreadas e arquivos não rastreados:
git stash push -u -m "Before removing finished worktree"
git stash list
A opção -u inclui arquivos não rastreados. Arquivos ignorados não são incluídos, portanto, preserve separadamente qualquer configuração local ignorada, arquivos gerados ou outros dados necessários. Confirme se o novo stash aparece na lista antes de prosseguir. Os stashes pertencem ao repositório, e você pode aplicar posteriormente as alterações salvas a partir de outro worktree com git stash apply stash@{0}; verifique primeiro o número da entrada, pois stashes posteriores podem alterar a ordem da lista. Aplicar um stash pode gerar conflitos, portanto, inspecione o resultado antes de excluir o stash. Documentação do Git stash
3. Remova o worktree limpo
Depois de fazer commit ou stash das alterações necessárias, saia do diretório de destino e execute o comando de remoção a partir de outro worktree no mesmo repositório. Use o caminho exato informado por git worktree list:
cd "/path/to/main-repository"
git worktree remove "/path/to/finished-worktree"
git worktree list
A segunda listagem serve como uma confirmação útil de que o Git não lista mais aquele checkout. A documentação do Git especifica que remove aceita apenas worktrees limpos por padrão; um arquivo não rastreado ou uma modificação em um arquivo rastreado pode impedir a remoção. Documentação do Git worktree
Se a remoção relatar que o worktree não está limpo, não mude para git worktree remove --force a menos que tenha decidido que todos os arquivos locais restantes podem ser descartados. Volte para aquele worktree, inspecione com git status e preserve os arquivos ou alterações restantes primeiro. Em particular, o stash não inclui arquivos ignorados, e um submódulo pode ter suas próprias alterações que necessitam de atenção separada.
Se você já excluiu a pasta no Finder
Se você excluiu um diretório de worktree vinculado fora do Git, seu registro administrativo pode permanecer. A partir do repositório principal, execute git worktree list e verifique se o caminho ausente está marcado como prunable. O Git disponibiliza git worktree prune para remover registros de worktrees cujos diretórios estão ausentes; isso não restaura os arquivos excluídos do projeto. Use-o apenas após confirmar que o diretório realmente desapareceu e que você não precisa do seu conteúdo. Para limpezas futuras, use git worktree remove para que o Git atualize os metadados do worktree como parte da remoção. Documentação do Git worktree
Uma limpeza segura termina com o checkout finalizado removido, todas as alterações que você pretendia manter devidamente commitadas ou no stash, e quaisquer arquivos locais ignorados necessários preservados separadamente. Deixe o worktree no lugar sempre que não puder confirmar se o conteúdo restante é dispensável.