github/gitignore · Rails.gitignore

Plantilla .gitignore de Ruby on Rails explicada

Explica por qué Rails.gitignore ignora log, tmp y storage, el SQLite de desarrollo, master.key, los recursos precompilados y node_modules, y la estructura de patrones de negación con .keep.

Abrir en el generador Abrir junto con Ruby, Node, macOS

Rails.gitignore bloquea los archivos que se generan durante la ejecución de una aplicación Rails y la información secreta. Sus objetivos principales son los datos que acumula el servidor al funcionar, como registros, archivos temporales y archivos subidos, y los productos del pipeline de recursos.

El patrón que excluye solo el contenido de la carpeta y conserva un archivo marcador vacío, como /log/* y !/log/.keep, aparece tres veces. git no guarda directorios vacíos, así que para mantener la estructura de carpetas hace falta este método.

Explicación regla por regla

PatrónQué ignora y por qué
/log/*/tmp/*/storage/*!/log/.keep!/tmp/.keep!/storage/.keepCarpetas de registros, temporales y almacenamientoSon las carpetas donde se acumulan los registros de ejecución, los archivos de caché y pid y las subidas locales de Active Storage. Se excluye el contenido, pero se recupera el archivo .keep para que la carpeta permanezca en el repositorio. Si se excluyera el directorio mismo, como con /log/, no se podría recuperar .keep.
config/master.keyconfig/initializers/secret_token.rb.env.env*.localClaves secretasconfig/master.key es la llave que abre el credentials.yml.enc cifrado. Si este archivo se filtra, quedan expuestas todas las credenciales, así que nunca se confirma. El archivo de credentials cifrado sí se puede confirmar.
/db/*.sqlite3/db/*.sqlite3-journal/db/*.sqlite3-[0-9]*Base de datos de desarrolloSon los archivos SQLite de desarrollo y pruebas. db/schema.rb y las migraciones se confirman; los archivos de datos los crea cada uno.
/public/assets/public/packs/public/packs-test/public/system/public/uploadsRecursos y packs precompiladosSon los resultados de assets:precompile y Webpacker, y los archivos subidos. Se vuelven a crear durante la implementación.
/.bundle/vendor/bundlenode_modules//vendor/assets/bower_components/yarn-error.log.yarn-integrityDependencias de Bundler y NodeSon gems y paquetes de JavaScript que se regeneran al instalar, y registros de instalación.
/coverage//spec/tmpcapybara-*.htmlrerun.txtpickle-email-*.html.rspecSubproductos de pruebasSon los resultados de cobertura, las páginas que guarda Capybara cuando algo falla y la lista de reejecución de Cucumber. .rspec se trata como archivo de opciones personales de RSpec.
.byebug_history.rvmrc.powenv*.rbc*.origConfiguración de herramientas personalesSon el historial del depurador, configuraciones antiguas de RVM y Pow, y copias del original que dejan las herramientas de fusión.

Precauciones en la práctica

Plantilla original

Rails.gitignore38 líneas de reglas
*.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

Origen de las plantillas: github/gitignore/Rails.gitignore @356fd7b (2026-09-11) · CC0-1.0

Plantillas que suelen usarse juntas

Otras plantillas explicadas