我对捆绑器及其生成的文件有点陌生。我有一份来自 GitHub 的 git repo 的副本,该副本由许多人贡献,所以我惊讶地发现 bundler 创建了一个在 repo 中不存在且不在.gitignore列表中的文件。
.gitignore
由于我已经分叉了它,我知道将它添加到 repo 不会破坏主 repo 的任何内容,但是如果我执行 pull request,它会导致问题吗?
应该Gemfile.lock包含在存储库中吗?
Gemfile.lock
2021 年的简单答案: Gemfile.lock 也应该在 Rubygems 的版本控制中 。接受的答案现在是 11 岁。
这里有一些推理(从评论中挑选):
@josevalim https://github.com/heartcombo/devise/pull/3147#issuecomment-52193788
Gemfile.lock 应该保留在存储库中,因为贡献者和开发人员应该能够分叉项目并使用保证工作的版本运行它。
@rafaelfranca https://github.com/rails/rails/pull/18951#issuecomment-74888396
我认为即使对于插件也忽略锁定文件不是一个好主意。 这意味着“git clone;bundle;rake test”序列不能保证通过,因为您的数十个依赖项中的一个已升级并导致您的代码中断。此外,正如@chancancode 所说,它使平分变得更加困难。
我认为即使对于插件也忽略锁定文件不是一个好主意。
这意味着“git clone;bundle;rake test”序列不能保证通过,因为您的数十个依赖项中的一个已升级并导致您的代码中断。此外,正如@chancancode 所说,它使平分变得更加困难。
Rails 在 git 中也有 Gemfile.lock: