Skip to content
Latchkey

O Que É Trunk-Based Development?

Trunk-based development é uma estratégia de branching em que todos integram pequenas mudanças em uma única branch principal com frequência, evitando branches de vida longa.

O trunk-based development mantém a equipe trabalhando perto de uma branch compartilhada, o trunk. Em vez de feature branches que vivem por semanas, os desenvolvedores fazem pequenas mudanças e as fazem merge diariamente ou até várias vezes ao dia. É o modelo de branching que melhor sustenta uma integração contínua rápida.

A ideia central

Há um trunk, geralmente chamado de main, que permanece sempre lançável. O trabalho acontece em branches de vida muito curta ou diretamente no trunk atrás de feature flags, e faz merge de volta rapidamente. O objetivo é minimizar o tempo que as mudanças passam afastadas do trunk.

Um workflow de branch curta

Uma mudança sai em uma branch, passa por review e testes, e faz merge dentro de um dia ou algo assim.

A short-lived trunk branch
git switch -c fix/typo
git commit -am "Fix typo in header"
# open PR, pass CI, merge same day

Por que funciona

Como todos integram com frequência, os merges permanecem minúsculos e os conflitos raros. O trunk reflete a realidade mais recente o tempo todo, então não há uma integração big-bang dolorosa. Features incompletas ficam escondidas atrás de feature flags em vez de estacionadas em branches longas.

Trunk-based development e CI/CD

Esse modelo depende de um pipeline rápido e confiável: se toda pequena mudança faz merge rápido, o CI precisa verificar cada uma em minutos e manter o trunk verde. Em troca, o trunk fica sempre perto de ser lançável, que é exatamente o que a entrega contínua precisa. Runners rápidos tornam o loop de feedback apertado prático.

Fazendo funcionar

  • Mantenha as branches vivas por horas ou um dia, não semanas.
  • Esconda o trabalho inacabado atrás de feature flags.
  • Invista em um CI rápido para que merges frequentes permaneçam verificados.
  • Trate um trunk quebrado como um evento de parar a linha.

Principais conclusões

  • O trunk-based development integra pequenas mudanças em uma branch principal com frequência.
  • Ele minimiza branches de vida longa e os conflitos que elas causam.
  • Depende de um CI rápido para manter o trunk sempre lançável e verde.

Guias relacionados