16

我有一个使用一些 3rd 方库的项目。所以目录结构是这样的:

MY_COOL_PROJECT
   3rdParty
      LIB_1
      LIB_2
   Source
      MY_PROJECT   

这些库位于单独的存储库中。因此,如果我想为 3rd 方库使用 git 存储库,我可以这样做:

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

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

4

1 回答 1

7

通常,完成一个 git repo 以完全克隆/加载。

可以进行稀疏结帐(Git1.7+),但前提是您不打算进行任何修改并将其推回。看这个例子

$ 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

OP user2070238报告

这有一些变化。
因为,我使用了我必须使用的子模块

 echo MY_FOLDER/* >> .git/info/modules/MY_MODULE/sparse-checkout 

并且由于某种原因,该MY_FOLDER/部分无法正常工作*

于 2013-02-14T06:51:59.133 回答