Boas Práticas do Git
Vinte e cinco práticas do Git para equipes Rust - histórico limpo, commits revisáveis e hooks alinhados com CI.
Busque em todas as páginas da documentação
Vinte e cinco práticas do Git para equipes Rust - histórico limpo, commits revisáveis e hooks alinhados com CI.
main é sempre a verdade da integração: Cada PR mesclado passa por fmt, clippy e test.
Commit do Cargo.lock para aplicações: cargo build --locked reproduzível em CI.
IDs de ticket em cada commit: feat(api): rota de health [API-42] para rastreabilidade de cherry-pick.
Squash merge de features quando a política permite: Um ticket, um commit em main.
Branches de feature de curta duração: Rebase main diariamente para evitar conflitos de lockfile.
Corte de release/x.y para trens coordenados: API + worker + migração são enviados juntos.
Branch de release aceita apenas correções de bugs durante janelas de congelamento.
Cherry-pick para release/*, nunca mescle main em release/*.
Tag a partir de release/* após aprovação do staging: v2.6.0 dispara o pipeline.
Mescle release/* de volta para main após o rollout e exclua a branch de release.
Branches de hotfix a partir de tags de produção, não de main à frente da produção.
Backport de todo hotfix para main e release/* ativo.
Nunca force o push em branches compartilhadas: main, release/*, hotfix/*.
--force-with-lease apenas em feat/* privadas antes da conclusão da revisão.
Pre-commit espelha a CI: cargo fmt, clippy -D warnings, cargo test rápido.
target/ e .env no gitignore global - nunca comite segredos ou artefatos de build.
Use worktrees para revisão de PR em vez de stashing de builds longos.
gh pr create --fill após o push - linkar verificações de CI no template do PR.
Documente hotspots de conflito no PR ao tocar nas dependências do workspace Cargo.toml.
Assine commits quando a organização exigir assinatura SSH ou GPG.
Proteja main com verificações obrigatórias - fmt, clippy, test, build travado.
Disciplina no tamanho do PR - separe refatorações de mudanças de comportamento.
Consciência do reflog - recupere branches excluídas dentro da janela de retenção.
Tag de releases binárias correspondendo às tags de contêiner (v1.2.3).
Entrada no CHANGELOG com tag de release - link da URL de comparação do git nas notas.
Bibliotecas frequentemente omitem o lock no repositório; binários e workspaces comitam o lock.
Um único Cargo.lock na raiz do workspace é o padrão para workspaces Rust.
Versões da 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