我正在尝试为具有子模块的git项目构建一个capistrano deplyoment脚本。
我正在运行这些命令
run "git clone git@github.com:GITPROJECT /var/www/myfolder"
当我运行这个子模块时不会克隆到/ var / www / myfolder而只是创建一个带有子模块名称的空文件夹
当我尝试运行它时,它不会工作
run "cd /var/www/myfolder/submodule && git pull master"
有人可以帮我这个吗?
答案 0 :(得分:18)
基本上你需要的是
set :git_enable_submodules, 1
deploy.rb
脚本中的选项。它告诉capistrano在从主repo获取源代码后初始化并更新git子模块。如果由于某种原因你想手动完成,你可以从项目的根目录运行它:
git submodule update --init
但是,如果我没记错的话,--init
在某些旧版本的git中不可用,所以如果它不起作用你就可以这样做:
git submodule init && git submodule update
请查看this answer,了解有关capistrano的git选项的更多详细说明。