Gitflow
A ideia do GitFlow é que a branch master (hoje em dia o nome está sendo trocado para main) Vai ser a branch onde fica o sistema em produção para isso vamos ter uma branch auxiliar, no caso da imagem a branch "Develop" onde vamos subir os nossos códigos que vão ser produzidos a partir dessa branch.
Depois de um tempo a branch vamos ter uma segunda branch que vai ser a release onde vamos subir ela para produção, fazemos isso para poder continuar atualizando a branch develop.
Uma exceção para esse fluxo é o hotfix, onde caso encontremos um bug em master que seja importante a resolução rápida, criamos uma nova branch a partir de master e fazemos o merge dela direto em master e em develop para garantir que os dois foram corrigidos.
Extensão
existe uma extensão para lidar com o gitflow ela pode ser instalada por esse link https://github.com/petervanderdoes/gitflow-avh/wiki/Installing-on-Linux,-Unix,-etc.
depois de instalarmos a extensão podemos rodar o comando
git flow
e se ele retornar os comandos que pode usar está tudo certo.
ao usarmos o
git flow init
ele vai pedir umas configurações para inicializar
e como usar a extensão? se quisermos criar uma nova feature a ideia é que vamos criar uma branch feature
perceba que a própria extensão criou uma nova branch com o prefixo de feature e me colocou nessa branch, criei um arquivo main.js nessa branch e isso era tudo que queria fazer nela, nesse caso vou rodar o comando
git flow feature finish <nome_da_feature>
a extensão já faz automaticamente o merge para a branch develop e me leva para ela. A continuação do fluxo é criar uma branch de release, então temos uma configuração para isso na extensão também
git flow release start <versão_da_release>
Agora podemos continuar criando features e passando elas para develop sem problemas
e quando damos o finish no release ele vai pedir uma mensagem para o commit e uma tag e então vai fazer o merge direto com a main e com a develop para garantir a consistência
O hotfix segue o mesmo padrão das outras, mas a diferença é que ele vai pedir uma tag quando usarmos o finish pois ele vai fazer um merge direto para main
Considerações
Achei a extensão muito legal para conhecer e a forma que ela automatiza algumas coisas como a criação de novas branches já com o prefixo e a deleção dessas branches ao serem finalizadas , mas acabei não gostando dos merges automáticos para dev e master, no contexto do dia a dia acabo preferindo muito mais fazer pull requests ou no caso do gitlab merge requests para que os outros devs da equipe possam fazer os code reviews e garantir a qualidade do código
Top comments (0)