我是一个特定项目的独立程序员,但现在有其他人加入了合作者。只有我在图片中,bundler
更新顺利,我从未想过Git会跟踪Gemfile.lock
。
新协作者在克隆回购邮件后运行bundle install
,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上的Pull Request?我是否只是在没有拉请求的情况下从上游拉出来?我是否运行特定的bundler命令与其他协作者的Gemfile.lock
同步?是否还有其他合作者可以做的不同的事情,以便他们不会导致任何宝石更新(而只是下载现有Gemfile.lock
中指定的宝石)?围绕这种情况的最佳做法是什么?
答案 0 :(得分:31)
Gemfile.lock 应该受版本控制。您应该对其进行任何更改。当某人(您信任的人)更新它时,您应该运行bundle install
来安装当前在Gemfile.lock中锁定的gem。
只运行bundle install
不会更新现有的Gemfile.lock。为此,您需要运行bundle update
。
总而言之,Gemfile.lock中的版本没有实际更改。所有改变的是几行参数的顺序。您可以安全地合并这些更改或忽略它们;生成的Gemfile.lock将(功能上)相同。