Gitflow explicado3 min read

Categoria: Engenharia de Softwares Ferramentas de Desenvolvimento Git

Fala pessoal \o Hoje, vamos falar um pouco mais sobre workflows e embora já tenhamos falado um pouco sobre o GitFlow nesta publicação, hoje, vamos falar especificamente do GitFlow.

Gitflow é um modelo de ramificação para Git, criado por Vincent Driessen. Ele atraiu muita atenção porque é muito adequado para colaboração e dimensionamento da equipe de desenvolvimento. A ideia deste fluxo é manter branches separados com cada um tendo um propósito específico para o momento do desenvolvimento.

Branches em Gitflow

O Gitflow define vários tipos de branches para lidar com diferentes aspectos do desenvolvimento. São elas:

1. Master

O branch master contém o código de produção. Cada commit nessa branch é um lançamento de uma nova versão do software.

2. Develop

O branch develop serve como um branch para desenvolvimento geral e contém as últimas mudanças e melhorias no código. O código aqui é estável, mas ainda não está pronto para produção.

3. Feature Branches

Esses branches são criados a partir do develop e são usados para desenvolver novas funcionalidades.

4. Release Branches

Criado a partir do develop, esse branch é usado para preparar o código para um lançamento, permitindo testes finais e ajustes.

5. Hotfix Branches

Esses branches são criados a partir do master e são usados para correções rápidas em produção.

Fluxo de Trabalho

  1. Criação de Feature Branch: Um novo branch de funcionalidade é criado a partir do develop.
  2. Desenvolvimento e Completude: A funcionalidade é desenvolvida e testada.
  3. Merge com Develop: O branch de funcionalidade é mesclado de volta ao develop.
  4. Preparação para Release: Um novo branch de release é criado a partir do develop.
  5. Testes Finais: São realizados os testes finais no branch de release.
  6. Merge com Master e Tagging: O branch de release é mesclado com master e uma nova tag é criada.
  7. Hotfix: Caso surjam problemas críticos, um hotfix é aplicado diretamente ao master.

Veja abaixo uma animação com o fluxo acima acontecendo:

Gitflow explaneid

Vantagens de usar o Gitflow

  1. Estrutura Clara: fornece um modelo de desenvolvimento bem definido.
  2. Isolamento de Funcionalidades: facilita o trabalho em diferentes funcionalidades simultaneamente.
  3. Facilidade de Hotfixes: permite correções rápidas em um ambiente de produção.

Desvantagens de usar o GiFlow

  1. Curva de Aprendizado: para novos membros da equipe ou pessoas não familiarizadas com o Git, o GitFlow pode ser complicado de entender e seguir inicialmente.
  2. Gestão de Branches: manter várias branches (features, hotfixes, releases, develop, master) pode tornar o repositório mais difícil de gerir.

Conclusão

O Gitflow é uma abordagem de gestão de fluxo de trabalho muito eficiente. Porém, ela requer uma gestão ativa de todos os membros para que o fluxo funcione corretamente. Em cenários complexos de desenvolvimento de softwares por ciclos (Sprints, por exemplo) o Gitflow pode ser um grande aliado.

Mas, esteja tento para o cenário em que existe dois ou mais times trabalhando no mesmo repositório com Gitflow, pois nesta situação podem ocorrer filas de release ou até mesmo a necessidade de release com uso de feature flag (para que um equipe, não afete o prazo de entrega da outra).

Fontes:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *