git version - 2.6.4
我陷入了无法使用--recursive标志克隆完整回购内容的情况。
我的主存储库有两个子目录health-check和hellspawn。
我创建了hellspawn作为子模块,它在.gitmodules文件中也有它的条目。
我不知道health-check是什么,是submodule还是nested-git。health-check在.gitmodules中没有条目,这让我觉得可能是nested-git。
如果是的话,那么为什么在克隆主存储库时我会收到git消息?
admin@admins-MacBook-Pro.local:~/try$git clone --recursive
git@github.com:url/mainrepo.git
Cloning into 'mainrepo'...
remote: Counting objects: 28713, done.
remote: Compressing objects: 100% (613/613), done.
remote: Total 28713 (delta 363), reused 5 (delta 5), pack-reused 28090
Receiving objects: 100% (28713/28713), 788.79 MiB | 3.54 MiB/s, done.
Resolving deltas: 100% (17645/17645), done.
Checking connectivity... done.
Checking out files: 100% (40522/40522), done.
No submodule mapping found in .gitmodules for path 'health-check'`
正如您可以看到的最后一行,如果health-check是嵌套的,那么为什么git要签入.gitmodules文件呢?由于这个错误,即使是在作为子模块的hellspawn中,我也不会下载代码。
任何帮助
发布于 2015-12-22 06:58:03
健康检查在.gitmodules中没有条目,这使我觉得它可能是嵌套的-git。
这是一个嵌套的git回购。
如果
health-check是嵌套的git,那么为什么git要签入.gitmodules文件?
因为嵌套的git记录为gitlink (作为子模块),这意味着git检查special entry in the index是否与.gitmodules文件中声明的一个匹配(因为git clone的--recursive选项要求克隆子模块)。
由于该特殊条目与任何.gitmodules条目路径不匹配,因此在发出警告时将失败。
由于这个错误,我甚至不会下载作为子模块的hellsp结识的代码。
有两种办法:
git rm --cached health-check (如我在“ doesn't clone submodule”中提到的,没有尾随'/‘),然后添加和推送,然后再尝试git clone --recursive这就是:
git config -f .gitmodules submodule.health-check.path health-check
git config -f .gitmodules submodule.health-check.url https://github.com/<auser>/health-check(将<auser>替换为实际的用户管理该回购)
再次,添加,推送,然后再次尝试git clone --recursive。
https://stackoverflow.com/questions/34410024
复制相似问题