我正在尝试为具有子模块的 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"
有人可以帮我解决这个问题吗?
最佳答案
基本上你需要的是
set :git_enable_submodules, 1
deploy.rb
脚本中的选项。它告诉 capistrano 在从主仓库获取源代码后初始化和更新 git 子模块。如果出于某种原因您想手动执行此操作,您可以从项目的根目录运行它:
git submodule update --init
不过,如果我没记错的话,--init
在一些旧版本的 git 中不可用,所以如果它不起作用,你可以这样做:
git submodule init && git submodule update
看看this answer有关 capistrano 的 git 选项的更广泛的解释。
关于带有子模块克隆 capistrano 的 github 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8306059/