github项目与submodules克隆capistrano

niv*_*nka 8 git capistrano github

我正在尝试为一个有子模块的git项目构建一个capistrano deplyoment脚本.

我正在运行这些命令

run "git clone git@github.com:GITPROJECT /var/www/myfolder"
Run Code Online (Sandbox Code Playgroud)

当我运行这个子模块不会克隆到/ var/www/myfolder而不是它只创建一个带有子模块名称的空文件夹

当我试图运行它时,它也不会工作

run "cd /var/www/myfolder/submodule && git pull master"
Run Code Online (Sandbox Code Playgroud)

请有人帮我这个吗?

KL-*_*L-7 18

基本上你需要的是

set :git_enable_submodules, 1
Run Code Online (Sandbox Code Playgroud)

deploy.rb脚本中的选项.它告诉capistrano在从主repo获取源代码后初始化并更新git子模块.如果由于某种原因你想手动完成,你可以从项目的根目录运行它:

git submodule update --init
Run Code Online (Sandbox Code Playgroud)

但是,如果我没记错的话,--init在某些旧版本的git中不可用,所以如果它不起作用,你可以这样做:

git submodule init && git submodule update
Run Code Online (Sandbox Code Playgroud)

有关capistrano的git选项的更广泛说明,请查看此答案.