I have a strange problem with \"git submodule init\"
When I added the submodules using \"git submodule add url location\" it cloned the repository just fine and ever
ok, I have figured out what I did wrong.
When I added the git submodules, I did a git status and it told me three things had changed
.gitmodules
projects/subprojectA
projects/subprojectB
when I was pushing all my changes to the repository, I didnt want to commit the submodules, cause I thought it would add all the files I just cloned, so I just did a git add .gitmodules and committed and pushed that.
But this is wrong, you need to do a git commit and commit everything it tells you, then when you do this, git registers those paths and when you clone, it will work.
but if you do not commit those folders, it wont register them and wont clone them when you clone the parent repository.
so that was my mistake, I misunderstood that adding those directories would add all the submodules code to the parent repository, I tried to sidestep that and it stopped working.
so just add your submodules and commit the results, it will all work out just fine :D
Thanks for Protectators help, regardless!
Use the --recursive
option when cloning. This option initializes all listed submodules :
git clone --recursive
In another case, if you want to initialize submodules of an git you just cloned, you can use
git submodule update --init --recursive
Following worked for me in case of the googletest
submodule:
git submodule add --force https://github.com/google/googletest.git googletest
So, you need to manually add submodule (note the --force
flag).