Git, Github e Gitflow
- #GitHub
- #Git
Git
é o Principal e mais utilizado sistema de controle de versão distribuído.
Ele é utilizado localmente para fazer o controle de versão.
Características:
Ser open-source e gratuito
Possuir ramificações(branch) e fusões (merge) de forma eficiente
É leve, rápido e eficiente.
Github
É um hub, plataforma de hospedagem para arquivos e códigos de controle de versão e colaboração utilizando o sistema do git.
Características:
É o hub mais famoso e tem uma comunidade ativa.
É utilizado mundialmente e pela maioria das empresas de tecnologia
Gitflow
É um modelo de fluxo de trabalho utilizada por equipes de desenvolvimento de software.
Ele se destaca por auxiliar na organização do versionamento do código utilizando ramificações Branchs.
Objetivo do gitflow
O principal objetivo é organizar as Branchs dentro dos repositórios, organizando o processo de Novas funcionalidades, Correções de bugs e Lançamento de versões.
Organização de branchs
O gitflow trabalha Com duas branchs principais a Develop e a Main/Master que duram todo o processo de desenvolvimento, ou seja para sempre.
Ele também utiliza três branchs de suporte, Feature, Release e Hotfix que são temporários e duram ate realizar o merge com as branches principais.
Main/Master
É a branch principal ou branch de produção.
É a branch mais importante do projeto pois o que estiver nela será o que estará rodando na sua aplicação.
Develop
É a branch onde contém o código em progresso para o próximo deploy antes de ser mesclado na branch Master.
É uma linha do tempo de desenvolvimentos recentes, pois todas as etapas do desenvolvimento passam na develop.
Feature
São Branchs criadas sempre a partir da branch develop utilizadas para o desenvolvimento de funcionalidades especificas.
Sempre que a feature é finalizada, ela é mergeada na branch develop e Após o merge a branch é excluída.
O nome das branches feature normalmente segue uma convenção, como por exemplo:
feature/nome-da-feature
Feature/menu-bar
Feature/article-section
Hotfix
São Branches criadas a partir da branch master para realizar a correção de bugs e erros imediatos.
Quando finalizado a correção, ela é mergeada nas branch master e develop, Após o merge a branch é excluída.
As Branches Hotfix seguem a convenção: hotfix/nome-do-fix
Release
Uma vez que etapa de desenvolvimento esteja concluida, Com todas as features e Hotfix mergeados a develop.
Se quisermos mesclar isso na Main/master, teremos que criar uma branch release, que servira como ambiente de homologação e caso haja algum bug e alteração, ela deve ser sincronizada com a develop.
As branchs Release seguem a convenção de nome a seguir:
release/versao
release/1.0.0
- o primeiro numero é o major, que indica mudanças significativas no software, com grandes recursos.
- o segundo numero é o minor, que indica novos recursos, que não haverá quebra de compatibilidade.
- o terceiro é o patch, que indica correção de bugs e erros, sem quebra de compatibilidade.
Assim como as outras branches de suporte, ela é removida após realizar os teste do merge com a master.