我有一个 Gemfile,其中包含以下格式的私有 git 存储库:
gem 'magic_beans', :git => "[email protected]:magic_beans.git', :branch => 'super_beans'
当我
bundle install
时,Gemfile.lock 将其锁定到特定的 SHA 修订版。
我可以让捆绑程序始终检查并使用最新的 SHA 提交和/或更新 Gemfile.lock 吗?请注意,当我将更新推送到
super_beans
分支时,我并没有修改 gem 版本。
理想情况下,每次我运行
bundle
时,它都会检查上游 git 存储库以获取分支的较新 SHA 修订版。
这不是捆绑器的工作原理。 重点是允许依赖项的无缝版本控制。 (特别是这样您就可以准确地知道在任何给定时间部署的代码版本)。
如果想要最新版本,你应该运行。
bundle update magic_beans
这与您刚才所说的功能完全相同
gem "rails"
不过,如果您有一系列想要更新的具体内容,我建议 然后添加一个自定义二进制文件(例如名为
bundle_update
的可执行文件)
#!/usr/bin/env bash
bundle install
bundle update magic_beans
然后当你想更新这些东西时,只需做一个
./bundle_update
。
在搜索文档后,我终于找到了做到这一点的神奇方法:
bundle update magic_beans --source magic_beans
即只更新
magic_beans
宝石,不碰其他锁定的宝石。关于此的文档是:http://bundler.io/man/bundle-update.1.html
删除 .gemlock 对我有用:/