23

我一直是一个特定项目的孤独程序员,但现在其他人作为合作者加入了。图片中只有我,bundler更新一直很顺利,我从没想过Gemfile.lock被 Git 跟踪。

新的合作者bundle install在克隆 repo 后运行,Gemfile.lock更新如下:

Gemfile.lock

@@ -141,7 +141,7 @@ GEM
       rack-ssl (~> 1.3.2)
       rake (>= 0.8.7)
       rdoc (~> 3.4)
-      thor (< 2.0, >= 0.14.6)
+      thor (>= 0.14.6, < 2.0)
     raindrops (0.10.0)
     rake (0.9.2.2)
     rdoc (3.12)
@@ -164,7 +164,7 @@ GEM
     sprockets (2.1.3)
       hike (~> 1.2)
       rack (~> 1.0)
-      tilt (!= 1.3.0, ~> 1.1)
+      tilt (~> 1.1, != 1.3.0)
     thor (0.16.0)
     tilt (1.3.3)
     treetop (1.4.10)
@@ -175,7 +175,7 @@ GEM
     tzinfo (0.3.33)
     uglifier (1.3.0)
       execjs (>= 0.3.0)
-      multi_json (>= 1.0.2, ~> 1.0)
+      multi_json (~> 1.0, >= 1.0.2)
     unicorn (4.3.1)
       kgio (~> 2.6)
       rack

此更改已推送到 master 的命名分支中。我应该如何应对这种变化?

大声思考:我是否合并 GitHub 上的拉取请求?我是否一开始就从上游拉取而没有拉取请求?我是否运行特定的捆绑程序命令来与其他合作者的同步Gemfile.lock?有没有其他合作者可以做不同的事情,这样他们就不会导致任何 gem 更新(而只是下载现有的 gem 中指定的 gem Gemfile.lock)?围绕这种情况的最佳做法是什么?

4

1 回答 1

41

Gemfile.lock应该是版本控制的。您应该对其进行任何更改。当某人(您信任的人)更新它时,您应该运行bundle install以安装当前锁定在 Gemfile.lock 中的 gem。

只是运行bundle install不会更新现有的 Gemfile.lock。为此,您需要运行bundle update.

话虽如此,您的 Gemfile.lock 中的版本并没有实际变化。改变的只是几行参数的顺序。您可以安全地将这些更改合并或忽略它们;生成的 Gemfile.lock 将(功能上)相同。

于 2013-01-23T01:53:00.227 回答