35

新しい開発のためにアプリケーションにブランチを頻繁に作成する必要があります。これは多くの場合、マスターに存在しないブランチの Gemfile への変更があることを意味し、ベンダー/キャッシュにキャッシュされた gem に違いが生じることになります。

キャッシュされた宝石をコミットしていることが気になりますが、それが本当に間違っているかどうかはわかりません。これらを .gitignore する必要がありますか? もしそうならgit rm、キャッシュされたgemファイルは必要ですか?

4

1 に答える 1

49

TL; DR:これはあなた次第ですが、gitで保持することをお勧めします。

vendor/cacheバンドル、特にデプロイメントバンドリングでrubygemsからのgemのダウンロードをスキップできるようにします。これにより、rubygemsへの依存が大幅に減少します。

デプロイメントでは、--locallubygems.orgへのすべての依存関係を完全に削除するようにバンドラーに指定できますが、これらのファイルがgitにチェックインされている場合に限ります。

rubygems.orgは素晴らしいサービスですが、停止の影響を受けないため、これは価値があります。これらのキャッシュされたgemとrubygems.orgの停止がないと、rubygemsがバックアップされるまで、新しいバージョンのデプロイ、再デプロイ、または新しいマシンへのスケールアップができなくなる可能性があります。

ベンダー/キャッシュをGemfile.lockの拡張として使用して、バージョンが同一であるだけでなく、開発で使用されるものとバイナリが同一になるようにデプロイメントgemをロックできるという議論もあります。

したがって、rubygems.orgから独立した実用的で機能するアプリケーションとして機能する能力を維持するという実際的な理由から、それらをgitリポジトリに保持してください。

于 2013-02-13T20:34:52.163 に答える