I have a project that uses some 3rd Party libraries. So the directory structure is something like:
MY_COOL_PROJECT
3rdParty
LIB_1
LIB_2
Source
MY_PROJECT
The libraries are located in separate repositories. So, if I want to use a git repository for the 3rd Party libraries I can do:
git subtree add --prefix 3rdParty/LIB_1 --squash http://My3rdPartyLibs.com/lib1.git master
However, inside lib1.git repository there is only one bin folder I need. It contains also folders such as documentation, examples, etc. How can I only "connect" my repository with lib1/bin folder instead of the whole repository? Is that even possible?
Normally, a git repo is done to be fully cloned/loaded.
You could go for a sparse checkout (Git1.7+), but only if you don't intent to do any modification and push those back. See this example:
$ 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
The OP user2070238 reports:
This worked with a few changes.
Because, I use submodule I had to use
echo MY_FOLDER/* >> .git/info/modules/MY_MODULE/sparse-checkout
And for some reason the
MY_FOLDER/
part was not working without*