Submodules ...
... are included into repositories.
... can be uploaded/downloaded (push/pull) independently
... have some special commands for the parent repository
INITILIAZING A SUBMODULE
A submodule needs to be initialized and updated if it was addedd the first time (either new from a commit or because the parent repository was freshly cloned).
project/path:$gitsubmodule init{submodule-directory}project/path:$gitsubmodule update{submodule-directory}
UPDATING ALL SUBMODULES
All submodules can be downloaded (pull/checkout) at once, saving you time by not doing it manually for each.
project/path:$gitsubmodule update--remote --merge
REMOVING A SUBMODULE
A submodule can also be removed. This removal will not remove its influence in the history of the project.
All previous history states (commits) will still include the submodule.
project/path:$gitsubmodule deinit{submodule-directory}project/path:$gitrm{submodule-directory}