I'm a fan of submodules in Git, but sometimes it seems like I'm the only one! After having worked with this approach on a few projects, I'm coming to the conclusion that, like so many other things, it's easy when you know how. So, I tried to take my handwavy explanation of how to work with submodules and turn it into a handy diagram for you.
The basic premise is this: remember that you need to commit to both the parent project and the submodule. Do the submodule first. You need to update the submodule when you update your main project. Stay away from
git add . because it's alarmingly easy to revert submodule changes.