I see a lot of complaints about git submodules, people suggesting alternatives, complaints about merging or other bits and pieces.
Git submodules have their place. Yes they are not ideal for all situations but they are ideal for the typical use case I’m about to outline.
Example use case
In my work I have a master project which contains multiple submodules. Each submodule is also cloned into a separate development repository sitting near by. I use the master repository to synchronise pushes to the deployment server (in this case an isolated computer sitting on a mountain in Chile!)