As I mention in “git submodule tracking latest”, you can since git 1.8.2 (March 2013) make a submodule track the HEAD of branch:
git submodule add -b <branch> <repository> [<path>]
A submodule SHA1 is still recorded in the parent repo as a gitlink (special entry in the index)
But a git submodule update --remote will update that entry to the SHA1 matching the HEAD of a branch of the submodule remote repo.
If you have an existing submodule, you can make it follow a branch with:
cd /path/to/your/parent/repo
git config -f .gitmodules submodule.<path>.branch <branch>
cd path/to/your/submodule
git checkout -b <branch> --track origin/<branch>
# if the master branch already exist:
git branch -u origin/<branch> <branch>
cd /path/to/your/parent/repo
git add path/to/your/submodule
git commit -m "Make submodule tracking <branch>"