Bundler:始终在 Gemfile 中使用最新版本的 git 分支

问题描述 投票:0回答:4

我有一个 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 修订版。

ruby git bundler gemfile
4个回答
24
投票

这不是捆绑器的工作原理。 重点是允许依赖项的无缝版本控制。 (特别是这样您就可以准确地知道在任何给定时间部署的代码版本)。

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

bundle update magic_beans

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

gem "rails"

不过,如果您有一系列想要更新的具体内容,我建议 然后添加一个自定义二进制文件(例如名为

bundle_update
的可执行文件)

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

然后当你想更新这些东西时,只需做一个

./bundle_update


1
投票

您可以运行

bundle update
将所有或特定 gem 更新到最新的可用版本,如 docs 中所述。

这有帮助吗?


1
投票

在搜索文档后,我终于找到了做到这一点的神奇方法:

bundle update magic_beans --source magic_beans

即只更新

magic_beans
宝石,不碰其他锁定的宝石。关于此的文档是:http://bundler.io/man/bundle-update.1.html


0
投票

删除 .gemlock 对我有用:/

© www.soinside.com 2019 - 2024. All rights reserved.