49

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

4

3 回答 3

42

我最终这样做了:

  1. 创建一个submodules目录。
  2. 在此目录中添加子模块。
  3. 创建指向子模块内特定目录的符号链接。

这样你就有了默认的 Git 子模块行为,并且在你的项目中你只使用了整个子模块的一个子集。

于 2013-09-03T10:36:00.280 回答
28

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

但在这两种情况下,完整的存储库都链接到您的存储库,而不仅仅是一个目录。
并且部分克隆是不可能的

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

于 2010-07-01T14:39:19.377 回答
0
  1. 创建新分支
  2. 将所需文件移动到新分支
  3. 将子模块添加到超级存储库
  4. 结帐子模块到新分支
于 2019-09-25T04:11:02.917 回答