2011-11-29 80 views
8

我想建立一個具有子模塊的git項目的capistrano deplyoment腳本。github項目與子模塊克隆capistrano

我運行這些命令

run "git clone [email protected]:GITPROJECT /var/www/myfolder" 

當我運行該子模塊不會克隆到/ var/WWW/MyFolder文件,而不是隻與子模塊的名稱創建一個空文件夾

當我嘗試運行這個它不會工作要麼

run "cd /var/www/myfolder/submodule && git pull master" 

有人可以幫我這個請嗎?

+0

我有一個工作,爲此運行RM -rf/var/www/myfolder/submodule並再次將子模塊克隆到該文件夾​​中,我不介意git會發生什麼,因爲我只需要將其複製代碼到web根目錄。仍然不是一個好的解決方案 – nivanka

+0

這不再適用於Capistrano 3.x –

回答

18

基本上你需要什麼是你deploy.rb腳本

set :git_enable_submodules, 1 

選項。它告訴capistrano在從主repo獲取源文件後初始化並更新git子模塊。如果由於某種原因,你想手工做它,你可以從你的項目的根目錄下運行:

git submodule update --init 

不過,如果我沒有記錯,--init並不適用於某些舊版本的git的,所以如果它不「T工作,你可以做這樣的:

git submodule init && git submodule update 

看一看this answer有關Capistrano的git的選擇更廣泛的解釋。

+0

太棒了!謝謝我錯過了git submodule更新--init和git子模塊init && git子模塊更新 – nivanka