Bundler:总是在Gemfile中使用最新版本的git branch

pit*_*ess 12 ruby git bundler gemfile

我有一个带有私有git repo的Gemfile,格式如下:

gem 'magic_beans', :git => "git@git.example.com:magic_beans.git', :branch => 'super_beans'

当我bundle install,Gemfile.lock将其锁定到特定的SHA修订版.

我可以让bundler始终检查并使用最新的SHA提交和/或更新Gemfile.lock吗?请注意,当我将更新推送到super_beans分支时,我不会修改gem版本.

理想情况下,每次运行bundle它都会检查上游git repo以获得更新的分支SHA修订版.

Mat*_*udy 21

这不是捆绑器的工作方式.关键是允许依赖项的无缝版本控制.(特别是因此您确切地知道在任何给定时间部署的代码版本).

如果想要最新版本,你应该运行.

bundle update magic_beans
Run Code Online (Sandbox Code Playgroud)

这与您刚才说的功能完全相同

gem "rails"
Run Code Online (Sandbox Code Playgroud)

我建议,如果你想要更新一系列特定的东西,那么添加一个自定义二进制文件(比如一个名为的可执行文件bundle_update)

#!/usr/bin/env bash
bundle install
bundle update magic_beans
Run Code Online (Sandbox Code Playgroud)

然后./bundle_update在你想要更新这些东西时做一个.