Git子树:只使用子存储库而不是整个存储库

Git子树:只使用子存储库而不是整个存储库,git,git-subtree,Git,Git Subtree,我有一个使用一些第三方库的项目。 因此,目录结构类似于: MY_COOL_PROJECT 3rdParty LIB_1 LIB_2 Source MY_PROJECT 这些库位于不同的存储库中。因此,如果我想为第三方库使用git存储库,我可以: git subtree add --prefix 3rdParty/LIB_1 --squash http://My3rdPartyLibs.com/lib1.git master 但是,在lib

我有一个使用一些第三方库的项目。 因此,目录结构类似于:

MY_COOL_PROJECT
   3rdParty
      LIB_1
      LIB_2
   Source
      MY_PROJECT   
这些库位于不同的存储库中。因此,如果我想为第三方库使用git存储库,我可以:

git subtree add --prefix 3rdParty/LIB_1 --squash http://My3rdPartyLibs.com/lib1.git master

但是,在lib1.git存储库中,我只需要一个bin文件夹。它还包含文档、示例等文件夹。如何仅将我的存储库与lib1/bin文件夹“连接”,而不是整个存储库?这可能吗?

通常,git回购是完全克隆/加载的

您可以选择一个(Git1.7+),但前提是您不打算进行任何修改并将其推回。见:


委员会:

这只进行了一些更改。
因为,我使用了我必须使用的子模块

由于某种原因,没有
*


谢谢,这只做了一些改动。因为,我使用子模块,我必须使用
echo MY_FOLDER/*>.git/info/modules/MY_MODULE/sparse checkout
,并且由于某种原因,没有*@user2070238,MY_FOLDER/part无法工作。我在答案中加入了你的评论,以提高可视性。最初的问题是关于“git子树”——这个答案涵盖了稀疏签出。。。最多解决一半?(甚至可能不是)@inger的确。在只选择git回购的子文件夹时,subtree不是正确的工具。@inger这本身就是一个好问题:我不知道是否可以将稀疏签出策略应用于subtree合并回购。所以分支和清理确实是更简单的解决方案。你找到稀疏子树的解决方案了吗?(目前的答案似乎不能完全解决这个问题)
$ git init
Initialized empty Git repository in /tmp/si-sandbox/.git/
(master) $ git config core.sparsecheckout true
(master) $ echo message-store/ >> .git/info/sparse-checkout
(master) $ git remote add origin git://github.com/iwein/Spring-Integration-Sandbox.git
(master) $ git pull origin master
 echo MY_FOLDER/* >> .git/info/modules/MY_MODULE/sparse-checkout