Git 子模块 - 将存储库中的文件作为子模块添加到文件夹

Git Submodule - add files from a repository to a folder as submodule

我混淆了 Git 个子模块的概念。

我创建了单独的存储库,旨在作为另一个项目的子模块,然后在主项目存储库中,我将空文件夹添加到应该添加这些文件的位置。

示例:

MyProject/
   ./lib
   ./headers
   ./source

这些文件夹是空的,因为内容将作为子模块来自单独的存储库,但问题是它们的名称不同。 lib/ 的内容将来自 lib_trunk 子模块,源代码称为 source_trunk

有没有办法调整 git 中的子模块功能,而不是按照名称克隆存储库,它只会添加存储库中包含的文件?

您无需提前创建文件夹,git 会为您完成。这些文件夹的名称可以不同于它们包含的 -submodule- 存储库。

git submodule add url/to/lib_trunk lib

将在名为 lib_trunk 的存储库的 lib 文件夹中初始化一个子模块。 source 也一样。

如果,如您所说,libsource 都已经存在,您可能必须在执行 git submodule add 之前删除它们(但因为它们是空的,所以没有理由保留它们)。