git --recursive 不克隆子模块
git --recursive doesn't clone submodule
我了解到要使用主存储库下载子模块,我们可以在克隆主存储库时使用 --recursive
选项。
我也是这样做的git clone --recursive git@github.com:passion/academy.git
我发现它只是创建了一个空的子模块目录,并没有下载它的代码。
我们是否需要像 git submodule update --init --recursive
那样做额外的事情?如果是,那么克隆主存储库时 --recursive
标志的用途是什么?
如果您使用的是足够新的git,并且它仍然不克隆子模块,这意味着那些空文件夹不是子模块而是 .
嵌套存储库在其父存储库中记录为 gitlink,但不会有任何关联的 .gitmodules
文件。
health-check
seem to be a nested git but not sure when cloning give me No submodule mapping found in .gitmodules for path for health-check
.. is it necessary for nested git repos to have entry in .gitmodules ?
如果您希望嵌套的 git 存储库作为子模块被识别和管理,是的。
如 所示,health-check
中 .gitmodules
中缺少路径条目可能会阻止 hellospawn
(这似乎是一个 legit 子模块)被签出。
我遇到了类似的问题。需要检查的几件事:
- 检查您的 .git模块 文件:
% cat .gitmodules
[submodule "src/mysubmodule"]
path = src/mysubmodule
url = myurl/mysubmodule.git
- 检查您的 .git/config 文件并确保列出的子模块 url 与 .gitmodules:
% cat .git/config
...
[submodule "src/mysubmodule"]
url = myurl/mysubmodule.git
active = true
- 最后,检查 url 并确保这是正确的 url(应该与您在该子模块的“git 克隆”中键入的内容相同)。
我了解到要使用主存储库下载子模块,我们可以在克隆主存储库时使用 --recursive
选项。
我也是这样做的git clone --recursive git@github.com:passion/academy.git
我发现它只是创建了一个空的子模块目录,并没有下载它的代码。
我们是否需要像 git submodule update --init --recursive
那样做额外的事情?如果是,那么克隆主存储库时 --recursive
标志的用途是什么?
如果您使用的是足够新的git,并且它仍然不克隆子模块,这意味着那些空文件夹不是子模块而是
嵌套存储库在其父存储库中记录为 gitlink,但不会有任何关联的 .gitmodules
文件。
health-check
seem to be a nested git but not sure when cloning give meNo submodule mapping found in .gitmodules for path for health-check
.. is it necessary for nested git repos to have entry in .gitmodules ?
如果您希望嵌套的 git 存储库作为子模块被识别和管理,是的。
如 health-check
中 .gitmodules
中缺少路径条目可能会阻止 hellospawn
(这似乎是一个 legit 子模块)被签出。
我遇到了类似的问题。需要检查的几件事:
- 检查您的 .git模块 文件:
% cat .gitmodules
[submodule "src/mysubmodule"]
path = src/mysubmodule
url = myurl/mysubmodule.git
- 检查您的 .git/config 文件并确保列出的子模块 url 与 .gitmodules:
% cat .git/config
...
[submodule "src/mysubmodule"]
url = myurl/mysubmodule.git
active = true
- 最后,检查 url 并确保这是正确的 url(应该与您在该子模块的“git 克隆”中键入的内容相同)。