Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 1 | gitmodules(5) |
| 2 | ============= |
| 3 | |
| 4 | NAME |
| 5 | ---- |
| 6 | gitmodules - defining submodule properties |
| 7 | |
| 8 | SYNOPSIS |
| 9 | -------- |
Gustaf Hendeby | e5b5c1d | 2008-08-31 18:00:27 +0200 | [diff] [blame] | 10 | $GIT_WORK_DIR/.gitmodules |
Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 11 | |
| 12 | |
| 13 | DESCRIPTION |
| 14 | ----------- |
| 15 | |
Thomas Ackermann | 2de9b71 | 2013-01-21 20:17:53 +0100 | [diff] [blame] | 16 | The `.gitmodules` file, located in the top-level directory of a Git |
Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 17 | working tree, is a text file with a syntax matching the requirements |
Dan McGee | 5162e69 | 2007-12-29 00:20:38 -0600 | [diff] [blame] | 18 | of linkgit:git-config[1]. |
Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 19 | |
| 20 | The file contains one subsection per submodule, and the subsection value |
Jens Lehmann | 73b0898 | 2012-09-30 01:05:58 +0200 | [diff] [blame] | 21 | is the name of the submodule. The name is set to the path where the |
| 22 | submodule has been added unless it was customized with the '--name' |
| 23 | option of 'git submodule add'. Each submodule section also contains the |
Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 24 | following required keys: |
| 25 | |
| 26 | submodule.<name>.path:: |
Thomas Ackermann | 2de9b71 | 2013-01-21 20:17:53 +0100 | [diff] [blame] | 27 | Defines the path, relative to the top-level directory of the Git |
Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 28 | working tree, where the submodule is expected to be checked out. |
| 29 | The path name must not end with a `/`. All submodule paths must |
| 30 | be unique within the .gitmodules file. |
| 31 | |
| 32 | submodule.<name>.url:: |
Jim Meyering | a7793a7 | 2012-03-28 10:41:54 +0200 | [diff] [blame] | 33 | Defines a URL from which the submodule repository can be cloned. |
Jonathan Nieder | 47dc5d5 | 2010-07-15 02:41:55 -0500 | [diff] [blame] | 34 | This may be either an absolute URL ready to be passed to |
| 35 | linkgit:git-clone[1] or (if it begins with ./ or ../) a location |
| 36 | relative to the superproject's origin repository. |
Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 37 | |
Johan Herland | 3294842 | 2009-06-03 08:27:06 +0200 | [diff] [blame] | 38 | submodule.<name>.update:: |
| 39 | Defines what to do when the submodule is updated by the superproject. |
| 40 | If 'checkout' (the default), the new commit specified in the |
| 41 | superproject will be checked out in the submodule on a detached HEAD. |
| 42 | If 'rebase', the current branch of the submodule will be rebased onto |
Johan Herland | 42b4917 | 2009-06-03 00:59:12 +0200 | [diff] [blame] | 43 | the commit specified in the superproject. If 'merge', the commit |
| 44 | specified in the superproject will be merged into the current branch |
| 45 | in the submodule. |
Heiko Voigt | e6a1c43 | 2012-05-10 20:59:04 +0200 | [diff] [blame] | 46 | If 'none', the submodule with name `$name` will not be updated |
| 47 | by default. |
| 48 | |
Johan Herland | 3294842 | 2009-06-03 08:27:06 +0200 | [diff] [blame] | 49 | This config option is overridden if 'git submodule update' is given |
Heiko Voigt | e6a1c43 | 2012-05-10 20:59:04 +0200 | [diff] [blame] | 50 | the '--merge', '--rebase' or '--checkout' options. |
Peter Hutterer | ca2cedb | 2009-04-24 09:06:38 +1000 | [diff] [blame] | 51 | |
W. Trevor King | 06b1abb | 2012-12-19 11:03:32 -0500 | [diff] [blame] | 52 | submodule.<name>.branch:: |
| 53 | A remote branch name for tracking updates in the upstream submodule. |
| 54 | If the option is not specified, it defaults to 'master'. See the |
| 55 | `--remote` documentation in linkgit:git-submodule[1] for details. |
| 56 | |
Jens Lehmann | c1a3c36 | 2010-11-11 00:55:41 +0100 | [diff] [blame] | 57 | submodule.<name>.fetchRecurseSubmodules:: |
Jens Lehmann | bf42b38 | 2011-03-06 23:12:19 +0100 | [diff] [blame] | 58 | This option can be used to control recursive fetching of this |
Jens Lehmann | c1a3c36 | 2010-11-11 00:55:41 +0100 | [diff] [blame] | 59 | submodule. If this option is also present in the submodules entry in |
| 60 | .git/config of the superproject, the setting there will override the |
| 61 | one found in .gitmodules. |
Ralf Wildenhues | 469bfc9 | 2011-01-03 20:03:34 +0100 | [diff] [blame] | 62 | Both settings can be overridden on the command line by using the |
Jens Lehmann | bf42b38 | 2011-03-06 23:12:19 +0100 | [diff] [blame] | 63 | "--[no-]recurse-submodules" option to "git fetch" and "git pull". |
Jens Lehmann | c1a3c36 | 2010-11-11 00:55:41 +0100 | [diff] [blame] | 64 | |
Jens Lehmann | 302ad7a | 2010-08-06 00:40:48 +0200 | [diff] [blame] | 65 | submodule.<name>.ignore:: |
| 66 | Defines under what circumstances "git status" and the diff family show |
| 67 | a submodule as modified. When set to "all", it will never be considered |
| 68 | modified, "dirty" will ignore all changes to the submodules work tree and |
| 69 | takes only differences between the HEAD of the submodule and the commit |
| 70 | recorded in the superproject into account. "untracked" will additionally |
| 71 | let submodules with modified tracked files in their work tree show up. |
| 72 | Using "none" (the default when this option is not set) also shows |
| 73 | submodules that have untracked files in their work tree as changed. |
| 74 | If this option is also present in the submodules entry in .git/config of |
| 75 | the superproject, the setting there will override the one found in |
| 76 | .gitmodules. |
Ralf Wildenhues | 3776ea9 | 2010-08-22 13:12:12 +0200 | [diff] [blame] | 77 | Both settings can be overridden on the command line by using the |
Jens Lehmann | 302ad7a | 2010-08-06 00:40:48 +0200 | [diff] [blame] | 78 | "--ignore-submodule" option. |
| 79 | |
Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 80 | |
| 81 | EXAMPLES |
| 82 | -------- |
| 83 | |
| 84 | Consider the following .gitmodules file: |
| 85 | |
| 86 | [submodule "libfoo"] |
| 87 | path = include/foo |
| 88 | url = git://foo.com/git/lib.git |
| 89 | |
| 90 | [submodule "libbar"] |
| 91 | path = include/bar |
| 92 | url = git://bar.com/git/lib.git |
| 93 | |
| 94 | |
| 95 | This defines two submodules, `libfoo` and `libbar`. These are expected to |
| 96 | be checked out in the paths 'include/foo' and 'include/bar', and for both |
Jim Meyering | a7793a7 | 2012-03-28 10:41:54 +0200 | [diff] [blame] | 97 | submodules a URL is specified which can be used for cloning the submodules. |
Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 98 | |
| 99 | SEE ALSO |
| 100 | -------- |
Dan McGee | 5162e69 | 2007-12-29 00:20:38 -0600 | [diff] [blame] | 101 | linkgit:git-submodule[1] linkgit:git-config[1] |
Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 102 | |
Lars Hjemli | 891dbc6 | 2007-06-12 09:05:21 +0200 | [diff] [blame] | 103 | GIT |
| 104 | --- |
Christian Couder | 9e1f0a8 | 2008-06-06 09:07:32 +0200 | [diff] [blame] | 105 | Part of the linkgit:git[1] suite |