Trabalhando em várias ramificações simultaneamente em um único repositório

Em um mundo perfeito, todo desenvolvedor deveria estar focado em uma única tarefa ou história, não tendo que alternar entre diferentes contextos. Vamos enfrentá-lo, que raramente é o caso hoje em dia. Felizmente, o git tem a ferramenta perfeita em seu arsenal, permitindo que os desenvolvedores trabalhem em várias ramificações simultaneamente, sem ficar indo e voltando. O instrumento em questão é o git worktree.
Requisitos:
Para iniciar uma árvore de trabalho, você precisa de um repositório inicializado, opcionalmente com várias ramificações.

Por exemplo, vamos considerar um repositório com três branches. list-users-API
, um branch de recurso que é o branch ativo atual, o main
branch e user-unable-to-edit-content
, um branch de bug adicional. Um cenário possível é que a ramificação do bug não passou na revisão do código e outras alterações são necessárias. Existem algumas maneiras pelas quais podemos prosseguir a partir daqui:
- Esconda todo o nosso progresso e mude para o bug branch para aplicar as alterações necessárias.
- Clone o repositório em uma pasta diferente e resolva o problema sem precisar fazer stash, mas invista um tempo considerável no processo.
- A terceira e última abordagem é usar o git worktree, mantendo nosso progresso atual no branch de recursos e evitando a troca total.
Implementação:
Para começar, use o seguinte comando para inicializar uma árvore de trabalho :
$ git worktree add <path> [<commit-ish>]

Se você usar git branch
agora, verá um +
símbolo, prefixando o nome da ramificação. Para começar a usar a árvore de trabalho, basta abrir o novo diretório dentro do repositório com o IDE de nossa escolha. Agora podemos enviar alterações para a ramificação do bug ao mesmo tempo em que desenvolvemos o novo recurso. Assim que terminarmos as alterações, podemos remover a árvore de trabalho usando:
$ git worktree remove <worktree>
O Git worktree é um instrumento prático, que aumenta a versatilidade e economiza uma quantidade substancial de tempo. Ele permite trabalhar em duas ou mais ramificações sem precisar armazenar ou confirmar código inacabado. Espero que este artigo tenha ajudado e aumente sua produtividade. Por favor, forneça qualquer feedback que você considere importante compartilhar nos comentários!