我对bundler及其生成的文件有点陌生.我有一份来自GitHub的git回购协议的副本,很多人都在为它捐款,所以我惊讶地发现bundler创建了一个回购协议中不存在的文件,而且不在.gitignore
个列表中.
因为我已经Forking 了,我知道将其添加到回购协议中不会 destruct 主回购协议的任何内容,但如果我执行拉取请求,会导致问题吗?
存储库中应该包含Gemfile.lock
个吗?
我对bundler及其生成的文件有点陌生.我有一份来自GitHub的git回购协议的副本,很多人都在为它捐款,所以我惊讶地发现bundler创建了一个回购协议中不存在的文件,而且不在.gitignore
个列表中.
因为我已经Forking 了,我知道将其添加到回购协议中不会 destruct 主回购协议的任何内容,但如果我执行拉取请求,会导致问题吗?
存储库中应该包含Gemfile.lock
个吗?
2021年的简单答案是:
这里有一些理由(cherry摘自 comments ):
@约瑟瓦林https://github.com/heartcombo/devise/pull/3147#issuecomment-52193788
档案.锁应该留在存储库中,因为贡献者和开发人员应该能够Forking 项目,并使用保证工作的版本运行它.
@拉斐尔弗兰卡https://github.com/rails/rails/pull/18951#issuecomment-74888396
我认为即使对于插件,忽略锁文件也不是一个好主意.
这意味着"git clone;bundle;rake test"序列不能保证通过,因为您的几十个依赖项中有一个已经升级,导致代码中断.此外,正如@chancancode所说,它使平分变得更加困难.
Rails还有一个文件.锁定git: