我用捆绑在我的Rails应用程序来管理的依赖关系,我有一个Git仓库举办的宝石包括如下:
gem 'gem-name', :git => 'path/to/my/gem.git'
要更新这个宝石,我执行bundle update
,但它也更新Gemfile中提到的所有宝石。 那么,什么是更新只是一个特定的宝石命令?
我用捆绑在我的Rails应用程序来管理的依赖关系,我有一个Git仓库举办的宝石包括如下:
gem 'gem-name', :git => 'path/to/my/gem.git'
要更新这个宝石,我执行bundle update
,但它也更新Gemfile中提到的所有宝石。 那么,什么是更新只是一个特定的宝石命令?
在这里你可以找到的区别一个很好的解释
更新这两个宝石和相关性:
bundle update gem-name
要么
更新专门的宝石:
bundle update --source gem-name
伴随着可能的副作用一些很好的例子。
作为@添的回答说,因为捆扎机1.14的官方支持的方式,这是与bundle update --conservative gem-name
。
做到这一点的方法是运行以下命令:
bundle update --source gem-name
你只需要在命令行上指定的宝石名称:
bundle update gem-name
看来,用捆绑的新版本(> = 1.14),它是:
bundle update --conservative gem-name
bundle update gem-name [--major|--patch|--minor]
这也适用于依赖。
我用bundle update --source
自己很长一段时间,但也有场景中这是行不通的。 幸运的是,有一个名为宝石bundler-patch
具有固定这个缺点的目标。
我也写了一个简短的博客文章有关如何使用bundler-patch
,为什么bundle update --source
不工作始终。 此外,一定要检查出后由chrismo是非常详细的,如何解释--source
选项执行。
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)