2012-04-07 379 views
19

我認爲我已經完成了這個新項目,並認爲git子模塊是開發和部署我的應用程序的方式。git子模塊沒有拉取子模塊中的文件

設置我的git倉庫(Drupal)並用Drupal的7.12標籤初始化它。做了我自己的分支。然後添加在sites/all/modules/contrib下需要的模塊與 git submodule add --branch 7.x git:// path/to/drupal/module sites/all/modules/contrib/module

然後我想,通過將我的repo推送到github,我可以簡單地將它拉出來,然後將所有子模塊拉入部署路徑。然而,我的所有模塊都沒有拉,就算我做的: git的子模塊的foreach混帳拉 或 git的子模塊初始化 其次 混帳子模塊更新

事實證明,我錯了。我現在需要以其他方式重做一切嗎?如果是的話,請告訴我如何,如果不是,請告訴我。

回答

39

你分叉了Drupal回購?是否已在.gitmodules中添加子模塊?如果是這樣,你只需要克隆他們的分支並執行

git submodule init 
git submodule update 

您不需要將其自己的子模塊重新添加到回購。

現在,如果您要添加其他子模塊,則每次克隆回購時都必須執行git submodule init; git submodule update。它不會自動獲取子模塊。

+0

謝謝。我回到了簡單,只是使用drupal項目的git fork。我不會更改drupal核心文件,所以即使合併來自drupal核心的更改也不會損害我的項目。 – geekdenz 2012-04-21 08:47:32

+4

運行「git submodule init」和「git submodule update」爲我做了訣竅。我不知道克隆repo時,git不會自動拉取子模塊。 – michaelday 2013-04-05 03:31:02

+0

@michaelday因爲'submodule'不屬於主項目。如果你想拉子模塊,使用'git clone --recursive '代替克隆repo。 – ahui 2016-04-27 05:08:01