Template .gitignore do Ruby on Rails explicado
Explica por que o Rails.gitignore ignora log, tmp e storage, o SQLite de desenvolvimento, master.key, os assets pré-compilados e node_modules, e a estrutura de padrões de negação com .keep.
O Rails.gitignore bloqueia os arquivos gerados durante a execução de uma aplicação Rails e as informações secretas. Os alvos principais são os dados que o servidor acumula ao funcionar, como logs, arquivos temporários e uploads, e os produtos do pipeline de assets.
O padrão que exclui só o conteúdo da pasta e mantém um arquivo marcador vazio, como /log/* e !/log/.keep, aparece três vezes. O git não armazena diretórios vazios, então esse método é necessário para manter a estrutura de pastas.
Explicação regra por regra
| Padrão | O que ignora e por quê |
|---|---|
/log/*/tmp/*/storage/*!/log/.keep!/tmp/.keep!/storage/.keep | Pastas de logs, temporários e armazenamentoSão as pastas onde se acumulam os logs de execução, os arquivos de cache e pid e os uploads locais do Active Storage. O conteúdo é excluído, mas o arquivo .keep é recuperado para que a pasta continue no repositório. Se o próprio diretório fosse excluído, como com /log/, não daria para recuperar o .keep. |
config/master.keyconfig/initializers/secret_token.rb.env.env*.local | Chaves secretasO config/master.key é a chave que abre o credentials.yml.enc criptografado. Se esse arquivo vazar, todas as credenciais ficam expostas, então ele nunca é commitado. O arquivo de credentials criptografado em si pode ser commitado. |
/db/*.sqlite3/db/*.sqlite3-journal/db/*.sqlite3-[0-9]* | Banco de dados de desenvolvimentoSão os arquivos SQLite de desenvolvimento e teste. db/schema.rb e as migrações são commitados; os arquivos de dados cada um cria. |
/public/assets/public/packs/public/packs-test/public/system/public/uploads | Assets e packs pré-compiladosSão os resultados de assets:precompile e do Webpacker, e os arquivos enviados. São criados de novo durante a implantação. |
/.bundle/vendor/bundlenode_modules//vendor/assets/bower_components/yarn-error.log.yarn-integrity | Dependências do Bundler e do NodeSão gems e pacotes JavaScript que voltam a ser criados ao instalar, e logs de instalação. |
/coverage//spec/tmpcapybara-*.htmlrerun.txtpickle-email-*.html.rspec | Subprodutos de testesSão os resultados de cobertura, as páginas que o Capybara salva quando algo falha e a lista de reexecução do Cucumber. O .rspec é tratado como arquivo de opções pessoais do RSpec. |
.byebug_history.rvmrc.powenv*.rbc*.orig | Configurações de ferramentas pessoaisSão o histórico do depurador, configurações antigas do RVM e do Pow, e cópias do original deixadas por ferramentas de merge. |
Cuidados na prática
- Conforme os comentários do template, commite
Gemfile.locke.ruby-versionpara alinhar as versões em todos os ambientes. - Se você usa o
.rspeccomo configuração comum da equipe, apague esta linha. O arquivo padrão criado pelorails newtambém costuma ser commitado. - Se o
config/master.keyjá foi commitado, crie uma chave nova (recriptografando as credentials) e substitua os valores que estavam criptografados com a chave anterior.
Template original
*.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
Origem dos templates: github/gitignore/Rails.gitignore @356fd7b (2026-09-11) · CC0-1.0