Article image
Gustavo Souza
Gustavo Souza20/03/2024 01:50
Compartilhe

GitFlow - Uma Abordagem Prática para Gerenciamento de Branches no Git

  • #Git

Gerenciar branches pode se tornar algo desafiador, mas há várias práticas e ferramentas que podem ajudar a lidar com essa dificuldade. E uma dessas práticas é o Gitflow, já usado em muitas empresas no mercado.

1.O que é GitFlow?

O GitFlow é um modelo de fluxo de trabalho baseado no Git que define uma série de regras e diretrizes para o gerenciamento de branches em um repositório Git. Ele propõe uma estrutura rígida para o ciclo de vida do desenvolvimento de software, dividindo o processo em diferentes etapas, como desenvolvimento de novos recursos, correção de bugs, preparação de lançamentos e manutenção de versões.

Ele define um conjunto de branches, cada qual com sua finalidade:

Branch Master: Esta é a branch principal do repositório e deve sempre conter o código estável e pronto para produção.

Branch Develop: É a branch de desenvolvimento onde novos recursos são integrados e testados antes de serem mesclados na branch master.

Feature branches: Cada novo recurso é desenvolvido em sua própria branch separada, derivada da branch develop. Após a conclusão do desenvolvimento, a branch de recurso é mesclada de volta na branch develop.

Release branches: Quando uma versão está pronta para ser lançada, uma branch de lançamento é criada a partir da branch develop. Nesta branch, são feitos os ajustes finais e a preparação para o lançamento. Após a conclusão, a branch de lançamento é mesclada tanto na branch master quanto na develop.

Hotfix branches: Essas branches são usadas para corrigir problemas críticos na produção. Elas são criadas a partir da branch master e, após a correção, são mescladas tanto na master quanto na develop.

OBS: As branches principais, são a Develop e a Master, já a Feature, Release e Hotfix, são mais de suporte e temporárias, e duram até a realização do merge com as branches principais

No lugar de utilizar uma única branch principal, esse fluxo trabalha com duas branches principais para registrar o histórico do projeto. A branch Master armazena o histórico do lançamento oficial, e a branch Develop serve como uma ramificação de integração para recursos.

Veja a estrutura do Gitflow para você entender como funciona o fluxo. Os commits na branch Master são marcados com um número da versão:

image

2.Quando utilizar o GitFlow?

É muito útil em projetos de software que requerem uma abordagem estruturada e organizada para o gerenciamento de versões e lançamentos. Ele é particularmente adequado para projetos de médio a grande porte, onde várias equipes estão trabalhando simultaneamente em diferentes recursos e correções de bugs.

3. Como utilizar o GitFlow?

Existem duas formas de implementar o git flow, através dos comandos básicos do git, e a outra através da CLI do git flow, que é a forma mais prática e que será apresentada aqui nesse artigo.

3.1 - Instalação da CLI do Git Flow:

OSX: brew install git-flow
Linux: apt install git-flow
windows: https://git-scm.com/download/win

3.2 - Depois precisamos criar a branch Devolp a partir da branch Master, então digite o comando no terminal do seu projeto:

git flow init

3.3- Criando uma nova feature:

git flow feature start nome-da-feature

3.4 - Finalizando a feature, apagando e mergiando para a Develop:

git flow feature finish nome-da-feature

3.5- Criando um Hotfix para correção de algum código:

git flow hotfix start nome-hotfix

3.6- Finalizando um Hotfix, apagandoe mergiando para a brach Develop:

git flow hotfix finish nome-hotfix

3.7- Criação de uma release:

git flow release start 1.0.0

3.8- Finalizando uma release:

git flow release finish 1.0.0

4. Principais vantagens do GitFlow:

  • Estrutura Clara: O GitFlow fornece uma estrutura clara e definida para o gerenciamento de branches, facilitando a colaboração entre equipes e o acompanhamento do progresso do desenvolvimento;
  • Padronização de Commits e Produtividade;
  • Isolamento de Recursos: Cada novo recurso é desenvolvido em sua própria branch, o que ajuda a manter o código base limpo e isolado até que esteja pronto para ser integrado.
  • Gerenciamento de Versões: Simplifica o processo de preparação e lançamento de novas versões, fornecendo uma estrutura para criar branches de lançamento e aplicar correções de bugs.
  • Correção Rápida de Problemas: Com as branches de hotfix, é possível corrigir problemas críticos na produção de forma rápida e eficiente, sem comprometer o desenvolvimento de novos recursos.

O que acharam sobre o artigo, comentem aí?

Caso ainda estejam com dúvidas ou queiram se aprofundar mais no assunto, deixo aqui uma ótima referência: um vídeo explicando todo o processo, passo a passo, para vocês utilizarem a partir de agora em seus projetos.
https://www.youtube.com/watch?v=394mc6PV8t8

REFERÊNCIAS PRÓPRIAS A PARTIR DE ESTUDOS E PRÁTICAS

Compartilhe
Comentários (0)