在 SVN 中,您可以将存储库链接到另一个 SVN 存储库中的任何文件夹。我想知道 Git 是否有类似的功能?基本上,我想在我的存储库中添加一个 Git 子模块,但我希望子模块是指向另一个 Git 存储库中的子文件夹,而不是整个存储库。这可能吗?
Git不支持部分检出,因此子模块必须指向完整的存储库。
Git邮件列表中的此线程提供了一些背景信息。
Panther Software的这篇文章提供了其他人尝试实现类似目标(即使用 Git 复制 svn:externals
)的一些见解。
如果两个项目都在您的控制之下,则建议将您感兴趣的"子文件夹"隔离到自己的独立存储库中。 然后,两个项目可以创建链接到它的子模块。
我也遇到了同样的问题。从 git 级别来看,它似乎无法解决,至少不能让您轻松地拉取或推送到父级仓库。
但是,您可以通过使用简单的符号链接来解决这个问题:
git submodule add http://example.com/repo.git ./submodules/repo
ln -s ./submodules/repo/subdirectory ./wherever/symlinked_directory
参考资料:
mklink
命令。 - MZDgit subtree
仅将特定子目录映射到存储库中的目录。 - technomage