github/gitignore · Rust.gitignore
Разбор шаблона .gitignore для Rust
Почему Rust.gitignore игнорирует каталог target, резервные копии rustfmt, отладочную информацию MSVC и результаты cargo-mutants, а также об изменении рекомендации коммитить Cargo.lock.
Rust.gitignore — короткий шаблон с минимумом правил, нужных проекту Cargo. Почти все артефакты собираются в одном target/, поэтому правил немного.
Раньше шаблон советовал игнорировать Cargo.lock для библиотек, но в текущем шаблоне такого правила нет. В 2023 году команда Rust изменила рекомендацию: коммитить Cargo.lock по умолчанию во всех проектах, включая библиотеки.
Разбор правил
| Шаблон | Что и почему игнорируется |
|---|---|
targetdebug | Результаты сборки CargoПапка, куда cargo build складывает результаты компиляции, кэш инкрементальной сборки и собранные зависимости. Она может разрастаться до нескольких ГБ и полностью пересоздаётся. Без / в конце игнорируется и файл с тем же именем. |
**/*.rs.bk | Резервные копии rustfmtРезервные копии, которые rustfmt оставляет перед изменением файла. Правило начинается с **/, поэтому совпадает на любой глубине. |
*.pdb | Отладочная информация MSVCБазы данных отладочных символов, которые появляются при сборке тулчейном Windows MSVC. |
**/mutants.out*/ | Результаты мутационного тестированияКаталоги результатов cargo-mutants (mutants.out, mutants.out.old). Из-за / в конце совпадают только каталоги. |
rustc-ice-*.txt | Дампы внутренних ошибок компилятораТрассировки стека, которые rustc оставляет в текущем каталоге при внутренней ошибке компилятора (ICE). Они нужны для отчёта об ошибке, но не для репозитория. |
На что обратить внимание на практике
Cargo.lockкоммитьте. Ради воспроизводимых сборок и согласованных результатов CI текущая рекомендация Cargo по умолчанию — коммитить его и для библиотек.- В рабочем пространстве
target/создаётся один раз в его корне, но правилоtargetбез слэша игнорирует его, где бы он ни появился. - Настройки RustRover и IntelliJ покрываются отдельно шаблоном JetBrains. В комментариях шаблона также сказано, что игнорировать
.idea/целиком не рекомендуется.
Исходный шаблон
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/
Источник шаблонов: github/gitignore/Rust.gitignore @356fd7b (2026-09-11) · CC0-1.0