Ruby と Rails の .gitignore 設定
Ruby および Rails プロジェクト向けの完全な .gitignore。bundle ディレクトリ、gem ファイル、tmp ディレクトリ、データベースファイル、Rails 認証情報管理を網羅します。
詳細な説明
Ruby プロジェクト、特に Ruby on Rails アプリケーションは、バージョン管理から除外すべきさまざまなファイルを生成します。.gitignore は Bundler アーティファクト、Rails 固有のファイル、ランタイムデータをカバーする必要があります。
Bundler と gem パターン:
vendor/bundle/—bundle install --deploymentやbundle install --path vendor/bundleを実行するとローカルに gem がインストールされます。このディレクトリはnode_modules/のように振る舞い、コミットすべきではありません。*.gem— ビルド済み gem パッケージ。gem を開発している場合、.gemファイルは配布用アーティファクトであり、ソースコードではありません。.bundle/— プロジェクトごとの設定を含む Bundler 設定キャッシュ。
Rails 固有のパターン:
tmp/— Rails がキャッシュファイル、セッションデータ、PID、ソケットファイルを保存します。tmp/内のすべては一時的です。log/— アプリケーションログファイル(development.log、production.log、test.log)。継続的に増大し、マシン固有です。db/*.sqlite3とdb/*.sqlite3-*— 開発で使用される SQLite データベースファイル。本番データベースはリポジトリに含めるべきではありません。storage/— Active Storage のローカルディスクサービスでアップロードされたファイル(Rails 5.2+)。public/assets/— プリコンパイル済みアセットパイプライン出力。rails assets:precompileで生成され、CI でビルドすべきです。public/packs/— Webpacker 出力ディレクトリ(Rails 5.1 から 6.x)。node_modules/— Webpacker、Importmap、または jsbundling-rails で JavaScript バンドルを使用する場合。
認証情報の扱い:
Rails 5.2+ は暗号化された認証情報(config/credentials.yml.enc)を使用し、これはコミットします。マスターキー(config/master.key)が無視すべきものです:
config/master.key
config/credentials/*.key
暗号化されたファイルはキーなしでは無意味なため、コミットしても安全です。マスターキーはパスワードマネージャーなどの安全なチャネルで共有してください。git では決して共有しないでください。
コミットすべきもの: Gemfile、Gemfile.lock(アプリケーションでは常に)、config/credentials.yml.enc、.ruby-version、一貫したリンティングのための .rubocop.yml。
Spring プリローダー: Spring プロセス ID ファイルがコミットされるのを防ぐために spring/*.pid を無視してください。Spring は起動時間を短縮するためにバックグラウンドでプロセスを維持する Rails アプリケーションプリローダーです。
ユースケース
アセットパイプラインから jsbundling-rails に移行する Rails チームが、レガシーのコンパイル済みアセットと新しい JavaScript ビルド出力の両方を処理するために .gitignore を更新する必要があります。