github/gitignore · Rails.gitignore
Разбор шаблона .gitignore для Ruby on Rails
Почему Rails.gitignore игнорирует log, tmp, storage, SQLite для разработки, master.key, предкомпилированные ассеты и node_modules, и как устроены отрицающие шаблоны для .keep.
Rails.gitignore блокирует файлы, которые появляются во время работы приложения Rails, и секретные данные. Основные цели — данные, накапливающиеся при работе сервера (логи, временные и загруженные файлы), и результаты конвейера ассетов.
Трижды встречается шаблон вида /log/* и !/log/.keep, который исключает только содержимое папки, но оставляет пустой файл-метку. git не хранит пустые каталоги, поэтому для сохранения структуры папок нужен такой способ.
Разбор правил
| Шаблон | Что и почему игнорируется |
|---|---|
/log/*/tmp/*/storage/*!/log/.keep!/tmp/.keep!/storage/.keep | Папки логов, временных файлов и хранилищаПапки, где накапливаются журналы работы, кэш и pid-файлы, локальные загрузки Active Storage. Содержимое исключается, а файл .keep возвращается, чтобы папка осталась в репозитории. Если исключить сам каталог, как в /log/, вернуть .keep не получится. |
config/master.keyconfig/initializers/secret_token.rb.env.env*.local | Секретный ключconfig/master.key — ключ, открывающий зашифрованный credentials.yml.enc. При его утечке раскрываются все учётные данные, поэтому его никогда не коммитят. Сам зашифрованный файл credentials коммитить можно. |
/db/*.sqlite3/db/*.sqlite3-journal/db/*.sqlite3-[0-9]* | Базы данных для разработкиФайлы SQLite для разработки и тестов. db/schema.rb и миграции коммитят, а файлы данных каждый создаёт у себя. |
/public/assets/public/packs/public/packs-test/public/system/public/uploads | Предкомпилированные ассеты и пакетыРезультаты assets:precompile и Webpacker, а также загруженные файлы. Они создаются заново в процессе развёртывания. |
/.bundle/vendor/bundlenode_modules//vendor/assets/bower_components/yarn-error.log.yarn-integrity | Зависимости Bundler и Nodegem и пакеты JavaScript, которые снова появляются после установки, и журналы установки. |
/coverage//spec/tmpcapybara-*.htmlrerun.txtpickle-email-*.html.rspec | Побочные файлы тестовРезультаты покрытия, страницы, которые Capybara сохраняет при сбое, списки для повторного запуска Cucumber. .rspec считается личным файлом параметров RSpec. |
.byebug_history.rvmrc.powenv*.rbc*.orig | Личные настройки инструментовИстория отладчика, старые настройки RVM и Pow, резервные копии оригиналов, оставленные инструментами слияния. |
На что обратить внимание на практике
- Как сказано в комментарии шаблона,
Gemfile.lockи.ruby-versionкоммитят, чтобы версии совпадали во всех окружениях. - Если
.rspecиспользуется как общая настройка команды, удалите эту строку. Файл по умолчанию, который создаётrails new, тоже часто коммитят. - Если
config/master.keyуже закоммичен, создайте новый ключ (перешифровав credentials) и замените значения, которые были зашифрованы старым ключом.
Исходный шаблон
Rails.gitignore
*.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
Источник шаблонов: github/gitignore/Rails.gitignore @356fd7b (2026-09-11) · CC0-1.0