我曾经是一个特定项目的独立程序员,但现在有人已经加入了合作者.只有我在图片中,bundler更新顺利,我从来没有想过Gemit.lock被
Git跟踪.
新的合作者在克隆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
这个变化被推到一个命名的分支主人.我应该怎么处理这个变化?
大声思考:我是否将GitHub上的Pull请求合并?首先从上游拉扯拉扯请求吗?我是否运行特定的bundler命令来与其他协作者的Gemfile.lock进行同步?有没有其他协作者可以做的不同,所以他们没有引起任何宝石更新(相反,只是下载在现有的Gemfile.lock中指定的宝石)?这种情况下最好的做法是什么?
解决方法
Gemfile.lock应该是版本控制的.您应该对其进行任何更改.当有人(你信任谁)更新它,你应该运行捆绑安装来安装当前锁定在Gemfile.lock中的宝石.
刚刚运行bundle install将不会更新现有的Gemfile.lock.为此,您需要运行捆绑更新.
所有这一切,您的Gemfile.lock中的版本没有实际的更改.所有这一切都是几条论据的顺序.您可以安全地将这些更改合并或忽略;所得到的Gemfile.lock将(功能上)相同.