Bundler:始终在Gemfile中使用GIT分支的最新修订版
题
我有一个带有以下格式的私人git储备金的Gemfile:
gem 'magic_beans', :git => "git@git.example.com:magic_beans.git', :branch => 'super_beans'
当我 bundle install
, ,gemfile.将其锁定到特定的SHA修订版中。
我可以让Bundler始终检查并使用最新的SHA提交和/或更新gemfile.lock吗?请注意,当我将更新推向 super_beans
分支我没有修改GEM版本。
理想情况下,每次我跑步 bundle
它将检查上游GIT存储库中的分支机构的更新修订版。
解决方案
这不是邦德勒的工作方式。关键是允许依赖关系的无缝版本控制。 (特别是这样,您确切地知道在任何给定时间都将部署哪种版本的代码)。
如果需要最新版本,则应该运行。
bundle update magic_beans
这与您只是说完全一样的功能
gem "rails"
不过我建议,如果您要更新一系列特定内容,然后添加自定义二进制文件(例如,可执行文件, bundle_update
)
#!/usr/bin/env bash
bundle install
bundle update magic_beans
然后做一个 ./bundle_update
当您想更新这些内容时。
其他提示
你可以运行 bundle update
将所有或特定的宝石更新为其最新可用版本,如 文档.
那会有所帮助吗?
搜索文档后,我终于找到了做到这一点的神奇方法:
bundle update magic_beans --source magic_beans
那就是更新 magic_beans
只有宝石,但不能触摸其他锁定的宝石。关于此的文档是: http://bundler.io/man/bundle-update.1.html
删除.gemlock对我有用:/
不隶属于 StackOverflow