2.9 - Ramificação (Branch e Trunk)
Quase todos os Sistemas de Controle de Versão têm alguma forma de suporte à ramificação (branching).
A última revisão, a mais atual, normalmente é chamada de “head” (cabeça). Existem momentos onde há vários “heads”, pois o projeto tem vários branches.
Exemplo: imagine que você esteja trabalhando em um novo recurso em um branch específico. O cliente liga e diz que encontrou um bug, originado numa modificação feita na semana passada. Você sai do branch do novo recurso, entra no branch que tem o código que está em produção (que é o que o cliente está vendo) e cria um novo branch. Você resolve o bug neste novo branch. Feito isso, você pode mover as modificações deste branch para o branch de produção e aí entra o processo de entrega (deploy) que pode mudar de empresa para empresa.
Quando tudo estiver finalizado, você volta para o branch onde estava desenvolvendo o novo recurso e pronto. Sem misturar códigos, sem modificações manuais, tudo simples e transparente para o desenvolvedor.