只有一个目录的git子模块是什么?

3
我需要类似 git 子模块的功能,但子模块必须是另一个项目中的目录,而不是整个项目。
例如:
子模块包含:
somedir
   files
   dirs
someotherdir
   files
   dirs
thewanteddir
   files
   dir

我想将thewanteddir与另一个项目链接起来。是否有类似的功能?
2个回答

1
如果somedirsomeotherdirthewanteddir已经是一个仓库的一部分,那么你不能直接看到只有thewanteddir(最好你会看到'theSubmoduleRootDir/thewanteddir')
(而浅克隆子模块无法隔离单个子目录)
最清晰的解决方案(但不是最简单的)是将该子模块仓库拆分为两个,并使thewanteddir成为自己的仓库(然后您可以将其作为子模块添加)。

注意:Git不支持按文件路径进行部分克隆,请参考https://dev59.com/vnE85IYBdhLWcg3w2HNa#2587244。 - VonC

1
你可以使用 git-subtree 来拆分一个仅包含 thewanteddir 子目录历史记录的分支,然后将该提交设置为子模块版本。(您需要继续使用 git-subtree 更新子模块,并合并更改。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接