Skip to content
Latchkey

O Que É um Branch no Git?

Um branch é um ponteiro móvel para um commit, dando a você uma linha de desenvolvimento separada na qual você pode trabalhar sem afetar o código principal.

Branches são como as equipes trabalham em muitas coisas ao mesmo tempo sem atrapalhar umas às outras. Um branch é pouco mais que um ponteiro nomeado para um commit, o que torna criar um quase gratuito. Você cria um branch, desenvolve uma feature ou correção e faz merge de volta quando está pronto e verificado.

O que um branch realmente é

Um branch é apenas uma referência leve e móvel para um commit. Quando você faz commit em um branch, o ponteiro do branch avança para o novo commit. Como o ponteiro é tão barato, criar e deletar branches é instantâneo, o que incentiva trabalho frequente e isolado.

Trabalhando em um branch

Você cria um branch, muda para ele, faz commits e depois faz merge de volta na linha principal.

Branch, commit, merge
git switch -c feature/login
git commit -am "Add login page"
git switch main
git merge feature/login

Por que branches importam

Branches permitem que múltiplos desenvolvedores e features progridam em paralelo. O branch main permanece em um estado conhecido como bom enquanto trabalho arriscado ou inacabado vive em outro lugar. Esse isolamento é a base dos workflows de pull request, onde um branch é revisado e testado antes de fazer merge.

Branches em CI/CD

A CI tipicamente roda em cada push de branch e em cada pull request, então cada branch recebe seus próprios resultados de build e teste antes de fazer merge. Pipelines muitas vezes se comportam de forma diferente por branch, por exemplo fazendo deploy do branch main para produção enquanto apenas rodam testes em branches de feature. Filtros como padrões de branch permitem escopar quais workflows rodam onde.

Armadilhas comuns de branching

  • Branches de vida longa se afastam muito da main e criam merges dolorosos.
  • Esquecer de deletar branches já mergeados bagunça o repositório.
  • Rodar pipelines caros em cada branch pode desperdiçar minutos de CI.
  • Proteção de branch é necessária para impedir merges não revisados na main.

Principais conclusões

  • Um branch é um ponteiro barato e móvel para um commit.
  • Branches permitem trabalho paralelo mantendo a main estável.
  • A CI roda por branch e por pull request, muitas vezes com comportamento específico de branch.

Guias relacionados