I'm trying to put a submodule into a repo.
The problem is that when I clone the parent repo, the submodule folder is entirely empty.
Is there any way to make it so that 'git clone parent' actually puts data in the submodule folder?
example: http://github.com/cwolves/sequelize/tree/master/lib/
nodejs-mysql-native
is pointing at an external git, but when I checkout the sequelize
project, that folder is empty...
Try this.
If you have added the submodule in a branch make sure that you add it to the clone command.
Try this for including submodules in git repository.
or
With version 2.13 of Git and later,
--recurse-submodules
can be used instead of--recursive
:Editor’s note:
-j8
is an optional performance optimization that became available in version 2.8, and fetches up to 8 submodules at a time in parallel — seeman git-clone
.With version 1.9 of Git up until version 2.12 (
-j
flag only available in version 2.8+):With version 1.6.5 of Git and later, you can use:
For already cloned repos, or older Git versions, use:
You can use this command to clone your repo with all the submodules:
Or if you have already cloned the project, you can use:
late answer
As I just spent a whole hour fiddling around with a friend: Even if you have Admin rights on BitBucket, always clone the ORIGINAL repository and use the password of the one who owns the repo. Annoying to find out that you ran into this minetrap :P
Original answer 2010
As joschi mentions in the comments,
git submodule
now supports the--recursive
option (Git1.6.5 and more).See Working with git submodules recursively for the init part.
See
git submodule
explained for more.Update 2016, with git 2.8: see "How to speed up / parallelize downloads of git submodules using
git clone --recursive
?"You can initiate fetching the submodule using multiple threads, in parallel.
For instances: