更新只是一个宝石与打捆(Update just one gem with bundler)

2019-06-25 21:58发布

我用捆绑在我的Rails应用程序来管理的依赖关系,我有一个Git仓库举办的宝石包括如下:

gem 'gem-name', :git => 'path/to/my/gem.git'

要更新这个宝石,我执行bundle update ,但它也更新Gemfile中提到的所有宝石。 那么,什么是更新只是一个特定的宝石命令?

Answer 1:

在这里你可以找到的区别一个很好的解释

更新这两个宝石和相关性:

bundle update gem-name 

要么

更新专门的宝石:

bundle update --source gem-name

伴随着可能的副作用一些很好的例子。

更新

作为@添的回答说,因为捆扎机1.14的官方支持的方式,这是与bundle update --conservative gem-name



Answer 2:

做到这一点的方法是运行以下命令:

bundle update --source gem-name


Answer 3:

你只需要在命令行上指定的宝石名称:

bundle update gem-name


Answer 4:

看来,用捆绑的新版本(> = 1.14),它是:

bundle update --conservative gem-name


Answer 5:

bundle update gem-name [--major|--patch|--minor]

这也适用于依赖。



Answer 6:

我用bundle update --source自己很长一段时间,但也有场景中这是行不通的。 幸运的是,有一个名为宝石bundler-patch具有固定这个缺点的目标。

我也写了一个简短的博客文章有关如何使用bundler-patch ,为什么bundle update --source不工作始终。 此外,一定要检查出后由chrismo是非常详细的,如何解释--source选项执行。



Answer 7:

bundler update --source gem-name将更新Gemfile.lock的修改散列,你可以用Git的分支(主默认情况下)的最后一次提交的散列进行比较。

GIT remote: git@github.com:organization/repo-name.git revision: c810f4a29547b60ca8106b7a6b9a9532c392c954

可以被发现在github.com/organization/repo-name/commits/c810f4a2 (I使用速记8字符提交散列为URL)



文章来源: Update just one gem with bundler