O que é GitFlow – Fluxo de desenvolvimento com GitFlow

o que é GitFlow

 

O que é GitFlow – Fluxo de desenvolvimento com GitFlow

Ferramentas para versionamento de software, são utilizadas desde o início das linguagens de programação. Elas surgiram pela necessidade de times de desenvolvimento trabalhar em conjunto e/ou para manter um histórico de alterações de um projeto. Afinal, essas ferramentas buscam facilitar a produção descentralizada de um software, Dessa forma, com a possibilidade de desenvolvimento sem necessidade de pedir ao colega “fechar” o arquivo do servidor, como acontece em sistemas mais antigos de versionamento. O git por si só atende essas necessidades de desenvolvimento e proporciona um ambiente descentralizado para o trabalho, com a possibilidade de pessoas em qualquer lugar do mundo trabalhar no mesmo projeto. Com a disseminação desta ferramenta foram utilizados vários fluxos de trabalho buscando facilidade e aumento da produtividade de uma equipe no desenvolvimento de uma aplicação. Estamos falando sobre um método específico denominado git flow.

O que é? 

A princípio, Podemos definir o GitFlow como uma metodologia de trabalho, ou um novo workflow focado em entrega de projetos, ou como um framework. Por outro lado, seus princípios não agregam nada de novo ao git. Vamos aplicar os conceitos já existentes de branch, commit e tags para definirmos um modelo de branch. Este modelo se baseia em duas branches fixas: master e develop. Elas serão utilizadas para guardar o histórico do projeto e serão de onde estaremos partindo para novas implementações. A master será utilizada para as entregas oficiais, já a develop será utilizada para integração entre as branches. Simultaneamente, teremos outras três branches para cuidarmos de novas implementações, correções de bugs, correções de bugs urgentes e novas versões do sistema. Respectivamente features, bugfixes, hotfixes e releases.

Como funciona?

Desta maneira com base nas implementações solicitadas no dia a dia, utilizaremos um dos tipos de branch para isso.

 

Feature

Vamos imaginar a implementação de um cadastro de produtos. Nosso software já possui as duas branches: master e develop. Iremos incluir uma nova branch que será responsável pela implementação deste cadastro. Essa branch será uma feature. Podemos exemplificar como “feature/product_registration”. Sempre que iniciarmos uma nova feature ela será iniciada a partir da develop e ela existirá até que o cadastro seja finalizado. Ao finalizar este cadastro iremos fazer a mesclagem (merge) dessas implementações (commit) para a develop. Isso no git é feito via comando “git merge”. Dessa maneira nossa implementação foi finalizada e podemos partir para a próxima implementação.

 

Bugfix

Com um software de gestão, os responsáveis podem definir os perfis dos usuários e também estabelecer limite de acesso conforme a função de cada colaborador. Além disso, a grande maioria das soluções oferecem armazenamento em nuvem com backups, desta forma, caso algum acidente aconteça nas máquinas de sua empresa, as informações continuarão seguras.

 

Release

Com um software de gestão, os responsáveis podem definir os perfis dos usuários e também estabelecer limite de acesso conforme a função de cada colaborador. Além disso, a grande maioria das soluções oferecem armazenamento em nuvem com backups, desta forma, caso algum acidente aconteça nas máquinas de sua empresa, as informações continuarão seguras.

 

Hotfix

Com um software de gestão, os responsáveis desde já podem definir os perfis dos usuários e também estabelecer limite de acesso conforme a função de cada colaborador. Além disso, a grande maioria das soluções oferecem armazenamento em nuvem com backups, desta forma, caso algum acidente aconteça nas máquinas de sua empresa, as informações continuarão seguras.

 

Dicas

Enfim, Vimos acima alguns conceitos para trabalharmos com o GitFlow, mas podemos cair em algumas ciladas ao trabalhamos com ele. É muito importante aos profissionais que trabalham com este workflow se atentarem aos conceitos vistos por trás do git. Por se tratar de um versionamento descentralizado, tudo que é feito deve ser posteriormente enviado para o repositório remoto, convencionalmente chamado de origin, então não se esqueça de rodar o comando “git push” ao final de sua implementação.

Do mesmo modo que existe um plugin que facilita o trabalho com esta ferramenta, ele apresenta o mesmo nome (git-flow). Frequentemente, Para usuários de Windows ele já vem incluso quando é instalado o git na máquina. No caso de Linux basta rodar o comando sudo apt-get install git-flow. Consulte a documentação do plugin para mais informações https://github.com/petervanderdoes/gitflow-avh/wiki/Installing-on-Linux,-Unix,-etc.

 

Conclusão

Vimos acima alguns conceitos para trabalharmos com o GitFlow, mas podemos cair em algumas ciladas ao trabalhamos com ele. Primeiramente, é muito importante aos profissionais que  trabalham com  este workflow se atentarem aos conceitos vistos por trás do git. Por se tratar de um versionamento descentralizado, tudo que é feito deve ser enviado para o repositório remoto, convencionalmente chamado de origin, então não se esqueça de rodar o comando “git push” ao final de sua implementação.

Enfim, Vale ressaltar que existe um plugin que facilita o trabalho com esta ferramenta, ele apresenta o mesmo nome (git-flow). Para usuários de Windows ele já vem incluso quando é instalado o git na máquina. No caso de Linux basta rodar o comando sudo apt-get install git-flow. Consulte a documentação do plugin para mais informações https://github.com/petervanderdoes/gitflow-avh/wiki/Installing-on-Linux,-Unix,-etc.

 

 

Mais para explorar

Kenes Rakishev