Sub-modules are not on a branch. They are just a pointer to a particular commit of the sub-module's repository.
When someone else checks out your repository, or pulls your code, and performs some git sub-module update, the sub-module is checked out to that particular commit.
Say, you want to move the sub-module to a particular tag:
git checkout v1.0
git add submodule_directory
git commit -m "moved submodule to v1.0"
Now let us say another guy from the developer team wants to have submodule_directory changed to that tag, all he has to do is,
git submodule update --init
The git pull command changes which commit their sub-module directory points to. The git sub-module update command actually merges in the new code.