git子模块无法提取子模块中的文件

njthzxwz  于 2022-11-27  发布在  Git
关注(0)|答案(3)|浏览(371)

我以为我已经在这个新项目中解决了所有问题,并认为git子模块是开发和部署我的应用程序的方法。
设置我的git repo(Drupal)并用Drupal的7.12标签初始化它。创建了我自己的分支。然后用git子模块add --branch 7.x git://path/to/drupal/module sites/all/modules/contrib/module添加了需要的模块
然后我想,通过把我的repo推到github,我就可以简单地把它拉出来,然后它会把所有的子模块拉到部署路径中。然而,即使我拉了,我的所有模块也没有拉出来:每次Git拉取的Git子模块或Git子模块初始化,然后进行Git子模块更新
事实证明,我错了。我现在需要用另一种方式重做一切吗?如果是,请告诉我如何,如果不是,太好了,请让我知道。

bis0qfac

bis0qfac1#

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

git submodule init
git submodule update

你不需要重新添加自己的子模块到repo。
现在,如果你想添加额外的子模块,你必须在每次克隆repo时执行git submodule init; git submodule update,它不会自动获得子模块。

vsaztqbk

vsaztqbk2#

如果未拉出子模块,确保已添加。
例如:
git子模块加法https://github.com/chaconinc/DbConnector
我遇到了同样的问题,运行上面的命令后,它工作了。

ia2d9nvy

ia2d9nvy3#

如果子模块的文件无法被提取,您可以尝试从本地存储库中删除子模块的文件夹。然后尝试
git submodule update
它应该会显示Submodule path <submodule-name>: checked out '<sha>'
选中,您的文件现在应该被提取。
如果失败,请删除该文件夹并尝试:
git submodule update --init --recursive
git submodule update --recursive --remote

相关问题