我有一个带有私有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版本。
答案 0 :(得分:20)
这不是捆绑器的工作原理。 关键是允许依赖项的无缝版本控制。 (特别是因此您确切地知道在任何给定时间部署的代码版本)。
如果想要最新版本,您应该运行。
bundle update magic_beans
这与您刚才说的
完全相同gem "rails"
我建议,如果你想要更新一系列具体的东西
然后添加一个自定义二进制文件(比如一个名为bundle_update
的可执行文件)
#!/usr/bin/env bash
bundle install
bundle update magic_beans
如果您想要更新这些内容,请执行./bundle_update
。
答案 1 :(得分:1)
您可以bundle update
运行{{1}}将所有或特定宝石更新为其最新可用版本,如docs中所述。
那会有帮助吗?
答案 2 :(得分:1)
在搜索完文件后,我终于找到了做到这一点的神奇方法:
bundle update magic_beans --source magic_beans
这只是为了更新magic_beans
宝石,而不是触及其他锁定的宝石。关于此的文档是:http://bundler.io/man/bundle-update.1.html
答案 3 :(得分:0)
删除.gemlock对我有用:/