<<def_push,push>> to describe the mapping between remote
        <<def_ref,ref>> and local ref.
 
+[[def_remote]]remote repository::
+       A <<def_repository,repository>> which is used to track the same
+       project but resides somewhere else. To communicate with remotes,
+       see <<def_fetch,fetch>> or <<def_push,push>>.
+
 [[def_remote_tracking_branch]]remote-tracking branch::
        A <<def_ref,ref>> that is used to follow changes from another
        <<def_repository,repository>>. It typically looks like
        is created by giving the `--depth` option to linkgit:git-clone[1], and
        its history can be later deepened with linkgit:git-fetch[1].
 
+[[def_submodule]]submodule::
+       A <<def_repository,repository>> that holds the history of a
+       separate project inside another repository (the latter of
+       which is called <<def_superproject, superproject>>).
+
+[[def_superproject]]superproject::
+       A <<def_repository,repository>> that references repositories
+       of other projects in its working tree as <<def_submodule,submodules>>.
+       The superproject knows about the names of (but does not hold
+       copies of) commit objects of the contained submodules.
+
 [[def_symref]]symref::
        Symbolic reference: instead of containing the <<def_SHA1,SHA-1>>
        id itself, it is of the format 'ref: refs/some/thing' and when