You are on page 1of 16
oay12r2022 18:23 GitFlow entonda 0 que é, como © quando uiizar | Aura FLITE sm Sted eee PARA rrr End EMPRESAS: Artigos > Programacao Git Flow: entenda o que é, como e quando utilizar le cose CoMPARTEME Murillo Godoi Pedroso Auaizado om 07/08/2022 ones Se vocé utiliza o Git como ferramenta de controle de versdo para seus softwares, provavelmente jd deve ter observado as varias maneiras de como controlar branches de repositérios. E corriqueiro pessoas utilizarem apenas uma branch para fazer commits em projetos pessoais, 0 que nao ¢ errado, pois quando estamos trabalhando sozinhos é muito tranquilo de se controlar tudo em um branch sé. nitpsiwawalura.com..brartigosgit-low-o-que-o-como-quando-utlizargcid=C]wKCAIAsBacBhATEWAGRFdw3pRNNELUD4AWLULVauSivalW... 1/16 oay12r2022 18:23 Git Flow entanda o que 6, como e quando ullizar | Alura VOCE NAO/PRECISA ENVIAR UM PULL REQUEST SE a3 WS PR a =o Entretanto, o cenario se torna totalmente diferente e mais complexo quando estamos trabalhando com mais contribuidores em um projeto. Em todo projeto real, é importantissimo que se tenha controle total do que esta sendo produzido por uma equipe de pessoas desenvolvedoras, onde, ao mesmo tempo, s4o feitas muitas coisas, como: implementagdo de novas funcionalidades, corregao de falhas, lancamento de versées, etc. E é justamente aqui, que o Git Flow entra para nos ajudar, facilitando o desenvolvimento compartilhado de cédigo com pessoas desenvolvedoras. Ao utilizar o Git para gerenciar versdes de um projeto, é de suma importancia definir © fluxo de trabalho (workflow), que ird estabelecer fungées especificas para diferentes branches e definir quando elas devem interagir. Portanto, neste artigo, veremos 0 que é Git Flow, quando utilizé-lo, como utilizd-lo, ‘os beneficios dessa abordagem e também as desvantagens. Vamos nessa? O que é Git Flow? O Git Flow é um modelo, uma estratégia ou, ainda, um fluxo de trabalho muito utilizado por equipes de desenvolvimento de software. Ele se destaca por auxiliar na organizagao do versionamento de cédigos. Publicado em 2010, pelo engenheiro de software holandés, Vincent Driessen, 0 objetivo do Git Flow era melhorar as organizagées das Branches (ramificagées) dentro de repositérios e, desta forma, dar mais fluidez ao processo de desenvolvimento de novas funcionalidades, corregées de bugs e langamentos de versées. -ntps:ewalura.com.br/arigos/gtslow-o-que-e-como-quvando-utizar?gclid=C]wKCAIASBachA 1ElwAgRFdwapRNNELID4AWLUALVauSIuoJW... 2/18 oay12r2022 18:23 Git Flow entanda o que 6, como e quando ullizar | Alura Foto: Vincent Driessen Quando utilizar o Git Flow? 0 Git Flow é recomendado para projetos que utilizam versionamento semantico (semantic versioning) ou que precisam oferecer suporte a varias versées de seu software. Segundo o proprio autor, Vincent Driessen, se o projeto exige entrega continua, como normaimente ocorre em projetos, este modelo ndo é recomendado para esse tipo de cenério. Porque geralmente com o Git Flow sao geradas branches de longa durago e branches de longa duragdo atrapalnam a entrega continua. A utilizagao do Git Flow também se torna recomendado para projetos que existam uma grande quantidade de pessoas “commitando” dentro de um repositério, ou para projetos que possuem um ciclo de entrega agendada. Como funciona? 0 Git Flow trabalha com duas branches principais, a Develop e a Master, que duram para sempre; e trés branches de suporte, Feature, Release e Hotfix, que sao temporérios e duram até realizar 0 merge com as branches principais. -ntps:wwalura.com.br/arigos/gtslow-o-que-e-como-quando-utizar?gclid=C]wKCAIASBachA 1ElwAgRFdwapRNNFELID4AWLUALVauSIuoJW.... 3/16 ays2022 16:28 Git Flow: ented o que 6, como quando utzar | Aura Entdo, ao invés de uma tinica branch Master, esse fluxo de trabalho utiliza duas branches principais para registrar o histérico do projeto. A branch Master armazena © histérico do langamento oficial, e a branch Develop serve como uma ramificacéo de integracao para recursos. E ideal que todos os commits na branch Master sejam marcados com um numero de versdo. Na imagem abaixo, vemos como é a estrutura do fluxo do Git Flow: Branch Master/Main Principal branch, aqui é onde temos todo 0 cédigo de produgdo. Todas as novas funcionalidades que esto sendo desenvolvidas, em algum momento, sero mescladas ou associadas a Master. As formas de interagir com essa branch so através de uma Hotfix ou de uma nova Release. Branch Develop E a branch onde fica 0 cédigo do préximo deploy. Ela serve como uma linha do tempo com os ultimos desenvolvimentos, isso significa que ela possui funcionalidades que ainda nao foram publicadas e que posteriormente vao ser associadas com a branch Master. Branch Feature Sao branches utilizadas para o desenvolvimento de funcionalidades especificas. E recomendavel que essas branches sigam uma convengao de nome, a convengao mais utilizada é iniciar 0 nome das branches com feature, por exemplo, “feature/alura-forum’. tts: alura.com brlarigeslgtflow-o-que-e-como-quando-utl2ar?gelid=CwKCAIAsSacShv\TElWAgRFdMGpRNNFELYD44WLULVauSIUoIW.... 4/16 osrr2ranze 18:28 Git Flow: entenda o que 6, como e quando uliizar | Alura E importante saber que essas features branches sao criadas sempre a partir da branch Develop. Portanto, quando finalizada, elas so removidas apds realizar 0 merge com a Branch Develop. Se tivermos dez funcionalidades a serem desenvolvidas, criaremos dez branches independentes. E importante salientar que as branches de features nado podem ter interagéo com a branch master, apenas com a branch develop. Branch Hotfix E uma branch criada a partir da master para realizar corregées imediatas encontradas no sistema em produgdo. Quando concluida, ela é excluida apés realizar 0 merge com as branches Master e Develop. ‘Temos uma branch de hotfix para cada hotfix que precisamos implementar! A grande diferenga entre Feature Branches e Branches de Hotfix é que os Hotfix sao criados a partir da Branch Master e quando os finalizamos, eles s4o mesclados tanto na Branch Master quanto na branch de desenvolvimento. Isso ocorre porque 0 bug est4 em ambos os ambientes. Alm disso, quando fechamos um Hotfix Branch, temos que criar uma tag com a nova verso do projeto. Isso porque cada mudanga que fazemos na Branch Master precisa de uma tag que a represente. Branch Release Uma vez que uma etapa de desenvolvimento esteja concluida, teremos em nossa Branch Develop todas as features e Hotfix mesclados. Entdo, se quisermos ter todas essas novas funcionalidades na Branch Master, teremos que criar uma Branch de Release. ‘A Branch Release serve como ponte para fazer o merge da Develop para a Master. Ela funciona como ambiente de homologagao e é removida apés realizar os testes do merge com a Master. Caso seja encontrado algum bug e haja alguma alteragao, ela também deve ser sincronizada com a Develop. Por fim, quando fechamos uma Branch Release, temos que criar uma tag com a nova versao de langamento do software, para que possamos ter um histérico completo do desenvolvimento. Pronto, conceitualmente, aprendemos tudo! tts: alura.com brfarigeslgtflow-o-que-e-como-quando-utl2ar?gelidsClwKCAIAsSacShv\TElWAgRFdMGpRNNFELYb44WLULVauSIUoIW.... 5/16 oay12r2022 18:23 GitFlow entonda 0 que é, como © quando uiizar|Alura As bases conceituais do Git Flow sao essas. Entéo, agora, vamos ver como implementar esse fluxo de trabalho na vida real? Implementagao do Git Flow Existem duas formas de implementar o Git Flow, a primeira é utilizar os comandos bdsicos do Git, a outra é utilizar uma CLI que ajuda a simplificar 0 fluxo do Git Flow. A titulo de curiosidade, veremos como implementar o Git Flow utilizando as duas formas. Para instalar a CLI do Git Flow, escolha uma opgao de acordo com seu sistema operacional: + OSX: brew install git-flow + Linux: apt install git-flow dows: https://git-sem.com/download/win + Jé esta incluido no Git a partir da versio 2.5.3, Iniciando o Git Flow A primeira coisa que temos que fazer ¢ criar uma Branch Develop a partir da Branch Master. Para isso, utilize: nitosiiwawalura.com..brartigosgit-low-o-que-o-como-quando-utlizar?gclid=C]vKCAIAsBacBhATEWAGRFdw3pRNNELUD4AWLULVauSIvalW... 6/16 oay12r2022 18:23 Git Flow entanda 0 que 6, como @ quando ullizar | Alura Com comando basico do Git: coe git checkout -b develop Com a CLI do Git-flow: coe git flow init A-execugao deste comando na CLI talvez fard algumas perguntas. Responda tudo afirmativamente e sua Branch Develop seré criada. Branch Feature Criagao de uma feature Com comandos basicos do Git: eco git checkout develop git checkout -b name-feature Com a CLI do Git-flow: ooo git flow feature start name-feature Finalizagao de uma feature Com comandos basicos do Git: tps: aura com brfarigosigtflow-o-que-e-como-quando-ubizar?gclid=CwKCAIAsBacShA TEWAgRFdw3pRNNTELtrb4éWLU4LVauSiuoJW, m6 oarrarzo2 18:23, Git Flow: entenda o que 6, como e quando uliizar | Alura git checkout develop git merge name-feature Com a CLI do Git-flow: coe git flow feature finish name-feature Branch Hotfix Criagao de um Hotfix Com comandos basicos do Git: eco git checkout master git checkout -b name-hotfix Com a CLI do Git-flow: eco git flow hotfix start name-hotfix Finalizagao de um Hotfix Com comandos basicos do Git: eco git checkout master git merge name-hotfix git checkout develop -ntps:ewwalura com br/arigos/gtslow-o-que-e-como-quvando-utizar?gclid=C]wKCAIASBachA TEIWAgRFdw3pRNNFELID4AWLUALVauSIuodW.... 8/16 oarrarzo2 18:23, Git Flow: entenda o que 6, como e quando uliizar | Alura git merge name-hotfix git tag name-hotfix Com a CLI do Git-flow: coe git flow hotfix finish name-hotfix Aqui podemos ver o quo titil é a CLI do Git-flow, pois simplifica o processo e nos ajuda a no cometer erros. Branch Release Criagao de uma Release Com comandos basicos do Git coe git checkout develop git checkout -b release/1.0.0 Com a CLI do Git-flow: coe git flow release start 1.0.0 Finalizagao de uma Release Com comandos basicos do Git coe git checkout master git merge release/1.0.0 git checkout develop -ntps:iwewwalura com br/arigos/gtslow-o-que-e-como-quvando-utizar?gclid=C]wKCAIASBachA 1ElwAgRFdw3pRNNFELID4¢WLUALVauSIuodW.... 9/16 oartarzo2 18:28, Git Flow: entenda 0 que 6, como e quando uliizar | Alura git merge release/1.0.0 git tag 1.0.0 Com a CLI do Git-flow: coe git flow release finish 1.0.0 Pronto, agora sabemos como utilizar os comandos do Git e a CLI git-flow para aplicarmos 0 Git Flow na pratical Fonte: dribbble.com Beneficios do Git Flow Desenvolvimento Paralelo hitpsiiwawalura.com..brartigosgit-low-o-que-o-como-quando-utlizar?gcid=C]wKCAIASBacBhATEWAQGRFdw3pRNNELUD4AWLULVauSIvol.... 10/16 oarrarzo2 18:28, Git Flow: entenda o que 6, como e quando uliizar | Alura Uma das grandes vantagens do Git Flow é que ele torna o desenvolvimento paralelo muito simples, isolando 0 novo desenvolvimento do trabalho finalizado. © novo desenvolvimento (como novas funcionalidades e corregdes de bugs nao emergenciais) é feito em Branches de features e s6 6 mesclado de volta ao corpo. principal do cédigo quando as pessoas desenvolvedoras esto seguras de que 0 cédigo esté pronto para langamento. Outro ponto, é que se vocé for solicitado a alternar de uma tarefa para outra, tudo 0 que vocé precisa fazer é confirmar suas alteragdes e, em seguida, criar uma nova Branch de feature para sua nova tarefa. Quando essa tarefa estiver concluida, basta fazer o checkout da branch e continuar de onde parou a outra tarefa. Colaboracgao As branches de feature também facilitam a colaboragdo de duas ou mais pessoas desenvolvedoras em uma mesma tarefa, porque cada branch é uma caixa de protecdo onde as tinicas alteragdes que ocorreram so as que aconteceram para realizar a tarefa, Com isso, conseguimos compartilhar nossa branch com outras pessoas para elas nos ajudarem ou terminarem a tarefa. Isso também torna muito facil de ver e acompanhar 0 que cada pessoa esta fazendo em um projeto. Area de preparacao Mais conhecida como a branch develop, com ela é possivel ter um local onde podemos testar todas as nossas novas features, isso sem se preocupar se estamos ou no em produgao. Suporte para corregées de emergéncia Com 0 suporte a branches de hotfix se torna possivel realizar alterages de emergéncia sem preocupagées, sabendo que o hotfix conterd apenas a corregao. Nao ha risco de vocé acidentalmente mesclar um cédigo que nao deveria, pois tudo estd devidamente separado. Mas como nem tudo so flores, agora que vimos os beneficios do Git Flow, vamos ficar por dentro também das desvantagens de utilizar essa abordagem. Desvantagens do Git Flow nts: alura.com brlarigeslgtflow-o-que-e-como-quando-utl2ar?gclid=CwKCAIAsSacShv\TElWAgRFMGpRNNFELYD4EWLUALVaUSIUON... 11/16 osrr2ranze 18:28 Git Flow: entonda o que , como e quando uliizar | Aura O fluxo e os processos do Git Flow s4o complexos, além de serem muitos, dependendo da complexidade do projeto ao qual esteja trabalhando, a estrutura do Git Flow pode tornar o processo ainda mais complicado e 0 desenvolvimento ainda mais lento, pois pense 0 quéo complicado é controlar um repositério onde temos alteragées ocorrendo a todo minuto em diversas branches. Além disso, por violar a regra de branches de curta duragao, por conta do ciclo de desenvolvimento longo, o Git Flow ndo consegue se adaptar bem com 0 DevOps, mais especificamente com a integracao e implantacao continua. A quantidade de branches que sao criadas com o Git Flow e que podem ter diferentes tempos de vida, aumentam potencialmente os conhecidos conflitos do Git na hora do merge.Outro ponto é que se vocé utilizar o Git Flow, o comando rebase do Git terd que ser esquecido, pois ndo poder ser utilizado Por esses motivos, se estiver trabalhando em uma startup, onde vocé pode ter que langar varias features em um dia; gitflow ndo é bom para vocé. Conclusao Nesse artigo, conhecemos o conceito do Git Flow e vimos como ele pode nos ajudar ~ e também atrapalhar o versionamento dos nossos cédigos. Além disso, aprendemos a utilizé-lo na pratica, com a ajuda de uma CLI e também sem a ajuda dela, apenas com os comandos basicos do Git. Vimos também o funcionamento esperado para 0 fluxo de trabalho de uma equipe que utiliza o Git Flow, e entendemos quando essa abordagem é recomendada para ser utilizada. Nao deixe de explorar outras opgées, pois além do Git Flow, existem diversos outros fluxos de trabalho, e vocé deve sempre avaliar o contexto de cada projeto para decidir qual fluxo mais se encaixa para cada situagao. Portanto, é importante ressaltar que, antes de implementar um fluxo, faga um estudo aprofundado com anlises técnicas mostrando as vantagens e desvantagens de sua utilizacao. E ai, o que vocé achou? Nao deixe de conferir nossos cursos de Git e continue mergulhando em tecnologia! Veja também: * Gite Github: controle e compartilhe seu cédigo * Gite GitHub: repositério, commit e verses https: alura.com brfarigeslatflow-o-que-e-como-quando-utlzar?gclid=CwKCAIAsBacShv\TElWAgRFdMGpRNNFELYDZWLUALVaUSIUoN... 12/16 oay12r2022 18:23 Git Flow entanda 0 que 6, como @ quando ullizar | Alura + Git Flow versus Trunk-based development Créditos = Redagao: Murilo Godoi + Revisao Didatica: Carolina Castro Confira neste artigo: + Artigo Anterior * GitOps: o que 62 + Flutter: 0 + React Native: o que é e tu 0 & Git Flow? Quando utilizar 0 Git Flow? Como funciona? Implementacdo do Git Flow Beneficios do Git Flow Desvantagens do Git Flow Concluséo: Créditos Préximo Artigo > as Virtuais ie 6 e tudo sobre o framework re o Framework + Método Kanban: o que 6, principais conceitos e sua funcgo no dia a dia da agilidade nts: alura.com brfarigeslatflow-o-que-e-como-quando-utlzar?gcld=CwKCAIAsSacShv\TEWAgRFaMGpRNNFELYDEWLUALVaUSIUoN... 13/16 quando utilizar |Alura Veja outros artigos sobre Programagao Quer mergulhar em tecnologia e aprendizagem? eee Een cm tne see ee nM Moe Cd Dee eke te Re ieee een isn ME INSCREVA ENN) TT Cae (Re | old 0800800 PCr lr) AAlura Soe ae ay AC) Scene Cea ated Peary Crew ty RCo ens Ce es eee Sn A) Crit Contetdos I CMer Letty Alura Cases Email e telefone Te ore CRC a ie eee eo) Cera eC eur CC Cr Ceol Tor) Cer cute erred Tur aga ee eed ecco aie ea) Pees enema Br ccc antag Mee PCRS ry Crees Ci mec cel Cre ee acy Cree Cre Ty Oe ie ea eee vcd Cree ee Dey eee eae eck tps alura.com.o tflow-o-que-e-como-quando-utl2ar?gclid=C]wKCAIAsBacShv\ TElwAgRFdwGpRNNrELtrb4éWLUsLVau oay12r2022 18:23 Git Flow entonda 0 que &, como © quando uiizar|Alura Gerry ry Eee uC ceo ea Bcd ret ure ted todos Ages | Softskills | Lideranga e Gestdo | Startups | Vendas nitosivawalura.com..brartigosgit-low-o-que-o-como-quando-utlizar gcid=C]vKCAIAsBacGhATEWAQRFdw3pRNNIELUD4AWLUSLVauSIvo)... 16/16

You might also like