13

我有一个带有以下格式的私有 git 存储库的 Gemfile:

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

当 Ibundle install时, Gemfile.lock 将其锁定到特定的 SHA 修订版。

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

理想情况下,每次我运行bundle它都会检查上游 git repo 是否有更新的 SHA 版本的分支。

4

4 回答 4

23

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

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

bundle update magic_beans

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

gem "rails"

不过我建议,如果您有一系列要更新的特定内容,请添加一个自定义二进制文件(例如一个名为 的可执行文件bundle_update

#!/usr/bin/env bash
bundle install
bundle update magic_beans

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

于 2011-11-30T10:30:22.397 回答
1

如文档bundle update中所述,您可以运行以将所有或特定的 gem 更新到其最新可用版本。

那会有帮助吗?

于 2011-11-30T10:30:36.303 回答
1

在搜索文档后,我终于找到了执行此操作的神奇方法:

bundle update magic_beans --source magic_beans

也就是只更新magic_beansgem,不去碰其他锁定的gem。关于这个的文档是:http ://bundler.io/man/bundle-update.1.html

于 2015-02-11T07:45:55.030 回答
0

删除 .gemlock 对我有用:/

于 2018-06-11T18:35:07.057 回答