github/gitignore · Ruby.gitignore
Разбор шаблона .gitignore для Ruby
Почему Ruby.gitignore игнорирует пакеты gem, папку установки Bundler, результаты тестов и сгенерированную документацию, и когда коммитить Gemfile.lock и .ruby-version.
Ruby.gitignore предназначен для проектов, где создаются gem или разрабатываются скрипты и приложения на Ruby. Большинство правил начинаются с / и привязаны к корню репозитория, так что вложенные папки с тем же именем реже игнорируются по ошибке.
Для приложений Rails шаблон Rails охватывает больше случаев, чем этот. Если выбрать оба, пересекающиеся правила уберёт удаление повторов.
Разбор правил
| Шаблон | Что и почему игнорируется |
|---|---|
*.gem/pkg/ | Пакеты gemФайлы пакетов, которые создают gem build и rake build. Это артефакты для публикации в RubyGems. |
/.bundle//vendor/bundle/lib/bundler/man/ | BundlerВ .bundle/ хранятся локальные настройки Bundler, а в vendor/bundle — gem, установленные через bundle install --path. На другом компьютере их можно установить заново. |
/coverage//spec/reports//spec/examples.txt/test/tmp//test/version_tmp/ | Результаты тестовРезультаты выполнения: вывод SimpleCov, отчёты RSpec, examples.txt, в котором RSpec запоминает упавшие примеры. |
/.yardoc//_yardoc//doc//rdoc/ | Сгенерированная документацияДокументация API и кэш, созданные YARD и RDoc. Они заново создаются из комментариев в исходниках. |
/tmp/.byebug_history.repl_history*.rbc/.config/InstalledFiles | Временные файлы и файлы отладчикаВременные папки, история byebug и REPL, байт-код Rubinius, журнал установки setup.rb. |
.rvmrc | Настройки менеджера версийСтарый файл настроек проекта RVM; он может выполнять код оболочки, поэтому им не делятся. Сейчас в основном используют .ruby-version. |
На что обратить внимание на практике
- Как сказано в комментарии шаблона, в приложениях
Gemfile.lockи.ruby-versionкоммитят, а в библиотеках (gem), которые используются в разных окружениях, их иногда игнорируют. /doc/игнорирует всю папкуdocв корне. Если вы храните написанную вручную документацию вdoc/, удалите эту строку и укажите только путь генерации, например/doc/api/.- Правило
.envв этом шаблоне есть только в комментарии, поэтому если вы используете файлы переменных окружения, добавьте его сами.
Исходный шаблон
Ruby.gitignore
*.gem*.rbc/.config/coverage//InstalledFiles/pkg//spec/reports//spec/examples.txt/test/tmp//test/version_tmp//tmp/# Used by dotenv library to load environment variables.# .env# Ignore Byebug command history file..byebug_history## Specific to RubyMotion:.dat*.repl_historybuild/*.bridgesupportbuild-iPhoneOS/build-iPhoneSimulator/## Specific to RubyMotion (use of CocoaPods):## We recommend against adding the Pods directory to your .gitignore. However# you should judge for yourself, the pros and cons are mentioned at:# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control## vendor/Pods/## Documentation cache and generated files:/.yardoc//_yardoc//doc//rdoc/## Environment normalization:/.bundle//vendor/bundle/lib/bundler/man/# for a library or gem, you might want to ignore these files since the code is# intended to run in multiple environments; otherwise, check them in:# Gemfile.lock# .ruby-version# .ruby-gemset# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:.rvmrc# Used by RuboCop. Remote config files pulled in from inherit_from directive.# .rubocop-https?--*
Источник шаблонов: github/gitignore/Ruby.gitignore @356fd7b (2026-09-11) · CC0-1.0