First, let me provide a brief explanation on a core concept about submodules that will make them easier to work with.
Submodules are tracked by the exact commit specified in the parent project, not a branch, a ref, or any other symbolic reference.
They are never automatically updated when the repository specified by the submodule is updated, only when the parent project itself is updated. As very clearly expressed in the Pro Git chapter mentioned earlier:
[...] git submodules [...] are static. Very static. You are tracking specific commits with git submodules - not branches, not references, a single commit. If you add commits to a submodule, the parent project won't know. If you have a bunch of forks of a module, git submodules don't care. You have one remote repository, and you point to a single commit. Until you update the parent project, nothing changes.