DEV Community

Alisson Leal
Alisson Leal

Posted on

Como eu uso Github Flow no dia a dia como dev

O GitHub Flow é uma metodologia de desenvolvimento que simplifica a colaboração e o controle de versão, promovendo um fluxo de trabalho ágil e eficiente.

Através do uso estratégico de branches e pull requests, as equipes podem gerenciar o desenvolvimento de novas funcionalidades, correções de bugs e melhorias de forma organizada e previsível.

Visão Geral do GitHub Flow:

  1. Branch Principal (main): Serve como a versão estável do projeto, refletindo o estado de produção.
  2. Feature Branches: Para cada nova funcionalidade ou correção, cria-se uma branch específica a partir da main.
  3. Commits: As alterações são registradas através de commits claros e descritivos na branch correspondente.
  4. Pull Requests: Após concluir o desenvolvimento ou a correção, abre-se um pull request para revisão e discussão.
  5. Revisão e Merge: Após a aprovação, a branch é mesclada de volta na main, garantindo que apenas código validado seja integrado.
  6. Implantação: A main é implantada em produção, garantindo que as últimas alterações aprovadas estejam disponíveis.

Exemplo Prático:

Abaixo, apresentamos um diagrama que ilustra um fluxo de trabalho seguindo o GitHub Flow:

github flow: https://mermaid.ink/img/pako:eNqVU01PAjEQ_SuTXrhgjMppb6iJB0Niggcleynt7G6hH8u0NRLCf7dlIahhCfQ2M2_evDeTbphwElnBahVeiLdNaSE94YxRAZQsoGQV8lCAsinRklugCCU7C1Ncg8cQlK39ATonbkUDg4y6fR9PX2_u7h8G_bXRoH-EaTUatAFyHAlh_Ph0WpL6LoDLRfQB5rEGZzMU0MrWKXu00aBYuhhOq7tIwcfn7CIFymYoeEGI9vz8kxsI6NP82EoeEHLgD5S9pgxXtksZpBr_m9wTT3a1P6W8rl3z9TK7NfmVhlVEWkOLVDky6cx4YOvEZP59z1vUGipypksGB4Te6S_cQ4WzlVbiSoOjfoOj3wZLy4Ys9adYpu-wyYRp3U06c8lyv-S0zMBtwvEY3HRtBSsCRRyy7h7PitfEDSsqrn3KolTB0aT7X7tvNmQttzPnjhhysW720fYHB9cliQ?type=png

Análise do Diagrama:

  • Inicialização do Projeto: O projeto é iniciado com dois commits na branch main: "feat: init project" e "feat: initial settings".
  • Desenvolvimento da Funcionalidade ABC: Uma nova branch feat/TASK-123 é criada a partir da main. Nessa branch, são realizados dois commits: feat: implement feature ABC e fix: adjust bug on ABC endpoint.
  • Desenvolvimento da Funcionalidade XYZ: Outro desenvolvedor cria uma nova branch, feat/TASK-124, é criada a partir da main. Nesta branch, são feitos três commits: feat: implement feature XYZ, fix: adjust bug in XYZ screen e test: update tests in XYZ endpoint.
  • Integração das Funcionalidades: Após o desenvolvimento e testes, as branches de funcionalidades são mergeadas mescladas de volta na main através de pull requests.

Benefícios do GitHub Flow:

  • Simplicidade: Um fluxo de trabalho linear e fácil de seguir.
  • Integração Contínua: Facilita a integração contínua de código, reduzindo conflitos.
  • Colaboração Eficiente: Uso de pull requests para revisão e discussão de código.
  • Desenvolvimento Ágil: Permite iterações rápidas e entrega contínua de valor.

Ao adotar o GitHub Flow, as equipes de desenvolvimento podem manter um processo organizado e eficiente, garantindo a qualidade e a estabilidade do código em produção.

Fontes:

Top comments (0)