DEV Community

Yan.ts
Yan.ts

Posted on

Extensão Gitflow

Gitflow

Image description

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.

Image description

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
Enter fullscreen mode Exit fullscreen mode

e se ele retornar os comandos que pode usar está tudo certo.

ao usarmos o

git flow init 
Enter fullscreen mode Exit fullscreen mode

ele vai pedir umas configurações para inicializar

Image description

e como usar a extensão? se quisermos criar uma nova feature a ideia é que vamos criar uma branch feature

Image description

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>
Enter fullscreen mode Exit fullscreen mode

Image description

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>
Enter fullscreen mode Exit fullscreen mode

Image description

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

Image description

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)