git子模块不会在子模块中拉取文件

gee*_*enz 30 git pull file git-submodules

我认为我已经完成了这个新项目,并认为git子模块是开发和部署我的应用程序的方法.

设置我的git repo(Drupal)并用Drupal的7.12标签初始化它.做了我自己的分支.然后使用git submodule add -branch 7.x git:// path/to/drupal/module sites/all/modules/contrib/module添加sites/all/modules/contrib下所需的模块

然后我想,通过将我的repo推送到github,我可以简单地将其拉出然后将所有子模块拉入部署路径.但是,我的所有模块都没有拉,即使我这样做:git submodule foreach git pull或git submodule init后跟git submodule update

事实证明,我错了.我现在需要以另一种方式重做所有内容吗?如果是,请告诉我如果不是很好,请告诉我.

And*_*ell 66

你分叉了Drupal回购?它是否已经添加了子模块.gitmodules?如果是这样,你只需要克隆他们的分支并执行

git submodule init
git submodule update
Run Code Online (Sandbox Code Playgroud)

您无需将自己的子模块重新添加到repo中.

现在,如果要添加其他子模块,则必须在git submodule init; git submodule update每次克隆存储库时执行这些子模块.它不会自动获取子模块.

  • 运行"git submodule init"和"git submodule update"为我做了诀窍.我不知道克隆repo时git不会自动拉出子模块. (4认同)
  • 请考虑删除您对子模块不值得的评论,或者可能链接到一两个来源.谢谢你的回答. (2认同)

Chr*_*row 5

如果子模块的文件无法提取,您可以尝试从本地存储库中删除子模块的文件夹。然后尝试

git submodule update

它应该告诉你Submodule path <submodule-name>: checked out '<sha>'

检查一下,您的文件现在应该已被拉出。

如果失败,请删除该文件夹并尝试:

git submodule update --init --recursive

git submodule update --recursive --remote