有没有办法让`git submodule add`一个repo*而不用*克隆它?

Jon*_*han 13 git git-submodules

我有一个很长的回购列表,我试图通过使它们成为所有子模块而成为一个父回购.

我已尝试将它们.gitmodules手动添加到手机中.git/config,但它似乎无法正常工作.

我也试过运行git submodule syncgit submodule update --init等,但没有运气.

有没有办法欺骗git认为我的项目有它的所有(~30K)子模块,而不需要实际克隆它们?

131*_*131 9

经过长时间的互联网漫步,我发现你可以通过直接在git索引中编写并创建"gitlink"文件类型来实现你想要的.

git update-index [--add] --cacheinfo 160000 <subrepo commit hash> <submod path>
Run Code Online (Sandbox Code Playgroud)

另外不要忘记编写subrepo .gitmodules(主要是声明外部路径).


Cod*_*ard -4

有没有办法让 git 认为我的项目拥有它的所有(~30K)子模块,而实际上不需要克隆它们?

??? ~30K 子模块?
你是否正在尝试克隆所有 github 存储库?

在一个项目中拥有如此多的子模块是没有意义的。


有没有办法让 git 认为我的项目已经具备了所有功能

不,这就是子模块的用途,用于包含第三方(也可以是您的)依赖项,该依赖项将在其自己的存储库中进行管理。

在此输入图像描述

正如您在图像中看到的那样,子模块只是项目内的一个子项目。你问的是是否有办法告诉 git 我有这个项目,而我们根本没有。

这是做不到的。