Ruby-on-Rails-.gitignore-Vorlage erklärt
Erklärt, warum Rails.gitignore log·tmp·storage, die SQLite-Entwicklungsdatenbank, master.key, vorkompilierte Assets und node_modules ignoriert, sowie die Struktur der .keep-Negationsmuster.
Rails.gitignore blockiert Dateien, die im laufenden Betrieb einer Rails-Anwendung entstehen, sowie geheime Informationen. Hauptziel sind Daten, die sich beim Serverbetrieb ansammeln – Logs, temporäre Dateien, Uploads – und die Ergebnisse der Asset-Pipeline.
Das Muster, das nur den Inhalt eines Ordners ausschließt und eine leere Markierungsdatei behält, wie /log/* und !/log/.keep, kommt dreimal vor. Da git keine leeren Verzeichnisse speichert, ist diese Technik nötig, um die Ordnerstruktur zu erhalten.
Regeln im Einzelnen
| Muster | Was ignoriert wird und warum |
|---|---|
/log/*/tmp/*/storage/*!/log/.keep!/tmp/.keep!/storage/.keep | Log-, Temp- und Storage-OrdnerOrdner, in denen sich Laufzeitlogs, Cache- und pid-Dateien sowie lokale Active-Storage-Uploads ansammeln. Der Inhalt wird ausgeschlossen, die Datei .keep aber wieder aufgenommen, damit der Ordner im Repository bleibt. Schließt man das Verzeichnis selbst aus, etwa mit /log/, lässt sich .keep nicht wieder aufnehmen. |
config/master.keyconfig/initializers/secret_token.rb.env.env*.local | Geheimer Schlüsselconfig/master.key ist der Schlüssel zum Entschlüsseln von credentials.yml.enc. Gelangt diese Datei nach außen, sind alle Zugangsdaten offengelegt – sie wird niemals committet. Die verschlüsselte credentials-Datei selbst darf committet werden. |
/db/*.sqlite3/db/*.sqlite3-journal/db/*.sqlite3-[0-9]* | EntwicklungsdatenbankSQLite-Dateien für Entwicklung und Tests. db/schema.rb und die Migrationen werden committet, die Datendateien legt jede Person selbst an. |
/public/assets/public/packs/public/packs-test/public/system/public/uploads | Vorkompilierte Assets und PacksErgebnisse von assets:precompile und Webpacker sowie hochgeladene Dateien. Sie werden bei der Bereitstellung neu erzeugt. |
/.bundle/vendor/bundlenode_modules//vendor/assets/bower_components/yarn-error.log.yarn-integrity | Bundler- und Node-Abhängigkeitengems und JavaScript-Pakete, die bei der Installation neu entstehen, sowie Installationslogs. |
/coverage//spec/tmpcapybara-*.htmlrerun.txtpickle-email-*.html.rspec | Nebenprodukte von TestsCoverage-Ergebnisse, von Capybara bei Fehlschlägen gespeicherte Seiten und die Wiederholungsliste von Cucumber. .rspec wird als persönliche RSpec-Optionsdatei behandelt. |
.byebug_history.rvmrc.powenv*.rbc*.orig | Persönliche Tool-EinstellungenDebugger-Verlauf, alte RVM- und Pow-Einstellungen und Sicherungen der Originale, die Merge-Werkzeuge hinterlassen. |
Hinweise für die Praxis
- Wie die Kommentare der Vorlage empfehlen, committen Sie
Gemfile.lockund.ruby-version, damit die Versionen in allen Umgebungen übereinstimmen. - Nutzen Sie
.rspecals gemeinsame Teamkonfiguration, löschen Sie diese Zeile. Auch die vonrails newerzeugte Standarddatei wird oft committet. - Wurde
config/master.keybereits committet, erzeugen Sie einen neuen Schlüssel (credentials neu verschlüsseln) und ersetzen Sie die Werte, die mit dem alten Schlüssel verschlüsselt waren.
Originalvorlage
*.rbccapybara-*.html.rspec/db/*.sqlite3/db/*.sqlite3-journal/db/*.sqlite3-[0-9]*/public/system/coverage//spec/tmp*.origrerun.txtpickle-email-*.html# Ignore all logfiles and tempfiles./log/*/tmp/*!/log/.keep!/tmp/.keep# TODO Comment out this rule if you are OK with secrets being uploaded to the repoconfig/initializers/secret_token.rbconfig/master.key# Only include if you have production secrets in this file, which is no longer a Rails default# config/secrets.yml# dotenv, dotenv-rails# TODO Comment out these rules if environment variables can be committed.env.env*.local## Environment normalization:/.bundle/vendor/bundle# these should all be checked in to normalize the environment:# Gemfile.lock, .ruby-version, .ruby-gemset# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:.rvmrc# if using bower-rails ignore default bower_components path bower.json files/vendor/assets/bower_components*.bowerrcbower.json# Ignore pow environment settings.powenv# Ignore Byebug command history file..byebug_history# Ignore node_modulesnode_modules/# Ignore precompiled javascript packs/public/packs/public/packs-test/public/assets# Ignore yarn files/yarn-error.logyarn-debug.log*.yarn-integrity# Ignore uploaded files in development/storage/*!/storage/.keep/public/uploads
Vorlagenquelle: github/gitignore/Rails.gitignore @356fd7b (2026-09-11) · CC0-1.0