top of page

Conceitos Básicos do Git e GitFlow

  • Foto do escritor: Almir Santos
    Almir Santos
  • 24 de set. de 2021
  • 3 min de leitura

Atualizado: 10 de jan. de 2022

Hoje, Git e GitFlow é muito utilizado para o controle e gerenciamento de projetos – principalmente em projetos de desenvolvimento de software. Mas o que é Git e GitFlow e em quais situações utilizá-los?

Muitas pessoas se confundem achando que falar de Git e GitFlow é a mesma coisa, isto se deve ao fato de que os dois estão intrinsecamente interligados, mas existe uma grande diferença entre Git e GitFlow.

De acordo com a Wikipedia, Git é um sistema de controle de versões distribuído. Sendo inicialmente projetado e desenvolvido por Linus Torvalds, o Git tinha como objetivo ser utilizado no desenvolvimento do kernel Linux, mais tarde foi expandido para desenvolvimentos de softwares e hoje pode ser utilizado em qualquer projeto graças a possibilidade de se registrar o histórico de edições de qualquer tipo de arquivo dentro de seus repositórios. Repositório é como são chamados os diretórios de trabalho do Git.

Por ser uma ferramenta opensource e que se mostra ser eficaz para o que se propõem, o Git é utilizado em várias plataformas, dentre elas, as mais conhecidas são GitHub, GitBucket e GitLab.

Para utilizar o Git, é necessário conhecer seus comandos e forma de trabalhar. Dentre os vários comandos, segue abaixo aqueles considerados os principais:

  • git init: cria um repositório local;

  • git clone: clona o repositório remoto no repositório local;

  • git add . ou git add <<nome_arquivo>>: adiciona arquivos ou um arquivo específico com alterações para a lista de arquivos a serem enviados ao repositório remoto;

  • git commit -m “Mensagem de commit”: confirma os arquivos adicionados à lista de arquivos e informa a mensagem a ser registrada no histórico para o repositório remoto;

  • git push: envia os arquivos confirmados à lista de arquivos para o repositório remoto;

  • git pull: atualiza o repositório local com base no remoto;

  • git merge: realiza a fusão de branch’s;

  • git status: demonstra alterações realizadas no repositório local que ainda não foram enviadas ao repositório remoto;

  • git log: demonstra histórico de alterações;

  • git branch <<nome do branch>>: cria um novo branch no repositório.

Tendo entendido o que é o Git, partimos para o entendimento do GitFlow.

De acordo com o site Atlassian, GitFlow é um design de fluxo de trabalho Git. Tendo sido publicado e popularizado primeiramente por Vincent Driessen, o GitFlow define um modelo de ramificação rigoroso projetado com base no lançamento do projeto e oferecendo uma estrutura robusta para gerenciar grandes projetos.

É no GitFlow que definimos os tipos de ramificações e as formas de mesclagens que o Git irá trabalhar organizando assim os nossos branches. O GitFlow estabelece padrões de nomes e funções para cada tipo de branch. As principais são:

  • master: contém todo o código desenvolvido, finalizado e enviado ao usuário final;

  • develop: originado no master, ele possui o código do nosso próximo deploy. Todas as features que vão sendo finalizadas vão sendo adicionadas nesse branch para posteriormente passarem por mais uma etapa antes de ser juntada com a master;

  • feature/*: com sua origem baseada no branch develop, são branches para o desenvolvimento de uma funcionalidade específica. Por convenção elas tem o nome iniciado por feature/, por exemplo: feature/cadastro-usuarios;

  • hotfix/*: com sua origem no branch master, são responsáveis pela realização de alguma correção crítica encontrada em produção. Importante ressaltar que essa branch deve ser juntada tanto com a master quanto com a develop;

  • release/*: com sua origem baseada no branch develop, ela é a etapa final antes de liberar uma versão de produção. Se encontra em nível de preparação para ser juntada com o master e o develop (caso alguma coisa tenha sido modificada no branch em questão).

Com essas informações e conceitos aprendidos, fica fácil identificar em quais situações utilizar Git e GitFlow, mas é bom ressaltar que devem ser utilizados quando existe um projeto muito grande, com alto nível de complexidade, com vários desenvolvedores trabalhando ao mesmo tempo e para garantir uma qualidade maior ao software que está se desenvolvendo.

Estas são as informações básicas que gostaria de passar. Estarei abordando este assunto de forma mais detalhada nos próximos posts.

Se souber de mais alguma informação importante que ficou de fora deste artigo ou algo que careça de melhor explicação, é só deixar seus comentários.

Kommentare


bottom of page