如何将git repo中的特定文件夹添加为git子模块?

时间:2010-07-01 14:13:12

标签: git git-submodules

我有一个git repo,我想为它添加一个子模块。问题是,子模块作为另一个仓库内的文件夹存在。我可以只将该文件夹添加为子模块吗?

3 个答案:

答案 0 :(得分:31)

我最终这样做了:

  1. 创建submodules目录。
  2. 在此目录中添加子模块。
  3. 创建子模块内特定目录的符号链接。
  4. 这样你就有了默认的Git子模块行为,在你的项目中你只使用了整个子模块的一个子集。

答案 1 :(得分:19)

如果您确实需要在自己的仓库历史记录中包含其他存储库的一部分,那么subtree merge strategy比子模块更合适。

但在这两种情况下,完整的存储库都链接到您的存储库,而不仅仅是一个目录 并partial cloning is not possible

您可以在自己的存储库中尝试isolate that directory,然后将其添加为子模块,但这意味着它的历史记录将完全与它原来的存储库分开。

答案 2 :(得分:0)

  1. 创建新分支
  2. 将所需文件移至新分支
  3. 将子模块添加到超级存储库
  4. 检出子模块到新分支