如何将本地子模块添加到项目中而不必实际克隆其包含的所有文件?我想避免在本地复制我的项目文件。
我知道这种事情是可以做到的,因为当你克隆一个包含子模块的项目时,默认情况下并不会克隆它们。您必须手动完成操作:
git clone url-of-repo-containing-submodules.git
git submodule init sub-mod
git submodule update --remote
假设我有一个名为meta-project的 git 仓库,其中包含一个外部源代码仓库lib-sobmodule。
我可以通过一些技巧来避免文件重复:
cd /path/to/metaproject
git submodule add ../path/to/lib-sobmodule
git commit -m "lib-sobmodule added..."
git push
cd .. && rm -rf meta-project
git clone url-of-meta-project.git
看哪!我的桌面上没有重复的lib-sobmodule文件。但这并不是一个好的解决方法,因为它需要将所有东西导入/导出到git远程...
有没有一种选项或方法可以防止克隆本地项目而不必复制其中包含的所有文件?
免责声明:这几乎是一个克隆问题,参考Is there a way to git submodule add
a repo without cloning it?。但是由于答案专注于30K git子模块要求,对我在此描述的更常见用例没有给出令人满意的解决方案。