Conceitos-chave

Fluxo de trabalho do Git

  • Em inglês: Git workflow

Um fluxo de trabalho do Git é uma forma de usar o Git para realizar o trabalho de maneira consistente e produtiva. Ele define como a sua equipe interage com o Git e como as alterações fluem entre diferentes branches e repositórios.

Fluxos de trabalho populares do Git

  • Fluxo de trabalho centralizado (Centralized Workflow). Todos os desenvolvedores trabalham em uma única branch, normalmente a branch main. Esse é o fluxo de trabalho mais simples, mas você não ganha os benefícios do isolamento de funcionalidades nem do desenvolvimento paralelo. Ele é usado com mais frequência por equipes acostumadas a trabalhar com os antigos sistemas de controle de versão centralizados.

  • Fluxo de trabalho com branches de feature (Feature Branch Workflow). Cada nova funcionalidade é desenvolvida em sua própria branch e depois mergeada na branch main quando fica pronta. Esse é o fluxo de trabalho mais comum para equipes que usam Git. Ele permite que os desenvolvedores trabalhem em várias funcionalidades ao mesmo tempo sem atrapalhar uns aos outros.

  • Fluxo de trabalho Gitflow (Gitflow Workflow). É uma abordagem mais estruturada, com branches de longa duração (main e develop) e branches de vida curta (feature, release e hotfix). Esse fluxo de trabalho é adequado para projetos maiores, com várias releases e frentes de desenvolvimento em paralelo. Ele oferece um caminho claro para novas funcionalidades e correções de bugs, do desenvolvimento até a produção. Porém, é bem complexo e pode ser exagero para projetos menores.

  • Fluxo de trabalho com forks (Forking Workflow). Cada desenvolvedor tem seu próprio fork (cópia) do repositório e abre pull requests para o repositório principal, onde as alterações são revisadas e mergeadas por alguém que tem acesso de escrita ao repositório principal. Esse fluxo de trabalho é comum em projetos open source, onde quem contribui não tem acesso de escrita ao repositório principal. Ele permite um alto grau de isolamento e controle sobre as contribuições.