Documentation: describe 'union' low-level merge driver
[gitweb.git] / Documentation / git-submodule.txt
index cb0424f77b41deed3c93f1e34dc48497bf687fce..3f59705686cf1f9605fa9c76e8009cd2a482cd9e 100644 (file)
@@ -8,11 +8,23 @@ git-submodule - Initialize, update or inspect submodules
 
 SYNOPSIS
 --------
+[verse]
+'git-submodule' [--quiet] [-b branch] add <repository> [<path>]
 'git-submodule' [--quiet] [--cached] [status|init|update] [--] [<path>...]
 
 
 COMMANDS
 --------
+add::
+       Add the given repository as a submodule at the given path
+       to the changeset to be committed next.  In particular, the
+       repository is cloned at the specified path, added to the
+       changeset and registered in .gitmodules.   If no path is
+       specified, the path is deduced from the repository specification.
+       If the repository url begins with ./ or ../, it is stored as
+       given but resolved as a relative path from the main project's
+       url when cloning.
+
 status::
        Show the status of the submodules. This will print the SHA-1 of the
        currently checked out commit for each submodule, along with the
@@ -23,15 +35,15 @@ status::
        repository. This command is the default command for git-submodule.
 
 init::
-       Initialize the submodules, i.e. clone the git repositories specified
-       in the .gitmodules file and checkout the submodule commits specified
-       in the index of the containing repository. This will make the
-       submodules HEAD be detached.
+       Initialize the submodules, i.e. register in .git/config each submodule
+       name and url found in .gitmodules. The key used in .git/config is
+       `submodule.$name.url`. This command does not alter existing information
+       in .git/config.
 
 update::
-       Update the initialized submodules, i.e. checkout the submodule commits
-       specified in the index of the containing repository. This will make
-       the submodules HEAD be detached.
+       Update the registered submodules, i.e. clone missing submodules and
+       checkout the commit specified in the index of the containing repository.
+       This will make the submodules HEAD be detached.
 
 
 OPTIONS
@@ -39,6 +51,9 @@ OPTIONS
 -q, --quiet::
        Only print error messages.
 
+-b, --branch::
+       Branch of repository to add as submodule.
+
 --cached::
        Display the SHA-1 stored in the index, not the SHA-1 of the currently
        checked out submodule commit. This option is only valid for the
@@ -50,10 +65,11 @@ OPTIONS
 
 FILES
 -----
-When cloning submodules, a .gitmodules file in the top-level directory
+When initializing submodules, a .gitmodules file in the top-level directory
 of the containing repository is used to find the url of each submodule.
 This file should be formatted in the same way as $GIR_DIR/config. The key
-to each submodule url is "module.$path.url".
+to each submodule url is "submodule.$name.url".  See gitlink:gitmodules[5]
+for details.
 
 
 AUTHOR