我对捆绑器和它生成的文件有点新鲜。我有一个GitHub的git回购副本,很多人都在贡献它,所以我很惊讶地发现,bundler创建了一个不存在于回购库中但不在.gitignore列表中的文件。
由于我已经分叉了,我知道把它添加到回购将不会破坏任何主要回购,但如果我做一个拉请求,会导致一个问题?
应该Gemfile.lock包含在存储库中?
我的同事和我有不同的Gemfile.lock,因为我们使用不同的平台,Windows和Mac,而我们的服务器是Linux。
我们决定在repo中删除Gemfile.lock,并在git repo中创建Gemfile.lock.server,就像database.yml一样。然后,在将其部署到服务器之前,我们使用cap deploy hook将Gemfile.lock.server复制到服务器上的Gemfile.lock
假设你不写一个rubygem,Gemfile.lock应该在你的仓库中。它被用作所有你需要的ruby及其依赖的快照。这样bundler不必在每次部署时都重新计算所有的gem依赖关系。
如果你正在做一个gem,那么不要检查你的Gemfile.lock。