Introdução

Um dos grandes problemas de um projeto é como desenvolver ele em conjunto com outros desenvolvedores, sendo que a aplicação esteja sempre atualizada e que esse processo seja o mais automático possível.

Buscando solucionar esse problema foram criados vários controladores de versão, onde a partir de um único repositório toda a equipe possa trabalhar em conjunto.

Uma das grandes referências hoje para controlador de versão é o Git. Ele foi desenvolvido por Linus Torvalds para gerenciar o kernel Linux e com o passar do tempo essa ferramenta vem sendo utilizada em inúmeros projetos.

Mesmo com ferramentas como essa, ainda são necessárias algumas regras de uso, para que bugs não aconteçam.

Gitflow

Quando o projeto é pequeno, uma única branch é suficiente para você concluir o trabalho, porém quando estamos falando de um software com uma versão estável, uma nova versão sendo desenvolvida e simultaneamente corrigir bugs da versão atual, nós precisamos utilizar mais de uma branch e o Gitflow fornece um modelo/conjunto de extensões para utilizar esse sistema com eficiência.

A branch Master é a raiz principal da aplicação — dela que é gerada a versão para deployment. A partir da branch Master, nós criamos uma outra branch que tem um papel fundamental: a branch Develop serve para gerar as futuras versões que serão lançadas.

No decorrer do desenvolvimento, integrações entre Develop e Master serão feitas para lançamento de novas versões.

Obviamente, antes de colocar a aplicação para o cliente, é necessária uma etapa de testes, onde a equipe de desenvolvimento possa encontrar/resolver os principais bugs. A branch intermediária é a Release.

A partir da branch Develop nós iremos criar outras branches para cada funcionalidade/característica da aplicação. Essas Features serão desenvolvidas por cada programador que, após o desenvolvimento, irá integrá-las à branch Develop.

A branch Hotfix serve para reparar os bugs da aplicação que o cliente está utilizando. Após correção iremos integrá-la às duas branches principais (Develop e Master).

Diversas empresas de desenvolvimento de software utilizam o Gitflow para organização dos seus repositórios. Se adequar a esse método pode fazer com que você economize bastante tempo corrigindo bugs de merges.

A aplicação do Gitflow foi construída para facilitar as criações dessas branches, de modo que os desenvolvedores possam facilmente criar features e integrá-las com a branch Develop. Caso você use aplicações como GitKraken esses comandos já vêm integrados para você fazer os pushes com maior facilidade.

Links úteis

Referências