Branching & Merging
As equipes Rust geralmente usam o fluxo trunk-based em main com branches curtas feat/*, trens opcionais release/* para workspaces com múltiplos crates e rebase para manter o histórico revisável.
Busque em todas as páginas da documentação
As equipes Rust geralmente usam o fluxo trunk-based em main com branches curtas feat/*, trens opcionais release/* para workspaces com múltiplos crates e rebase para manter o histórico revisável.
git checkout main
git pull --rebase origin main
git checkout -b feat/billing-tax
# work, commit
git fetch origin
git rebase origin/main
git push -u origin feat/billing-tax
# open PR -> squash merge to mainQuando usar isso:
# Release train for workspace 2.6.0
git checkout -b release/2.6.0 origin/main
# only bugfixes cherry-picked
git tag v2.6.0
git push origin v2.6.0
# Hotfix from production tag
git checkout -b hotfix/2.5.1 v2.5.0
git cherry-pick <fix-sha>
git push origin hotfix/2.5.1O que isso demonstra:
main mais recentemain à frente da produção| Estratégia | Quando |
|---|---|
| Squash merge | Um commit por ticket em main |
| Rebase merge | Preservar a granularidade do commit |
| Merge commit | Branches compartilhadas de longa duração |
Quando as migrações sqlx e os deploys de binários precisam se alinhar, crie release/* e execute cargo test --all-features completo antes de marcar a tag.
Cargo.lock se multiplicam. Correção: rebase diariamente.main em release/* - traz funcionalidades não testadas. Correção: apenas cherry-pick de correções.main - pesadelo de auditoria. Correção: a proteção de branch bloqueia o force push.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| GitFlow | Governança pesada de release | Equipe pequena de deploy contínuo |
| Trunk only | Serviço binário único | Release coordenado de múltiplos artefatos |
| Merge queue | Monorepo de alta concorrência | Equipe minúscula |
Política da equipe: squash para main é comum; rebase localmente antes do merge para manter o CI verde.
Evite; um ticket por branch simplifica a revisão e o rollback.
Um único branch pode tocar múltiplos crates; incrementos de versão em um PR quando acoplados.
Versões do Stack: Esta página foi escrita para Rust 1.97.0 (edição 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4 e Polars 0.46+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026