带有子模块克隆 capistrano 的 github 项目

标签 git github capistrano

我正在尝试为具有子模块的 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/

相关文章:

node.js - Docker NPM 安装时出现奇怪的 Git 错误

git - 换行长 git reflog 行?

java - 使用 JGit 获取所有分支

javascript - 在 Electron 中创建应用程序的多个实例

github - 推送标签时如何在GitHub操作上获取分支名称?

ruby-on-rails - Rubber 和 Amazon EC2 托管问题(Net::SSH::AuthenticationFailed: root)

ruby-on-rails - Capistrano 部署失败 - 远程主机关闭连接 - 任务 : TOP => rbenv:validate

ruby - 任务 create_release 时出现 Capistrano 部署错误

git - 使用 Git merge 分支

github - Gist 中的个人访问 token