O Git flow é uma extensão do git. É possível usar os dois ao mesmo tempo. Semântica aos branches master e develop
O master é um repositório onde é feito merge, quase nunca commits. O develop é o repositório para o desenvolvimento, dele vem o merge para o master.
Ele trabalha com:
- FEATURES
- RELEASES
- HOTFIXES
- BUGFIXES
- SUPPORTS
- git flow init
Define uma nova funcionalidade. Toda feature inicia e termina em develop. Toda feature tem o prefixo padrão FEATURE/*. Exemplo: FEATURE/loja, FEATURE/cadastro, FEATURE/login.
- git flow feature start
Após o git commit
- git flow finish
Após finalizar uma feature, é realizado um merge em develop e a featre é excluída.
Caso queria compartilhar a feature com outras pessoas, antes de finalizar a feature
- git flow publih
Para obter uma feature publicada.
- git flow feature track
Listar apenas features,
- git flow feature list
Troca entre features
- git flow feature checkout
Por padrão o git flow trabalha com origin.
Definir uma nova versão em produção do software. Prefixo padrão RELEASE/*. Exemplo: REALEASE/rls1, RELEASE/v2, etc..
A releasse é mesclada no master e no develop As releases trabalham com o padrão Semantic Versioning vMAJOR.MINOR.PATCH.
- git flow release start : Onde versão segue o padrão Semantic Versining: 0.0.1, 0.0.2, 0.1.0, 1.0.0
Pegar uma release do server
- git flow release track <versao>
Corrigir erros críticos ligados à release
Essa correção deve ser mesclada em master e em develop
criar o hotfixes
- git flow hotfix start <versão> // exemplo, 0.0.2
Então adciona e comita as alterações
Aì executa
- git flow hotfix finish <versão> // exemplo, 0.0.2
A hotfix deve ter a mesma versão de uma release que deseja ser consertada
São erros que não se deseja gerar uma nova versão quando forem ser produzidos.
- git flow start bugfix start nome_do_bug
- git add arquivo
- git commit
- git flow bugfix finish nome_do_bug
Ferramenta grafica de controle de versões em git ou mercurial.