Gemfile.lock应该承诺在Windows上的源代码控制?

Ruby newb在这里。

我通过rubyinstaller下载了ruby,做了gem install rails ,解决了一些缺失的库,最后分叉了我想要工作的ruby项目 。

在触摸任何东西之前,我看到我的Gemfile.lock被修改:

 diff --git a/Gemfile.lock b/Gemfile.lock index aefda68..9ebccba 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -46,6 +46,7 @@ GEM diff-lcs (1.1.3) erubis (2.7.0) eventmachine (1.0.0) + eventmachine (1.0.0-x86-mingw32) execjs (1.4.0) multi_json (~> 1.0) hike (1.2.1) @@ -65,11 +66,17 @@ GEM multi_json (1.3.6) multi_xml (0.2.2) pg (0.14.1) + pg (0.14.1-x86-mingw32) polyglot (0.3.3) ... PLATFORMS ruby + x86-mingw32 

所有修改后的行似乎与Windows相关。 这个答案似乎表明,我不应该gitignore Gemfile.lock(它已经承诺回购我克隆无​​论如何)。 这个答案意味着我可能会得到错误,如果我提交并推送到Heroku(有道理,因为我不希望我的应用程序依赖于Windows特定的文件)。

那么,这是什么? 我应该如何解决它? 我应该从我的回购中删除Gemfile.lock?

上次我用Windows Gemfile.lock把Heroku推到了Heroku,它非常优雅地处理了它。 我不记得它是否失败,并重建Gemfile.lock或只是剥离二进制的宝石标签。

有两个可行的选项,我看到。
一个是假设这种行为不会有问题。 这意味着使用严格的宝石版本要求或更新您的bundle和确认一切工作之前,你推。

另一个是在你的Gemfile中使用:platform标志 。 我不会推荐这个,但是它应该强制源代码在本地编译gem。 这意味着任何外部依赖需要可用。 有了大量的二元宝石(比如pg宝石),这不是一件容易的事情。 与其他一些宝石可能几乎不可能。 再一次,我不会推荐这样做。