Modèle .gitignore Ruby on Rails expliqué
Explique pourquoi Rails.gitignore ignore log·tmp·storage, SQLite de développement, master.key, les assets précompilés et node_modules, ainsi que la structure de motifs de négation .keep.
Rails.gitignore bloque les fichiers créés pendant l'exécution d'une application Rails et les informations secrètes. Il cible principalement les données qui s'accumulent quand le serveur tourne — logs, fichiers temporaires, fichiers téléversés — et les résultats produits par le pipeline d'assets.
Le motif qui exclut uniquement le contenu d'un dossier tout en conservant un fichier marqueur vide, comme /log/* et !/log/.keep, apparaît trois fois. git ne stockant pas les répertoires vides, cette technique est nécessaire pour conserver la structure des dossiers.
Explication règle par règle
| Motif | Ce qui est ignoré et pourquoi |
|---|---|
/log/*/tmp/*/storage/*!/log/.keep!/tmp/.keep!/storage/.keep | Dossiers de logs, temporaires et de stockageDossiers où s'accumulent les logs d'exécution, les fichiers de cache et de pid, et les téléversements locaux d'Active Storage. Le contenu est exclu, mais le fichier .keep est réinclus pour que le dossier reste dans le dépôt. Si l'on exclut le répertoire lui-même, comme avec /log/, .keep ne peut plus être réinclus. |
config/master.keyconfig/initializers/secret_token.rb.env.env*.local | Clé secrèteconfig/master.key est la clé qui déchiffre credentials.yml.enc. Si ce fichier fuit, tous les identifiants sont exposés : ne le commitez jamais. Le fichier credentials chiffré lui-même peut être commité. |
/db/*.sqlite3/db/*.sqlite3-journal/db/*.sqlite3-[0-9]* | Base de données de développementFichiers SQLite de développement et de test. On commite db/schema.rb et les migrations ; chacun crée ses propres fichiers de données. |
/public/assets/public/packs/public/packs-test/public/system/public/uploads | Assets précompilés et packsRésultats de assets:precompile et de Webpacker, ainsi que les fichiers téléversés. Ils sont recréés lors du déploiement. |
/.bundle/vendor/bundlenode_modules//vendor/assets/bower_components/yarn-error.log.yarn-integrity | Dépendances Bundler·NodeGems et paquets JavaScript qui réapparaissent à l'installation, et logs d'installation. |
/coverage//spec/tmpcapybara-*.htmlrerun.txtpickle-email-*.html.rspec | Sous-produits de testsRésultats de couverture, pages enregistrées par Capybara en cas d'échec et liste de réexécution de Cucumber. .rspec est traité comme un fichier d'options RSpec personnel. |
.byebug_history.rvmrc.powenv*.rbc*.orig | Réglages d'outils personnelsHistorique du débogueur, anciens réglages RVM·Pow et sauvegardes des originaux laissées par les outils de fusion. |
Points d'attention en pratique
- Comme l'indiquent les commentaires du modèle, commitez
Gemfile.locket.ruby-versionpour aligner les versions dans tous les environnements. - Si vous utilisez
.rspeccomme configuration commune à l'équipe, supprimez cette ligne. Le fichier par défaut créé parrails newest d'ailleurs souvent commité. - Si
config/master.keya déjà été commité, créez une nouvelle clé (en rechiffrant les credentials) et remplacez les valeurs qui étaient chiffrées avec l'ancienne clé.
Modèle d'origine
*.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
Source des modèles : github/gitignore/Rails.gitignore @356fd7b (2026-09-11) · CC0-1.0