## glossário
O que é Branch?
Branch (ramo) é uma linha de desenvolvimento independente dentro de um repositório Git. Ela permite trabalhar em uma funcionalidade ou correção sem afetar o código principal, isolando mudanças até que estejam prontas para serem integradas.
Tecnicamente, uma branch no Git é apenas um ponteiro móvel para um commit — um arquivo de poucos bytes. É por isso que criar branches é instantâneo e barato, diferente de sistemas antigos em que ramificar copiava o projeto inteiro.
A---B---C feat/carrinho
/
D---E---F---G main
# A branch feat/carrinho partiu do commit E.
# main seguiu para F e G de forma independente.
# Nada em feat/carrinho afeta main até a integração.Operações essenciais
git branch # lista as branches locais
git switch -c feat/carrinho # cria e entra na nova branch
git switch main # volta para a principal
git merge feat/carrinho # integra as alterações
git branch -d feat/carrinho # remove após integrar
git push origin --delete feat/carrinho # remove no remotoEstratégias de ramificação
- Git Flow — branches fixas de
develop,releaseehotfixalém da principal. Estruturado, adequado a produtos com versões e janelas de release. - GitHub Flow — apenas
maine branches curtas de funcionalidade, integradas via pull request. Simples e alinhado a deploy contínuo. - Trunk Based Development — todos integram na principal várias vezes ao dia, com branches vivendo horas. Exige boa cobertura de testes e feature flags.
A tendência atual favorece branches de vida curta. Quanto mais tempo uma branch vive isolada, maior a divergência acumulada e mais dolorosa a integração — exatamente o problema que a integração contínua existe para evitar.
Conflitos: por que acontecem e como resolver
Um conflito surge quando duas branches alteram as mesmas linhas de um arquivo e o Git não consegue decidir qual versão manter. Ele marca o trecho e transfere a decisão para você.
<<<<<<< HEAD
const desconto = calcularDesconto(total, 0.10);
=======
const desconto = total * 0.15;
>>>>>>> feat/promocao
# Edite mantendo o que deve permanecer,
# apague as marcações, e então:
git add arquivo.ts
git commitComo reduzir conflitos
Integre a branch principal na sua com frequência, em vez de acumular divergência por semanas. Mantenha branches pequenas e focadas. E combine com o time a divisão do trabalho para evitar que duas pessoas reescrevam o mesmo arquivo simultaneamente — a maior parte dos conflitos é de coordenação, não de ferramenta.
## faq
Perguntas frequentes
Qual a diferença entre git switch e git checkout?
git checkout é o comando antigo e acumula funções distintas: trocar de branch e restaurar arquivos. Para reduzir a confusão, o Git introduziu git switch (trocar de branch) e git restore (restaurar arquivos). O checkout continua funcionando, mas os novos são mais claros.
Devo apagar a branch depois do merge?
Sim. O histórico dos commits permanece na branch principal, então nada é perdido. Manter branches já integradas apenas polui a lista e dificulta identificar o que está realmente em andamento. Plataformas como GitHub oferecem remoção automática após o merge.
O que é uma branch protegida?
É uma configuração da plataforma que impede push direto em branches críticas como a main, exigindo pull request, aprovações e verificações de CI aprovadas antes do merge. É a forma padrão de garantir que nada entre em produção sem revisão.