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.
To get an overview of Git, you must read the Git Tutorial. Also, if you want to learn more about it, you can enroll in Git Training.