Introduction
Sometimes you want to include another project inside your project, but keep it separate. Git submodules let you add one Git repository inside another, so you can work on them independently but keep them linked.
When you want to include a shared library from another project without copying its files.
When your project depends on another project that changes independently.
When you want to keep a third-party tool inside your repository but update it separately.
When you want to track a specific version of another project inside your own.
When you want to collaborate on multiple related projects but keep their histories separate.