Como Usar o GIT Flow
Inicialmente, aprendemos a funcionalidade do git, alguns comandos básicos e pronto. Mas como tirar proveito dessa ferramenta e, principalmente, como deve trabalhar quando estiver compondo uma equipe de desenvolvimento ?
À essas dúvidas, pesquisando no google, encontrei orientações que diziam que devo ter um padrão para trabalhar de forma a permitir correções, revisões, e mais que isso, clareza sobre o que foi realizado durante o desenvolvimento do projeto. E a melhor resposta, atualmente, segundo o resultado da busca, sites de tecnologia é um tal de GIT Flow.
Vamos entender o que é, como seguir, e principalmente, tentarei deixar um passo a passo resumido e prático para eu seguir nos meus projetos.
O que é GIT Flow ?
Trata-se de um modelo que auxilia na criação de branches e releases no processo de organização no controle de versões dos códigos do projeto em desenvolvimento.
Vamos entender o cenário do ambiente de desenvolvimento no git, o sistema de versionamento que tomarei como referência.
Existe a branch master, a mais importante branch pois faz a ligação entre o repositório e o servidor de produção, comum do próprio sistema Git. O GIT Flow nomeia outras branches para determinadas funcionalidades com o objetivo de organizar o processo de desenvolvimento.
As principais banches são master e develop, responsáveis por manter a versão em produção, ou seja, a versão pronta para testes e ir a uso. O outro grupo de branches é o de suporte, são as features, release, hotfix.
Vamos criar um fluxo do git flow.
A partir da branch master, criamos a branch develop e uma tag v0.1 para marcar um novo caminho para novas alterações.
A partir da branch develop, criamos a branch feature. Cada feature corresponde a uma funcionalidade completa a ser entregue para o projeto.
Agora, retornando o fluxo, para formar um ciclo, ao terminar o desenvolvimento dessa funcionalidade, realizamos um merge com a branch develop e então removemos essa branch feature.
A partir da branch develop, criamos a branch release. Iremos realizar um merge para, então na branch release, verificar com testes as funcionalidades do projeto. Antes de atualizar a branch master, criamos uma tag v1.0 na branch master e então atualizamos a nossa branch principal.
Com a branch master completa, executamos um merge na develop para atualizá-la, e fechamos o ciclo do Git Flow. Agora podemos criar novas features para desenvolver novas funcionalidades, e então, continuar o flow de produção.
Um bug
Mesmo seguindo um modelo de gestão de branches, teremos situações de erros, problemas, famosos bugs durante o desenvolvimento do projeto, para essas situações temos uma alternativa no fluxo que é criar uma branch chamada hotflix. Na situação, trataremos como um cenário crítico, e por isso, realizaremos um merge diretamente na master.
Detalhes importantes
Ao criarmos nossas features, devemos seguir um padrão nas nomenclaturas. Por exemplo, queremos desenvolver um novo formulário de contato, então a feature será : featura/new-contact-page.
Para facilitar o uso desse modelo, há uma extensão chamada de git-flow para ajudar via comandos.
O GIT Flow não é o único modelo de gestão de branches, há também, github flow, gitlab flow.
Nesse artigo, explicamos o git flow, um modelo de gestão das branches. Minha principal referência foi o conteúdo do Git Flow | Dicionário do Programador do canal Código Fonte TV.