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

tux*_*fly 32 git git-submodules

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

git*_*rik 36

我最终这样做了:

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

这样您就可以使用默认的Git子模块行为,并且在项目中只使用整个子模块的子集.

  • @CaptainMan 如果您使用“启用符号链接”权限安装 GitBash,这将起作用! (3认同)

Von*_*onC 22

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

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

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