45

I have a git repo and I want to add a submodule to it. Problem is, the submodule exists as a folder inside another repo. Can I add only that folder as a submodule?

tuxcanfly
  • 2,264
  • 1
  • 17
  • 18
  • I found a solution in SO that worked for me: http://stackoverflow.com/questions/9035895/how-do-i-add-a-submodule-to-a-sub-directory – ItayB Mar 15 '16 at 13:37

3 Answers3

40

I ended up doing this:

  1. Create a submodules directory.
  2. Add the submodule in this directory.
  3. Create a symlink to the specific directory inside the submodule.

This way you have default Git submodule behaviour and in your project you only use a subset of the whole submodule.

gitaarik
  • 31,690
  • 11
  • 86
  • 92
26

If you really need to include part of an other repository within the history of your own repo, then the subtree merge strategy is more adequate than submodules.

But in both case, the full repository is linked to your repo, not just one directory.
And partial cloning is not possible.

You could try and isolate that directory in its own repository, and then add it as a submodule, but that means its history will be totally seperated from the repo its was coming from originally.

Community
  • 1
  • 1
VonC
  • 1,042,979
  • 435
  • 3,649
  • 4,283
0
  1. Create new branch
  2. Move required files to new branch
  3. Add sub module to super repository
  4. Checkout sub-module to new branch
Simson
  • 2,905
  • 2
  • 18
  • 30