Git Flow

Durante alguns anos trabalhando com o sistema de controle de versão GIT, pude presenciar algumas situações que me fizeram amar o git e outras que, verdadeiramente, me fizeram odiá-lo. Amar o git é fácil, odiá-lo nem tanto. Mas em alguns momentos críticos, corrigir os conflitos me geraram certa frustração.

Uma coisa que não tem como negar são os pontos que me fizeram amar o git. A facilidade com que ele permite criar branchs e gerenciar voltar os commits são fantásticos. Tudo fica ainda mais atraente quando estamos utilizando alguma plataforma de controle de versão como o github, bitbucket ou gitlab. Estes apresentam visualizações que facilitam muito o controle dos commits, a visualização dos históricos e as árvores de modificações.

Por mais que tudo seja lindo quando usamos tais ferramentas, à medida que um projeto cresce a probabilidade do workflow virar uma bagunça aumenta. Usar o workflow básico no qual cria-se uma branch para cada feature funciona muito bem. Funcionou durante anos nas equipes em que trabalhei. Porém há casos em que esse tipo de workflow não é o suficiente para manter um ambiente organizado. E foi buscando uma forma de mitigar esse problema que eu conheci recentemente o Git Flow.

O Git Flow não é recente. Longe disso. Proposto por Vincent Driessen, em 2010, [1] o Git Flow é um Modelo para Branch do git (Git Branch Model). É um workflow que tenta organizar de uma maneira sustentável o fluxo de versionamento do git.

Ao invés de se trabalhar com uma branch master, e uma branch por feature, o Git Flow define um modelo de branch como mostrado na Figura abaixo, já prevendo a separação de ambientes de produção e homologação, correção de bugs e desenvolvimento de funcionalidades. git-model@2x.png

Novas branchs são apresentadas aos desenvolvedores:

  • master
  • development
  • feature
  • release
  • hotfix

Referências:

  1. https://nvie.com/posts/a-successful-git-branching-model/
  2. https://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/
  3. https://www.atlassian.com/br/git/tutorials/comparing-workflows/gitflow-workflow
  4. https://imasters.com.br/agile/fluxo-de-desenvolvimento-com-gitflow

By Tales Mota Machado