Desenvolvimento

22 out, 2013

Quatro workflows para trabalhar com Git

Publicidade

Olá, pessoal! Tudo bem?! Hoje vou escrever um pouco sobre as diferentes maneiras de trabalhar com Git, seja em algum projeto pessoal ou em seu trabalho.

O Git é um VCS (Version Control System), ou Sistema de Controle de Versão, que foi criado pela comunidade e principalmente por Linus Torvads, quando eles estavam desenvolvendo o kernel do Linux. Naquela época eles precisavam de um sistema veloz, com design simples, suporte a desenvolvimento não linear, e que fosse capaz de lidar de forma eficiente com o grande projeto em que estavam trabalhando.

A ferramenta alcançou tudo o que eles precisavam e passou a ser usada não só por eles, como também por muitas outras pessoas em projetos de tamanhos variados, se tornando uma das ferramentas de controle de versão mais utilizadas atualmente.

Existem diversas maneiras de se trabalhar com o Git. Nesse artigo vamos ver os quatro workflows mais utilizados, são eles:

  • Centralized Workflow

  • Feature Branch Workflow

  • Gitflow Workflow

  • Forking Workflow

Centralized Workflow

O Centralized Workflow é provavelmente a maneira  mais utilizada de trabalhar com Git, na maioria das vezes até mesmo sem saber. Nele, o desenvolvedor utiliza apenas o branch principal, ou seja, o master. Em resumo, o desenvolvedor, clona o projeto para sua máquina, faz as alterações desejadas, “commita” o que alterou, mescla com o seu repositório local possíveis alterações realizadas no repositório central, e então manda tudo que fez para o repositório central.

Centralized Workflow

Feature Branch Workflow

O Feature Branch Workflow é basicamente como o anterior, porém nele, para cada nova funcionalidade a ser desenvolvida, um novo branch é criado. Para entender melhor, suponha que um projeto de uma revista qualquer esteja em desenvolvimento, e seja necessário incluir uma nova funcionalidade de tradução de artigo, para isso um novo branch com o nome “funcionalidade-traduzir-artigo” é criado. Ao terminar a implementação da nova funcionalidade, o branch é mesclado no principal, e então, deletado.

Feature Branch

Gitflow Workflow

O Gitflow Workflow é utilizado na maioria das vezes em projetos grandes, onde é necessário ter um ciclo de desenvolvimento mais isolado; para isso, esse workflow utiliza branches para releases, features e bugfixes.

Nesse workflow, os branches master e develop são considerados históricos – isso porque eles irão guardar a história do projeto. As tags de marcação de release são feitas no master e o develop serve como branch de integração para branches de features.

Os branches de features são utilizados exatamente como no workflow anterior, a diferença aqui é que eles não serão mesclados no master e sim no develop.

Outra particularidade desse workflow é o branch de releases. Ele pode ser criado quando o branch de desenvolvimento (develop) estiver com features suficientes para uma release. Nesse branch nenhuma nova feature deve ser implementada, somente correções de bugs, inclusão de documentação ou tarefas relacionadas ao release.

Por último, há também o branch de hotfixes que é um branch de manutenção, ou seja, ele é feito a partir do master para corrigir alguma falha crítica e ao finalizar a correção, isso deve ser mesclado tanto no master quanto no develop.

Gitflow Workflow

Forking Workflow

O Forking Workflow é um workflow distribuído, que permite ao dono do repositório decidir o que será mesclado em seu projeto a partir de PR’s (Pull Requests).

Nesse workflow cada desenvolvedor possue seu próprio clone do projeto e pode fazer a alteração que desejar. A partir do momento em que o desenvolvedor finaliza a alteração e vai enviá-la para o repositório oficial, ele só poderá fazer isso criando uma pull request para o repositório do dono do projeto.

Em seu repositório local, o desenvolvedor deve utilizar branches para features, exatamente como demonstrado anteriormente.

Forking Workflow

É isso pessoal! Esses são os quatro workflows que eu queria apresentar para vocês. Particularmente eu prefiro o Gitflow Workflow.

Mas lembre-se sempre de verificar qual o workflow que melhor se adapta a sua maneira ou da sua equipe trabalhar, e independente de qual for, tente sempre utilizar o Git em seus projetos pois ele ajuda muito.

Se você quiser entender melhor e ver exemplos dê uma olhada nesse link: https://www.atlassian.com/git/workflows

Até mais!