git-prompt.sh: don't put unsanitized branch names in $PS1
[gitweb.git] / Documentation / gitmodules.txt
index 4e1fd52e7d230c8f5e55960e960a68ef5875fe76..347a9f76ee809c3691dc6580b0fba3ebde0b0e3c 100644 (file)
@@ -13,16 +13,18 @@ $GIT_WORK_DIR/.gitmodules
 DESCRIPTION
 -----------
 
-The `.gitmodules` file, located in the top-level directory of a git
+The `.gitmodules` file, located in the top-level directory of a Git
 working tree, is a text file with a syntax matching the requirements
 of linkgit:git-config[1].
 
 The file contains one subsection per submodule, and the subsection value
-is the name of the submodule. Each submodule section also contains the
+is the name of the submodule. The name is set to the path where the
+submodule has been added unless it was customized with the '--name'
+option of 'git submodule add'. Each submodule section also contains the
 following required keys:
 
 submodule.<name>.path::
-       Defines the path, relative to the top-level directory of the git
+       Defines the path, relative to the top-level directory of the Git
        working tree, where the submodule is expected to be checked out.
        The path name must not end with a `/`. All submodule paths must
        be unique within the .gitmodules file.
@@ -33,6 +35,8 @@ submodule.<name>.url::
        linkgit:git-clone[1] or (if it begins with ./ or ../) a location
        relative to the superproject's origin repository.
 
+In addition, there are a number of optional keys:
+
 submodule.<name>.update::
        Defines what to do when the submodule is updated by the superproject.
        If 'checkout' (the default), the new commit specified in the
@@ -41,8 +45,16 @@ submodule.<name>.update::
        the commit specified in the superproject. If 'merge', the commit
        specified in the superproject will be merged into the current branch
        in the submodule.
+       If 'none', the submodule with name `$name` will not be updated
+       by default.
+
        This config option is overridden if 'git submodule update' is given
-       the '--merge' or '--rebase' options.
+       the '--merge', '--rebase' or '--checkout' options.
+
+submodule.<name>.branch::
+       A remote branch name for tracking updates in the upstream submodule.
+       If the option is not specified, it defaults to 'master'.  See the
+       `--remote` documentation in linkgit:git-submodule[1] for details.
 
 submodule.<name>.fetchRecurseSubmodules::
        This option can be used to control recursive fetching of this
@@ -65,7 +77,8 @@ submodule.<name>.ignore::
        the superproject, the setting there will override the one found in
        .gitmodules.
        Both settings can be overridden on the command line by using the
-       "--ignore-submodule" option.
+       "--ignore-submodule" option. The 'git submodule' commands are not
+       affected by this setting.
 
 
 EXAMPLES