git version - 2.6.4
我遇到了无法使用--recursive
标记克隆完整回购内容的情况。
我的主存储库有两个子目录health-check
和hellspawn
。
我创建了hellspawn
作为子模块,它的条目也在.gitmodules
文件中。
我不确定health-check
是什么,submodule
还是nested-git
。
health-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;
}
}
中也没有下载代码。
任何帮助
答案 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
条目路径都不匹配,因此该警告失败。
由于这个错误,我甚至没有在子模块中下载代码,这是子模块
两种方法:
摆脱那个特殊的条目:
试试并.gitmodules
(没有跟踪&#39; git rm --cached health-check
&#39;,正如我在&#34; git --recursive
doesn't clone submodule&#34;)中提到的,然后添加并推送,然后再次尝试/
声明子模块
那是:
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>
。