Junior
Qual é a sua experiência com Git Flow?
sobes.tech IA
Resposta da IA
Tenho experiência com Git Flow, que utilizo ativamente para gerir ramificações em projetos médios e grandes.
Principais tipos de ramificações:
master(oumain) : Código estável, pronto para produção. Atualiza-se apenas por fusão derelease.develop: Ramificação principal para integrar novas funcionalidades. Todo o desenvolvimento começa aqui.feature/<nome>: Ramificações para desenvolver novas funcionalidades. Divergem dedevelope são fundidas de volta emdevelopapós conclusão.release/<versão>: Ramificações para preparar uma nova versão. Divergem dedevelop, usadas para correções de bugs e ajustes finais. São fundidas tanto emmastercomo emdevelop.hotfix/<nome>: Ramificações para corrigir bugs críticos em produção. Divergem demastere são fundidas emmasteredevelop.
Processo típico de trabalho com uma funcionalidade:
# Iniciar o desenvolvimento de uma nova funcionalidade
git flow feature start my-new-feature
# Programar, fazer commits
# Finalizar o desenvolvimento da funcionalidade (fundir em develop e remover a ramificação da funcionalidade)
git flow feature finish my-new-feature
Processo de criação de release:
# Iniciar o processo de release para a versão 1.0.0
git flow release start 1.0.0 develop
# Fazer os ajustes e testes necessários
# Finalizar o release (fundir em `master` e `develop`, etiquetar a versão)
git flow release finish 1.0.0
Git Flow é adequado para projetos com ciclos de lançamento bem definidos e exige disciplina da equipa. Para projetos mais flexíveis e em rápida mudança, modelos de ramificação mais simples, como GitHub Flow, podem ser preferidos.
Utilizei-o em projetos com equipas de 5 a 20 pessoas, o que permitia padronizar o processo de desenvolvimento e reduzir conflitos de fusão.