嵌套git repos和子模块之间的区别

时间:2015-12-22 06:52:18

标签: git github

git version - 2.6.4

我遇到了无法使用--recursive标记克隆完整回购内容的情况。

我的主存储库有两个子目录health-checkhellspawn

我创建了hellspawn作为子模块,它的条目也在.gitmodules文件中。

我不确定health-check是什么,submodule还是nested-githealth-check .gitmodules中的nested-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'

如果是这样,那么为什么我在使用

克隆主存储库时会收到git消息
health-check

`

正如你可以看到.gitmodules是嵌套git的最后一行那么为什么git正在检查hellspawn文件? 由于此错误,即使在子模块WindowManager wm; Display ds; public boolean portrait; public void checkOrientation() { wm = getWindowManager(); ds=wm.getDefaultDisplay(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); checkOrientation(); if (ds.getWidth() > ds.getHeight()) { // ---landscape mode--- portrait = false; } else if (ds.getWidth() < ds.getHeight()) { // ---portrait mode--- portrait = true; } } 中也没有下载代码。

任何帮助

1 个答案:

答案 0 :(得分:1)

  

健康检查没有.gitmodules中的条目,这使得我可能是嵌套-git。

这是一个嵌套的git repo。

  

如果health-check是嵌套git那么为什么git正在检查.gitmodules文件

因为嵌套的git repo被记录为 gitlink (作为子模块),这意味着git检查 special entry in the index 是否匹配在.gitmodules文件中声明的一个(由于--recursive的{​​{1}}选项,要求克隆子模块)

由于该特殊条目与任何git clone条目路径都不匹配,因此该警告失败。

  

由于这个错误,我甚至没有在子模块中下载代码,这是子模块

两种方法:

  1. 摆脱那个特殊的条目:
    试试并.gitmodules(没有跟踪&#39; git rm --cached health-check&#39;,正如我在&#34; git --recursive doesn't clone submodule&#34;)中提到的,然后添加并推送,然后再次尝试/

  2. 声明子模块

  3. 那是:

    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>