This is the article I should have read when first trying to use git submodules. The two main facts "a submodule is another git repository" and "a submudule is always pinned to a specific commit of the other git repository" are the most important things to understand git submodules. Somehow all tutorials/examples that I saw before show lots of git commands and their outputs but do not highlight the two basic facts so they actually do not help.
Hey, I wrote this article. Just wanted to really thank you for saying that. I also felt like "why didn't anyone tell me this" so I wanted to share it :-)