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
mainquando 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 (
mainedevelop) e branches de vida curta (feature,releaseehotfix). 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.
.gitignoregit checkoutgit configgit taggit worktree