git submodule foreach git pull origin master vs. git pull --recursive-submodules
Solution 1:
git submodule update --recursive
is updating the submodules to match the commit in the parent repo. So you need to commit a change to the parent repo for that command to do anything.
With this setup:
/proj/.git
/proj/module/.git
You make changes in "module", commit, and push them. In "proj", you commit module (it just shows the submodule commit hash changing).
Now when you pull and submodule update, it will update "module" to use the new commit.