Please enable JavaScript.
Coggle requires JavaScript to display documents.
Estratégias de ramificação, Maria Fernanda Silva Salomão - Coggle Diagram
Estratégias de ramificação
GitFlow
Usado em projetos de curto prazo
Branches principais
main
develop
feature/
release
hotfix
Vantagens
Ele organiza bem o que está em desenvolvimento, o que está em teste e o que está pronto para o entrar em produção.
Ele é ideal para softwares que têm lançamentos planejados.
Evita instabilidade na branch principal: os erros não chegam facilmente à produção.
Permite que vários desenvolvedores podem trabalhar em diferentes features sem atrapalhar os outros.
Desvantagens
Ele exige várias branches e merges, o que pode confundir quem ta iniciando.
Como ele permite muitias mudanças, elas podem demorar a chegar na produção.
Dificulta ciclos curtos de entrega. (uma sprint por exemplo)
Muitas branches longas, maior a chance de conflitos.
Github Flow
Muito utilizado para projetos pequenas e que precisam realizar deploys frequentes ou seja projetos academicos.
Branchs principais
main
feature
Vantagens
Bem simples, basta criar uma branch, fazer commits, abrir um pull request e fazer o merge.
Ideal para integração contínua, permitindo atualizações rápidas em produção.
Revisão de código por meio de pull requests é bem fácil, tanto pelo terminal quanto pela IDE
Tudo gira em torno da main, sem ramos complexos.
Desvatagens
Como as mudanças vão rápido para produção, erros podem escapar se não houver automação.
Ele não fornece uma estrutura para gerenciar releases ou múltiplas versões que estão ativas.
Se o controle de qualidade for falho, a main pode quebrar, causando falhas no sistema desenvolvido.
Não serve bem para sistemas que exigem validações longas antes do deploy.
GitLab Flow
Muito utilizado em equipes que usam integração contínua e precisam gerenciar diferentes ambientes como testes, homolagação e produção.
Branches principais
main
feature
pre-produção
produção
Vantagens
Ele permite controlar o código conforme ele avança entre ambientes, como testes e profucção
Segue um modelo mais parecido com o GitFlow ou com o Trunk-Based, dependendo da equipe.
Combina versionamento e deploy automatizado em um só fluxo.
É fácil saber em qual ambiente está cada versão do código.
Desvantaens
Precisa ter uma boa noção dos ambientes e sobre automação de deploy.
Se o CI/CD não estiver bem configurado, o fluxo pode perder sua eficiência.
Se não houver um padrão claro, os ambientes podem se misturar.
Ele exige um certo custo de manutenção.
Tronco
Bom para equipes rapidas e com integração e entrega contínuas.
Branches principais
Main
trunk
Vantagens
O código é integrado rapidamente, permitindo que deploys diários sejam feitos.
Como todos desenvolvem códigos com frequência, é raro ter grandes divergências.
Todos trabalham na mesma base de código.
O fluxo incentiva a integração constante.
Permite liberar recursos sem precisar criar novas branches
Desvantagens
As commits devem ser pequenos, frequentes e bem testadas.
Ele naão cobre releases formais.
Ele é complicado para equipe que precisam entregar constantemente.
Maria Fernanda Silva Salomão
Tarefa 5