是否可以在Rails 3.2应用程序中包含Git中的vendor/cache内容?

AKW*_*KWF 29 ruby git rubygems ruby-on-rails-3 ruby-on-rails-3.2

我经常需要在我的应用程序中创建分支以进行新的开发.这通常意味着我对我的分支中的Gemfile进行了更改,这些更改在Master中不存在,因此我最终得出了vendor/cache中缓存的gem的差异.

我发现让我感到烦恼的是我正在提交缓存的宝石,但我不知道它是否确实是错误的.我应该是.gitignore这些?如果是这样,我应该git rm缓存的gem文件吗?

Dan*_*ans 37

TL; DR:这取决于你,但我建议你把它们保存在git中.

什么vendor/cache是允许捆绑,特别是部署捆绑,以跳过从rubygems下载宝石.这大大减少了对rubygems的依赖.

在部署中,您可以指定--localbundler来完全删除对rubygems.org的所有依赖,但仅当这些文件被检入git时.

这很有价值,因为虽然rubygems.org是一项出色的服务,但它不能免于中断.如果没有这些缓存的宝石并且rubygems.org上的中断可能意味着您将无法部署新版本,重新部署或扩展到新机器,直到rubygems重新启动.

还有该供应商/缓存可以作为Gemfile.lock的的延伸,锁定部署宝石为二进制等同于发展,而不仅仅是版本相同使用的那些参数.

因此,出于实际原因,保持您作为一个独立于rubygems.org的实用工作应用程序的功能:将它们保存在您的git仓库中.