我想知道我怎么能针对特定的提交SHA Git中进行部署,使用Capistrano的?这应该是这样的

cap deploy --version=<sha targeted>

似乎不是很多搜索后找到这个问题的答案。

有帮助吗?

解决方案

:用于Capistrano的2.9至3.0:

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

对于旧版本的Capistrano的的,你可以这样做部署特定的git的承诺/树/分支/标签:

cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

在某些情况下,有可能需要指定环境作为参数为好。 production仅仅是一个例子。

cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

其他提示

MOLF的回答并没有为我工作(使用Capistrano的2.11.2)。我不得不使用“修订”,而不是分支,像这样的:

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

<强> Capistrano的3

在您的deploy.rb或阶段特异性的文件等config/deploy/production.rb

set :branch, ENV.fetch('REVISION', 'master')

这允许你指向一个特定的Git版本。它接受一个SHA而且任何解析为一个真正的修订(例如git的标签,注释标签,或分支)。

通过设置REVISION环境变量,e.g用它在命令行上。

bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993

bundle exec cap staging deploy REVISION=my-topic-branch
  

问:分支, '主'

,提示输入而默认为“主”,如果你按下返回。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top