DEV Community

Danilo Silva
Danilo Silva

Posted on

1

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! 😄

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay