Git Flow: como funciona e quais as vantagens desse fluxo de trabalho
- AI-DLC e pAIr
- Artigo
O gerenciamento e a organização dos fluxos de trabalho no desenvolvimento de software é um dos desafios para empresas que buscam agilidade e consistência nos projetos. Por isso, ao longo dos anos, foram criadas diversas alternativas para um sistema de controle de versão eficiente no compartilhamento, acesso e modificação de códigos entre os desenvolvedores. Um desses modelos é o Git Flow, que tem como objetivo simplificar o processo de desenvolvimento e organização das ramificações do projeto.
Nesse artigo, você entende como funciona o Git Flow e quais as vantagens que esse fluxo de trabalho propõe.
O que é Git Flow?
Git Flow é um modelo de fluxo de trabalho que busca simplificar e organizar o versionamento de ramificações de um projeto de desenvolvimento no Git. Essa estratégia foi popularizada em 2010 por Vincent Driessen e é uma abordagem alternativa ao Trunk Based Development.
O Git Flow pode ser utilizado em qualquer projeto de software e está alinhado à prática de DevOps de entrega contínua. Nesse sentido, o Git Flow atribui funções bem específicas para diferentes ramificações e define quando elas devem interagir. Além disso, conta com ramificações individuais para preparar, manter e registrar lançamentos.
Como funciona o Git Flow?
O Git Flow funciona através do uso de ramificações (branches) do projeto, logo, pode ser comparado a uma árvore com seus galhos. Nesse fluxo de trabalho, as branches podem ser divididas em três tipos: principal (main), intermediária (develop) e as de suporte (Feature, Release e Hotfix), que são descartadas após cumprirem seu propósito. Para cada uma delas, existem algumas regras específicas que precisam ser seguidas para manter a otimização do versionamento:
- Main: é a ramificação principal que contém o código-fonte em produção. Não é permitido realizar alterações (commit) diretamente nessa ramificação. A Master ainda é utilizada para enviar os commits dos releases para a produção;
- Develop: criada a partir da ramificação Main, ela reúne os códigos de todos os ramos e se comunica com a Main. Ela contém o código-fonte mais atual e todas as novas features estáveis que serão mescladas posteriormente;
- Feature: criada a partir da ramificação Develop, é uma branch temporária que carrega uma nova funcionalidade para o projeto, ela sempre acabará sendo mesclada à própria Develop através de merge. E segue um padrão de nomenclatura “feature/new-feature”.
- Release: é uma ramificação temporária que fará com que os novos recursos armazenados na Develop sejam mesclados na branch Master, recebendo uma tag que indica a nova versão do projeto.
- Hotfix: é uma ramificação utilizada para mesclar correções na ramificação principal decorrente de bugs identificados no processo de desenvolvimento. Após a correção do bug, o código irá tanto para a branch main como para a Develop. Essa branch também recebe uma tag indicando a nova versão na Main.
Quais as vantagens e desvantagens
O Git Flow tem suas vantagens e desvantagens, assim como todos os outros fluxos de trabalho. Logo, é preciso analisar o workflow que mais combina com o projeto. Conheça algumas vantagens abaixo:
- É um fluxo de trabalho que preza por organização e praticidade;
- Torna o processo de desenvolvimento mais intuitivo;
- Resolve problemas e bug no código de maneira instantânea;
- Facilita a colaboração entre a equipe e o acesso ao progresso individual.
Por outro lado, existem algumas desvantagens:
- Apesar de buscar ser prático, pode se tornar um fluxo de trabalho complicado e longo, dependendo do projeto;
- Exige conhecimento prévio e treinamentos em projetos grandes para manter sua fluidez.
Quer entender qual o fluxo de trabalho ideal para determinado projeto? Ou entender como DevOps pode impulsionar as entregas da sua empresa? Converse com nossos especialistas e conheça os serviços e consultorias oferecidos pela Objective!