Git Submodule Update Not Functioning

- 1 answer

I have a repository with various nested submodules. Committing and pushing works pretty well and the changes are visible at GitHub as expected.

In the testing/production environments, new releases of this project are being deployed using these commands:

git pull --recurse-submodules
git submodule update --init --recursive

But this only updates the root project, none of the submodules are updated to the commits associated with the HEAD at GitHub. So far the only way I have found to update the whole project is to run git pull inside each individual submodule folder.

I understand that git submodule update is the method referenced in most places, but it is not really producing any results in this case. What could be the cause?



You need to make sure your submodules are following a branch, or they will only be checked out at a specific SHA1 (not at the latest of a branch, but the special entry of the index of your parent repo)

See "Git submodules: Specify a branch/tag" in order to make your submodule follow a branch.

Then a git submodule update --init --recursive --remote would be enough to check out the latest from that branch.

This (git submodule update --remote) requires git 1.8.2+ March 2013. The OP Luís de Sousahas a git (March 2012) which doesn't offer this feature.