Git worktree: várias branches em checkout ao mesmo tempo

Guia de git worktree

Git worktree: add, list, remove e prune, com exemplos | We.Inc

Monte o comando git worktree add exato para uma branch nova, uma branch existente ou um commit detached e depois liste, trave, mova, remova e limpe worktrees com segurança.

O git worktree permite que um repositório tenha várias pastas de trabalho, cada uma na sua própria branch, compartilhando um único armazenamento de objetos. Rode git worktree add ../hotfix -b hotfix para criar uma pasta nova em uma branch nova, git worktree list para ver todas e git worktree remove ../hotfix quando terminar. Sem precisar de um segundo clone.

Os comandos de worktree do dia a dia

Fazer stash, trocar de branch e recompilar toda vez que alguém pede uma correção rápida desperdiça tempo. Uma worktree dá a você um segundo checkout do mesmo repositório em outra pasta, então uma bateria de testes longa, uma revisão de código e um patch urgente podem viver cada um no seu próprio diretório. Use o gerador para obter os comandos e consulte a referência para os subcomandos menos comuns.

Perguntas frequentes

Qual é a diferença entre uma worktree e um clone?

Um clone copia o repositório inteiro, incluindo o histórico. Uma worktree vinculada compartilha os objetos e as refs do repositório original e só adiciona uma nova pasta de trabalho e um pouco de metadados, então commits feitos em uma ficam visíveis na hora nas outras, sem fetch.

Duas worktrees podem usar a mesma branch?

Não por padrão. O git worktree add recusa uma branch que já está em checkout em outro lugar, porque duas pastas movendo a mesma branch sobrescreveriam o trabalho uma da outra. O --force ignora isso, mas um HEAD detached ou uma segunda branch é quase sempre a melhor escolha.

Por que o git worktree remove falha?

Ele recusa quando a pasta tem arquivos rastreados modificados ou arquivos não rastreados, para você não perder trabalho. Faça commit ou limpe a pasta antes, ou passe --force. Uma worktree travada precisa de --force duas vezes.

O que o git worktree prune faz?

Ele apaga os registros que sobram no git para worktrees cujas pastas não existem mais, por exemplo depois de você remover uma com rm -rf. Adicione -n para ver antes o que ele removeria.

Como renomeio ou movo a pasta de uma worktree?

Use git worktree move <worktree> <new-path> para que o git atualize os seus registros. Se você já a moveu pelo gerenciador de arquivos, rode git worktree repair a partir do novo local para reconectá-la.

Bons motivos para usar worktrees

O que é compartilhado e o que não é

Todos os subcomandos do git worktree

Subcomandos do git worktree e a sua sintaxe

Um hotfix sem sair da sua branch

Corrija a produção com uma feature pela metade

A pasta da sua feature fica exatamente como estava. A correção vive em uma pasta irmã e é removida depois do push.

Liste as worktrees em formato fácil para scripts

Cada worktree é um bloco de linhas separado por uma linha em branco: o caminho, o hash do HEAD e a branch (ou detached).

Gerador de comandos de worktree

Pasta da worktree

Nome da branch

Começar a partir de (branch, tag ou commit)

O que fazer checkout

Branch nova

Branch existente

Commit detached

Criar e abrir

Quando terminar

Digite o caminho de uma pasta para ver os comandos.

Dica: um caminho que começa com ../ deixa a pasta nova ao lado do seu checkout principal.

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site