Fluxos de trabalho do Git

Como as equipes organizam branches, revisões e versões. Cada fluxo de trabalho abaixo traz as regras como descritas pela fonte original, quando ele se encaixa e uma demonstração animada — executada pelo simulador de Git e verificada com o Git real.

Fluxo de trabalhoBranches de longa duraçãoComo publicaIdeal para
mainFazer deploy do main após cada pull request mescladoAplicações com deploy contínuo
main, developBranches de release, com tag no mainSoftware versionado, várias versões mantidas
main (the trunk)A partir do tronco ou de uma branch de release de curta duraçãoEquipes de CI/CD que integram diariamente
upstream’s mainMantenedores mesclam pull requests vindos de forksCódigo aberto, colaboradores sem permissão de escrita

GitHub flow

Uma branch main + branches de curta duração + pull requests

Um fluxo leve, baseado em branches. Tudo o que está no main pode ir para produção; cada mudança é feita em uma branch própria com nome descritivo, mesclada no main por um pull request revisado e então implantada.

As regras

  1. Tudo o que está na branch main pode ir para produção.
  2. Crie uma branch com nome descritivo a partir do main para cada mudança.
  3. Faça commits localmente e envie com frequência para a branch de mesmo nome.
  4. Abra um pull request para receber feedback ou quando a branch estiver pronta para o merge.
  5. Mescle no main depois da revisão e exclua a branch.
  6. Faça o deploy assim que for mesclado (no texto original: “você pode e deve fazer o deploy imediatamente”).

✓ Use quando

Aplicações web e serviços com deploy contínuo a partir de uma única versão.

✗ Evite quando

Você precisa manter várias versões publicadas em paralelo.

Fontes

Abrir e mesclar o pull request acontece no GitHub; a demonstração mostra as operações equivalentes do Git (o botão de merge padrão do GitHub cria um commit de merge).

Monte o fluxo de trabalho e percorra-o uma vez.

SEUS ARQUIVOS — UM ARQUIVO, TRÊS LUGARESDiretórioseu discoPreparaçãopróximo commitHEADúltimo commitadd ›commit ›GITUALIZE☁ ORIGIN — github.com/acme/shop (outro repositório)O SEU REPOSITÓRIO — .git no seu notebook2e039acAdd homepage2e039ac897849007af489a58ee9eec107a21974e Add homepageb272b3aSet up projectb272b3abaca08f2f1c56c0562679f66a61035535 Set up project129c2dbInitial commit129c2db06bfe68f8469dc82e6e05d1c03d1f768c Initial commit2e039acAdd homepage2e039ac897849007af489a58ee9eec107a21974e Add homepageb272b3aSet up projectb272b3abaca08f2f1c56c0562679f66a61035535 Set up project129c2dbInitial commit129c2db06bfe68f8469dc82e6e05d1c03d1f768c Initial commitmainmain: um rótulo móvel em um commitorigin/mainorigin/main: o seu marcador LOCAL de onde a branch do origin estava no seu último fetch/pushHEADHEAD → a branch em que você estámainmain: como ela existe NO originREADME.mdsem mudançasapp.jssem mudançasindex.htmlsem mudançasv1v1v1v1v1v1v2v2v2HEAD → main → 2e039ac “Add homepage”
0.0s / 142s
commitanel = o commit em que o HEAD estáinalcançável (ainda existe)branch = rótulo móvelorigin/* = o seu marcador do remotoHEAD = onde você está
  1. 1 Criar uma branch

  2. 2 Fazer mudanças

  3. 3 Criar um pull request

  4. 4 Responder aos comentários da revisão

  5. 5 Mesclar o seu pull request

  6. 6 Excluir a sua branch