DEV Community

Danilo Silva
Danilo Silva

Posted on

Git Flow - "Era uma vez..." [pt-BR]

Vamos aprender sobre este fluxo que tem gerado sucesso em muitos times de desenvolvimento de software!


Teoria

É muito comum vermos desenvolvedores utilizando somente uma branch para fazer commits em projetos pessoais. Isto não é errado, é muito tranquilo de se controlar tudo em uma branch quando se está desenvolvendo sozinho, mas o cenário muda bastante quando temos que interagir com mais desenvolvedores, seja em um projeto de código aberto(opensource) ou privado.

Nessas horas é importante que se tenha total controle do que está sendo produzido por sua equipe, onde, ao mesmo tempo são corrigidas falhas, implementadas novas funcionalidades e o ideal é ter o seu código de produção com total funcionamento entregue ao cliente.

É aí que o Fluxo Git Flow nos ajuda, olhe a imagem abaixo para entender melhor:

Git Flow In Action

O Git Flow é um modelo de conjunto de instruções que você e/ou equipes de desenvolvimento podem seguir para organizar as branches.

É importante ressaltar que o Git Flow são orientações e não regras, ou seja, você não precisa seguir 100% ao pé da letra, acho bacana e até saudável que pensemos em adaptações de acordo com a equipe de desenvolvimento e o modelo de trabalho.

As branches principais

A master deve ser a principal branch onde o código-fonte sempre reflete um estado pronto que, quando versionado, será publicado em produção.

A develop sempre deve conter o código mais atual, ou seja, o que está sendo desenvolvido no momento. Isto é possível fazendo com que as branches de features sejam criados através dela e no fim de seu ciclo, todo o código produzido seja mesclado (merge) na develop.

Quando o código-fonte na develop atinge um ponto estável e está pronto para ser liberado, todas as alterações devem ser mescladas (merge) na master de alguma forma e marcadas com um número de release (tag).

💡 Iremos nos aprofundar mais detalhadamente sobre os conceitos de branches e tags nos próximos posts.

As branches de apoio

Junto as principais branches, master e develop, há diversas branches de apoio para auxiliar o desenvolvimento paralelo entre os membros da equipe, facilitar o rastreamento de recursos, preparar releases de produção e ajudar a corrigir instantaneamente problemas de produção (hotfix).

Ou seja:

  • feature: para novas implementações
  • release: para finalizar releases e tags
  • hotfix: para resolver problemas críticos em produção que não podem esperar uma nova release

⚡ Para saber como configurar o fluxo do Git Flow em um repositório e como criar as branches de apoio de forma dinâmica, navegue pelas publicações com a tag gitflow.


Obrigado por chegar até aqui! 😄

Top comments (0)