Git Submodule到子文件夹

Cor*_*ory 25 git dvcs git-submodules

在svn中,您可以将存储库链接到另一个svn存储库中的任何文件夹.我想知道git是否有类似的功能?基本上我想在我的存储库中有一个git子模块,但我希望子模块是指向另一个git存储库的子文件夹的指针,而不是整个存储库.这可能吗?

Tim*_*gan 20

Git不支持部分检出,因此子模块必须指向一个完整的存储库.

Git邮件列表中的此线程提供了一些背景信息.

来自Panther Software的这篇文章提供了一些试图实现类似目标的人的见解(即svn:externals使用Git进行复制).

如果这两个项目都在您的控制之下,那么我建议您将您感兴趣的"子文件夹"与其自己的独立仓库隔离开来.然后两个项目都可以创建链接到它的子模块.


Ant*_*ook 18

我遇到了同样的问题.它看起来不像git级别,至少不能让你轻松拉动或推送到父级仓库.

但是,您可以使用简单的符号链接来解决此限制:

  1. 在单独的目录中设置子模块.
    • git submodule add http://example.com/repo.git ./submodules/repo
  2. 在所需位置的子文件夹中创建符号链接:
    • ln -s ./submodules/repo/subdirectory ./wherever/symlinked_directory

参考文献:

  • 对于 Windows 用户,请尝试 `mklink` (2认同)