Tipos de Workflows
O que é um workflow? E por que você deveria usar um?
É isso que quero explicar hoje. Tenho certeza de que você começará a usá-lo ainda hoje.
Um workflow define como você e sua equipe podem colaborar usando Git e GitHub. Escolher o workflow correto dependerá de como sua equipe está estruturada, da complexidade do projeto e de suas estratégias para lançar uma nova versão.
Vou explorar os workflows mais comuns e seus casos de uso.
Trunk-Based Development
O mais utilizado, com certeza. Você provavelmente já usou esse modelo e nem sabia que ele tinha um nome.
Mas como ele funciona?
Os desenvolvedores trabalham diretamente na branch main
ou criam feature branches de curta duração. Todas as alterações são mescladas na main
várias vezes ao dia.
Isso resulta em integração frequente, minimizando conflitos de merge. Com isso, temos entrega rápida, colaboração em tempo real e menos conflitos de merge.
Passos do Workflow
- Iniciar o trabalho:
1
git checkout -b feature-article
- Fazer alterações e enviar frequentemente:
1
git commit -m "Finish Article"
- Mesclar a branch:
1 2 3
git checkout main git merge feature-article git push origin main
Diagrama
GitFlow
Em vez de ter apenas uma branch principal, sempre temos duas: main
e dev
.
Com base em dev
, podemos criar outras branches para diferentes propósitos, como:
feature branches
: Criadas a partir dadev
, mescladas de volta quando concluídas.release branches
: Criadas a partir dadev
ao preparar um lançamento.hotfix branches
: Criadas a partir damain
para corrigir problemas urgentes e mescladas tanto namain
quanto nadev
.
A branch main
sempre armazena o código de produção, enquanto dev
integra todas as feature branches. Desenvolvemos na branch dev
para evitar mexer no código de produção.
GitFlow é a melhor opção para propósitos de CI/CD.
Passos do Workflow
- Inicializar o GitFlow:
1
git flow init
Durante a inicialização, será feito um pequeno questionário para configurar o projeto.
- Iniciar uma nova feature:
1
git flow feature start feature-article
- Finalizar a feature:
1
git flow feature finish feature-article
- Publicar a feature:
1
git flow feature publish feature-article
- Criar uma branch de release:
1
git flow release start v1.0
- Finalizar & deploy da release:
1
git flow release finish 'v1.0'
Se quiser saber mais sobre os comandos, recomendo este GitFlow cheatsheet.
Diagrama
Feature Branch
Ideal para equipes que trabalham em múltiplas features simultaneamente. Cada feature é desenvolvida em uma branch separada e só é mesclada na main
após revisão.
Passos do Workflow
- Criar uma feature branch:
1
git checkout -b feature-article
- Trabalhar e realizar commits:
1 2
git add . git commit -m "Added Feature Branch Topic"
- Enviar a branch e abrir um Pull Request:
1
git push origin feature-article
- Após a aprovação, mesclar na
main
no repositório remoto e local.
Diagrama
Forking Workflow
Os desenvolvedores fazem um fork do repositório em vez de trabalhar diretamente nele. Este modelo é recomendado e amplamente utilizado em projetos Open-Source.
Os desenvolvedores clonam o repositório, criam uma branch, fazem alterações e enviam suas mudanças para seu próprio fork. Depois disso, submetem as alterações como um Pull Request (PR).
Passos do Workflow
Fazer um fork do repositório no GitHub.
- Clonar o repositório forkado:
1
git clone https://github.com/lorenzouriel/ebook-git-github.git
- Criar uma branch e fazer alterações:
1 2 3 4
git checkout -b feature-article git add . git commit -m "Added feature article" git push origin feature-article
- Submeter um Pull Request para o repositório original.
Diagrama
Criei um guia completo para te ajudar a entender Git & GitHub — confere lá!
Obrigado por ler até aqui!