checkout: tone down the "forked status" diagnostic messages
[gitweb.git] / Documentation / git-submodule.txt
index cb0424f77b41deed3c93f1e34dc48497bf687fce..cffc6d48fb0f74c744181de25fb34532eb3d1adb 100644 (file)
@@ -8,30 +8,42 @@ 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
-       submodule path and the output of gitlink:git-describe[1] for the
+       submodule path and the output of linkgit:git-describe[1] for the
        SHA-1. Each SHA-1 will be prefixed with `-` if the submodule is not
        initialized and `+` if the currently checked out submodule commit
        does not match the SHA-1 found in the index of the containing
        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".
+This file should be formatted in the same way as `$GIT_DIR/config`. The key
+to each submodule url is "submodule.$name.url".  See linkgit:gitmodules[5]
+for details.
 
 
 AUTHOR
@@ -62,4 +78,4 @@ Written by Lars Hjemli <hjemli@gmail.com>
 
 GIT
 ---
-Part of the gitlink:git[7] suite
+Part of the linkgit:git[7] suite