2009-05-27 33 views

回答

63

对于Capistrano的2.9至3.0:

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 

对于旧版本的Capistrano的的,您可以通过此部署特定的git的承诺/树/分支/标签:

cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 

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

cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 
+0

是特定提交的SHA吗? – 2009-05-27 21:45:24

+1

该分支将被传递给“git checkout ”的git,所以一个提交ID应该像树ID,分支名称一样工作。 – molf 2009-05-27 22:12:54

+0

这个答案对我不起作用,请参阅@eahanson的答案下面。 – 2013-08-08 01:47:04

17

molf的回答对我无效(使用capistrano 2.11.2)。我不得不使用 “修订”,而不是分支,像这样:

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 
8

Capistrano的3

在你deploy.rb或阶段特异性文件中像config/deploy/production.rb

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

这可以让你指向一个特定的git修订。它接受SHA,但也可以解析为真正的修订(例如git标签,注释标签或分支)。

在命令行上通过设置REVISION环境变量(例如,

bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993 

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

问:分支, '主人'

提示输入,但默认为 '主人',如果你按回车键。