O que é Git Flow? - Full Cycle FullCycle

Voltar

Wesley Willians

O que é Git Flow?

10 min de leitura

Quando desenvolvemos os nossos projetos com Git é comum ficarmos um pouco perdidos em relação às diversas branches que nós criamos — seja para consultas ou para apagá-las. E no geral isso é uma questão de organização.

Pensando nisso, o Git Flow é um framework que oferece uma solução para simplificar todos esses passos. Você pode criar uma nomenclatura para uma branch e especificar as suas tarefas antes de fazer o merge, ou mesclagem.

(Assista em 8min19seg no vídeo)

Nessa organização, tudo o que estiver em produção fica na branch main, onde você tem todo um ciclo para fazer esse progresso — que é muito vantajoso quando você e o seu time tiverem dificuldades de organizar os seus processos com o Git.

Uma ótima vantagem é que o Git Flow tem uma extensão que te ajuda a rodar um comando, criando tudo no padrão que você precisa. Muitas pessoas usam isso ou tentam aplicar essa mesma metodologia.

No geral esse é um padrão recomendado para projetos nos quais diversas pessoas fazem commits num repositório ou que têm muitas entregas agendadas.

Tipos de Branches

O Git Flow tem duas branches principais: Main e Develop, que são permanentes —  e três branches de suporte: Feature, Release e Hotfix, que são temporárias e duram até o merge com as principais branches.

Main Branch (branch principal):

A branch principal contém todo o código de produção, então todas as novas funções que estão em desenvolvimento são associadas à Main Branch em algum momento. No geral, essa branch é criada no início de um projeto e mantida durante todo o desenvolvimento.

Além disso, essa branch é marcada em diversos commits para atribuir diferentes versões e lançamentos do código, sendo que as demais branches são relacionadas à principal após serem examinadas e testadas o suficiente.

Em resumo, o propósito da Main Branch é conter o código de produção pré-pronto para ser lançado.

Develop Branch (branch de desenvolvimento):

A branch de desenvolvimento é como a branch principal, mas funciona como uma linha para as últimas features. Ela também contém algumas features que ainda não foram publicadas, que estão no processo de serem testadas, além de ser a base para desenvolvê-las.

Ou seja, as funcionalidades recém-criadas devem ter base na branch de desenvolvimento e depois mescladas novamente quando estiverem prontas para teste.

Branches Auxiliares:

As branches de suporte também possuem diferentes finalidades: Feature/Funcionalidade, Release/Lançamento e Hotfix/Correção. Mas lembre-se que toda nova feature começa e termina obrigatoriamente a partir da Develop.

Feature Branch (branch de funcionalidade):

Essa é a branch mais comum no trabalho com Git Flow, que é usada quando você precisa adicionar novas features ao seu código.

Então quando você trabalha numa nova feature, você inicia essa branch de fora da branch de desenvolvimento. Após isso, você mescla as suas mudanças de volta à Develop Branch quando a funcionalidade estiver completa e revisada devidamente.

Hotfix Branch (branch de reparos):

A branch de reparo é utilizada quando surge algum problema imediato no seu ambiente. E, com isso, você consegue resolver o erro e mesclar a solução para as principais branches sem perder o código.

Fazer o merge da sua branch de reparo é importante para você se assegurar que as correções serão mantidas na próxima vez que a branch principal for lançada.

No geral ela é utilizada para endereçar rapidamente as mudanças que você precisa fazer na sua branch principal.

Release Branch (branch de lançamento):

Essa branch é utilizada para o lançamento do seu programa. Normalmente ela serve para dar o acabamento e toques finais nos bugs para lançar o seu novo código, que deve ser endereçado separadamente para a branch principal. E, no fim, é gerada uma nova versão etiquetada do projeto, que vai contar com um histórico completo do desenvolvimento.

Por esses aspectos o Git Flow é um padrão que te ajuda a resolver o problema de organizar as suas branches utilizando os repositórios, sendo que eles auxiliam no desenvolvimento de novas features, na correção de bugs e no lançamento de novas versões.

Quer descobrir como tornar seu desenvolvimento mais organizado e eficiente com o Git Flow? Clique aqui e solicite contato que nós te ajudamos.

Assista ao vídeo completo no começo desse post para mais informações. Veja também: O que é Fault Injection?

Confira nosso canal do youtube. Tem esse e vários outros conteúdos interessantes pra você.