Railsの「Gemfile.lock」の目的は何ですか? 私は周りを探していましたが、満足のいく答えを見つけることができませんでした。
2 に答える
bundler
gemのすべてのドキュメントを読む必要があります:http: //gembundler.com/
GEMFILE.LOCK
bundle installを実行すると、Bundlerは、使用したすべてのgemのフルネームとバージョン(Gemfile(5)で指定されたgemの依存関係を含む)をGemfile.lockというファイルに保持します。
Bundlerは、バンドルインストールへの後続のすべての呼び出しでこのファイルを使用します。これにより、アプリケーションがマシン間を移動する場合でも、常に同じ正確なコードを使用することが保証されます。
依存関係の解決が機能する方法のため、一見小さな変更(たとえば、Gemfile(5)内のgemの依存関係のポイントリリースへの更新)でも、すべての依存関係を満たすために根本的に異なるgemが必要になる可能性があります。
結果として、Gemfile.lockをバージョン管理にチェックインする必要があります。そうしないと、リポジトリをチェックアウトするすべてのマシン(本番サーバーを含む)がすべての依存関係を再度解決します。その結果、Gemfile(5)またはそれらの依存関係の一部が更新されました。
Gemfile.lock
アプリの他の開発者と展開環境が、インストールしたばかりのサードパーティ コードとまったく同じコードを使用することを保証します。