Opaque structure representing a submodule.
Submodule support in libgit2 builds a list of known submodules and keeps it in the repository. The list is built from the .gitmodules file, the .git/config file, the index, and the HEAD tree. Items in the working directory that look like submodules (i.e. a git repo) but are not mentioned in those places won't be tracked.