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
You can use the --recursive
flag when cloning a repository. This parameter forces git to clone all defined submodules in the repository.
git clone --recursive git@repo.org:your_repo.git
After cloning, sometimes submodules branches may be changed, so run this command after it:
git submodule foreach "git checkout master"
I think you can go with 3 steps:
git clone
git submodule init
git submodule update
I had the same problem for a GitHub repository. My account was missing SSH Key. The process is
Then, you can clone the repository with submodules (git clone --recursive YOUR-GIT-REPO-URL
)
or
Run git submodule init
and git submodule update
to fetch submodules in already cloned repository.
With version 2.13 of Git and later, --recurse-submodules
can be used instead of --recursive
:
git clone --recurse-submodules -j8 git://github.com/foo/bar.git
cd bar
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 — see man git-clone
.
With version 1.9 of Git up until version 2.12 (-j
flag only available in version 2.8+):
git clone --recursive -j8 git://github.com/foo/bar.git
cd bar
With version 1.6.5 of Git and later, you can use:
git clone --recursive git://github.com/foo/bar.git
cd bar
For already cloned repos, or older Git versions, use:
git clone git://github.com/foo/bar.git
cd bar
git submodule update --init --recursive
You have to do two things before a submodule will be filled:
git submodule init
git submodule update
Try this.
git clone -b <branch_name> --recursive <remote> <directory>
If you have added the submodule in a branch make sure that you add it to the clone command.