github/gitignore · Rust.gitignore
Rust-.gitignore-Vorlage erklärt
Erklärt, warum Rust.gitignore das target-Verzeichnis, rustfmt-Sicherungen, MSVC-Debuginformationen und cargo-mutants-Ergebnisse ignoriert, und die geänderte Empfehlung zum Commit von Cargo.lock.
Rust.gitignore ist eine kurze Vorlage mit nur den minimal nötigen Regeln für ein Cargo-Projekt. Da sich die meisten Artefakte in einem einzigen target/ sammeln, gibt es wenige Regeln.
Die frühere Vorlage empfahl, Cargo.lock bei Bibliotheken zu ignorieren, doch die aktuelle Vorlage enthält diese Regel nicht mehr. Das Rust-Team hat seine Empfehlung 2023 geändert: Der Commit von Cargo.lock ist nun für alle Projekte einschließlich Bibliotheken der Standard.
Regeln im Einzelnen
| Muster | Was ignoriert wird und warum |
|---|---|
targetdebug | Cargo-Build-ErgebnisseOrdner, in dem cargo build Kompilierergebnisse, den inkrementellen Build-Cache und gebaute Abhängigkeiten ablegt. Er kann mehrere GB groß werden und wird vollständig neu erzeugt. Ohne abschließendes / wird auch eine gleichnamige Datei ignoriert. |
**/*.rs.bk | rustfmt-SicherungenSicherungskopien, die rustfmt vor dem Ändern einer Datei anlegt. Das Muster beginnt mit **/ und passt daher in jeder Tiefe. |
*.pdb | MSVC-DebuginformationenDebug-Symboldatenbanken, die beim Build mit der MSVC-Toolchain unter Windows entstehen. |
**/mutants.out*/ | Ergebnisse von MutationstestsErgebnisverzeichnisse von cargo-mutants (mutants.out, mutants.out.old). Wegen des abschließenden / passt das Muster nur auf Verzeichnisse. |
rustc-ice-*.txt | Dumps interner CompilerfehlerStacktrace, den rustc im aktuellen Verzeichnis hinterlässt, wenn ein interner Compilerfehler (ICE) auftritt. Nützlich für Fehlerberichte, im Repository aber überflüssig. |
Hinweise für die Praxis
- Committen Sie
Cargo.lock. Für reproduzierbare Builds und konsistente CI-Ergebnisse empfiehlt Cargo derzeit standardmäßig, die Datei auch bei Bibliotheken zu committen. - In einem Workspace entsteht nur ein
target/im Workspace-Stammverzeichnis; da die Regeltargetkeinen Schrägstrich hat, wird es aber an jeder Stelle ignoriert. - Einstellungen von RustRover und IntelliJ werden separat mit der JetBrains-Vorlage behandelt. Auch die Kommentare der Vorlage raten davon ab, ganz
.idea/zu ignorieren.
Originalvorlage
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/
Vorlagenquelle: github/gitignore/Rust.gitignore @356fd7b (2026-09-11) · CC0-1.0