GitFlow: o que é e para que ele serve

O GitFlow é uma extensão de comando do Git com cinco ramificações individuais muito indicado para projetos longos de tecnologia.

Se você já trabalha ou deseja trabalhar na área de desenvolvimento, certamente você sabe o que é GitFlow. Porém, se você nunca ouviu falar desse modelo de ramificação do Git que ajuda a melhorar o fluxo de trabalho (workflow), este artigo é para você. 

Nele, vamos explicar o que é o GitFlow, como usar, as vantagens e os tipos de branches. Continue a leitura e tire todas as dúvidas! 

O que é GitFlow?

O GitFlow é um modelo de fluxo de trabalho criado para o Git a partir da estratégia de ramificação. Ele tem como objetivo principal facilitar o processo de desenvolvimento com uma série de novos comandos e melhorar as organizações das ramificações (branches) dentro do repositório.    

Em resumo, o GitFlow foi pensado para quem deseja isolar o seu trabalho em diferentes ramificações do Git e assim conseguir realizar um melhor gerenciamento de projetos, em especial os projetos maiores. 

Como surgiu

O modelo foi publicado pela primeira vez em 2010 pelo engenheiro de software holandês, Vincent Driessen, com o propósito de ajudar equipes de desenvolvimento de software a melhorarem os seus fluxos de trabalho.

Na publicação da Nvie sobre o GitFlow, Driessen explica que o GitFlow consiste em “um conjunto de procedimentos que cada membro da equipe deve seguir para chegar a um processo de desenvolvimento de software gerenciado”.

Para que serve o GitFlow?

O GitFlow funciona como um modelo simples que facilita a compreensão e permite que os membros da equipe consigam, de forma coletiva, desenvolver os processos de ramificação e liberação das mesmas.

Ele serve para melhorar o fluxo de trabalho. Além disso, é muito indicado para projetos longos porque com ele é possível atribuir funções específicas às ramificações e definir como elas devem interagir. 

Uma outra funcionalidade do GitFlow é que com ele você pode criar ramificações individuais sem correr riscos de alterar a versão original.   

Como funciona o GitFlow?

O método GitFlow funciona a partir de branchs, que são ramificações montadas em um modelo gráfico que parece uma árvore com diversos galhos. 

Cada fluxo do GitFlow possui cinco ramificações que durante o desenvolvimento do projeto se integram uma à outra constantemente. São elas: Master, Develop, Feature, Hotfix e Release. 

Confira o modelo de fluxo original do GitFlow que é utilizado pelo criador do método, o holandês Vincent Driessen: 

Modelo Fluxo Git Flow
Modelo do fluxo Git Flow desenhado por Vincent Driessen.

Tipos de branches do fluxo GitFlow

Agora que você já sabe que existem cinco branches, você precisa saber como cada um funciona para entender porque as ramificações facilitam a compreensão e a categorização dos projetos.    

Abaixo, listamos os cinco tipos de branches, como cada uma funciona e quais são as suas regras.

Branches principais

O workflow do GitFlow trabalha com duas branches principais que possuem vida útil infinita. 

1. Branch Master/Main

A branch Master é o principal branch de qualquer projeto. É nela que o código-fonte está inserido e onde as novas atualizações que estão sendo desenvolvidas serão mescladas após a sua conclusão. 

Com isso, consideramos que a branch master reflete sempre um estado pronto para produção. Afinal, ela é o espelho do programa ou software que já está no ar. 

Uma outra informação importante em relação a Main é que a única forma de interagir com ela é através do Hotfix ou do Release.  

2. Branch Develop

A segunda branch é a ramificação principal onde o código-fonte serve como uma linha do tempo para os últimos desenvolvimentos que ainda não foram testados. Ou seja, a Develop é uma cópia da branch Master que recebe primeiro as atualizações que logo serão incorporadas a Master.   

Branches de suporte

Além dos branches principais, o modelo de desenvolvimento do GitFlow conta também com branches de apoio temporárias. Esses branches possibilitam à equipe trabalhar em conjunto em tempo real de onde estiverem, facilita na solução de problemas e também no rastreamento de recursos. 

1. Branch Feature

As ramificações de recursos, ou branches Features, são utilizadas para desenvolver novos recursos para futuras versões do software.

A Feature existe apenas enquanto o recurso está em desenvolvimento. A partir do momento que os ajustes são finalizados, ela é incorporada no Develop para os testes antes de ser implementada na Master, reencaminhada para ajustes ou definitivamente descartada.

Para facilitar o trabalho, existe uma convenção que esses branches devem ser nomeados sempre com feature no início. Por exemplo, feature/xpe-blog.     

2. Branch Hotfix

É uma branch que se ramifica da Master e que surge da necessidade de agir imediatamente para solucionar algum problema. Logo depois que o erro for resolvido, ela é incorporada às branches Master e Develop para solucionar o bug em ambos os ramos.  

Para cada problema encontrado, é preciso criar uma nova ramificação Hotfix.  

3. Branch Release

Por fim, temos a branch Release. Ela serve como um local de testes para a integração da Develop na Master. Ou seja, se você quiser testar todas as novas funcionalidades antes delas serem incorporadas na branch Master, é preciso criar uma branch Release. 

Quando usar o GitFlow

Segundo o criador Driessen, o GitFlow é recomendado para projetos que precisam dar suporte a várias versões do software, para projetos que possuem datas de entregas agendadas ou para projetos que muitas pessoas estão trabalhando nele ao mesmo tempo. 

Ele não é indicado para trabalhos com prazos curtos ou que precisam de alterações constantemente, porque o GitFlow gera branchs de longa duração que atrapalham a entrega constante.  

Vantagens e desvantagens de utilizar o GitFlow

De fato o GitFlow é uma ideia que veio para melhorar o fluxo de trabalhos para os profissionais de desenvolvimento web, mas assim como qualquer método, ele possui prós e contras. 

Vantagens do GitFlow

  • Facilita o desenvolvimento paralelo e a colaboração de duas ou mais pessoas ao mesmo tempo; 
  • Ideal para criar novas versões sem perder a original do projeto;
  • Proporciona ramificações em qualquer fase de desenvolvimento.

Desvantagens do GitFlow

  • Branches Master e Develop são consideradas redundantes e dificultam o processo de entrega; 
  • Fluxo e processos complexos;
  • Não funciona bem em processos de entrega contínua, como é o caso do DevOps.

Como aprender a utilizar o GitFlow?

Antes de tudo, você precisa instalar o conjunto de ferramentas do GitFlow, que se dá de forma direta em vários sistemas operacionais. 

Por exemplo, se você usa Windows, você pode baixar e instalar o GitFlow para o sistema operacional. Logo depois, você já pode começar a usar através do comando git flow init

O GitFlow é uma extensão de comando do Git um pouco mais complexa do que outras extensões. Por isso, para ter domínio da técnica e identificar se ela realmente funciona para o seu tipo de projeto, é preciso prática e testes. 

Continue Aprendendo

spot_img