git submodules allow you to keep a git repository as a subdirectory of another git repository. Git submodules are simply a reference to another repository at a particular snapshot in time. Git submodules enable a Git repository to incorporate and track version history of external code.
A git submodule is a record within a host git repository that points to a specific commit in another external repository. Submodules are very static and only track specific commits.