github/gitignore · Rust.gitignore
Template .gitignore do Rust explicado
Explica por que o Rust.gitignore ignora o diretório target, os backups do rustfmt, as informações de depuração do MSVC e os resultados do cargo-mutants, e a mudança na recomendação de commitar o Cargo.lock.
O Rust.gitignore é um template curto com apenas as regras mínimas necessárias para um projeto Cargo. Como quase todos os artefatos se concentram em target/, há poucas regras.
O template antigo orientava ignorar o Cargo.lock em bibliotecas, mas o atual não tem mais essa regra. Em 2023 a equipe do Rust mudou a recomendação e definiu como padrão commitar o Cargo.lock em todos os projetos, inclusive bibliotecas.
Explicação regra por regra
| Padrão | O que ignora e por quê |
|---|---|
targetdebug | Resultados de build do CargoÉ a pasta onde o cargo build coloca os resultados de compilação, o cache de build incremental e os builds das dependências. Pode chegar a vários GB e é totalmente recriada. Por não ter / no final, um arquivo com o mesmo nome também é ignorado. |
**/*.rs.bk | Backups do rustfmtSão backups que o rustfmt deixa antes de alterar um arquivo. Como começa com **/, corresponde em qualquer profundidade. |
*.pdb | Informações de depuração do MSVCÉ o banco de dados de símbolos de depuração gerado ao compilar com a toolchain MSVC do Windows. |
**/mutants.out*/ | Resultados de testes de mutaçãoSão os diretórios de resultados criados pelo cargo-mutants (mutants.out, mutants.out.old). Por causa da / final, só corresponde a diretórios. |
rustc-ice-*.txt | Dumps de erro interno do compiladorÉ o stack trace que o rustc deixa no diretório atual quando encontra um erro interno do compilador (ICE). Serve para relatar o bug, mas não é necessário no repositório. |
Cuidados na prática
- Commite o
Cargo.lock. Para builds reproduzíveis e resultados de CI consistentes, a recomendação padrão atual do Cargo é commitá-lo também em bibliotecas. - Com um workspace,
target/é criado uma única vez na raiz do workspace, mas, como a regratargetnão tem barra, ele é ignorado onde quer que apareça. - As configurações do RustRover e do IntelliJ são tratadas à parte com o template JetBrains. Os comentários do template também dizem que não recomendam ignorar
.idea/inteiro.
Template original
Rust.gitignore
# Generated by Cargo# will have compiled files and executablesdebugtarget# These are backup files generated by rustfmt**/*.rs.bk# MSVC Windows builds of rustc generate these, which store debugging information*.pdb# Generated by cargo mutants# Contains mutation testing data**/mutants.out*/# rustc will dump stack traces when hitting an internal compiler error to PWDrustc-ice-*.txt# RustRover# JetBrains specific template is maintained in a separate JetBrains.gitignore that can# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore# and can be added to the global gitignore or merged into this file. For a more nuclear# option (not recommended) you can uncomment the following to ignore the entire idea folder.#.idea/
Origem dos templates: github/gitignore/Rust.gitignore @356fd7b (2026-09-11) · CC0-1.0