Raw
1 submodule.<name>.url::
2 The URL for a submodule. This variable is copied from the .gitmodules
3 file to the git config via 'git submodule init'. The user can change
4 the configured URL before obtaining the submodule via 'git submodule
5 update'. If neither submodule.<name>.active nor submodule.active are
6 set, the presence of this variable is used as a fallback to indicate
7 whether the submodule is of interest to git commands.
8 See linkgit:git-submodule[1] and linkgit:gitmodules[5] for details.
9
10 submodule.<name>.update::
11 The method by which a submodule is updated by 'git submodule update',
12 which is the only affected command, others such as
13 'git checkout --recurse-submodules' are unaffected. It exists for
14 historical reasons, when 'git submodule' was the only command to
15 interact with submodules; settings like `submodule.active`
16 and `pull.rebase` are more specific. It is populated by
17 `git submodule init` from the linkgit:gitmodules[5] file.
18 See description of 'update' command in linkgit:git-submodule[1].
19
20 submodule.<name>.branch::
21 The remote branch name for a submodule, used by `git submodule
22 update --remote`. Set this option to override the value found in
23 the `.gitmodules` file. See linkgit:git-submodule[1] and
24 linkgit:gitmodules[5] for details.
25
26 submodule.<name>.fetchRecurseSubmodules::
27 This option can be used to control recursive fetching of this
28 submodule. It can be overridden by using the --[no-]recurse-submodules
29 command-line option to "git fetch" and "git pull".
30 This setting will override that from in the linkgit:gitmodules[5]
31 file.
32
33 submodule.<name>.ignore::
34 Defines under what circumstances "git status" and the diff family show
35 a submodule as modified.
36 When set to "all" will never consider the submodule modified. It can
37 nevertheless be staged using the option --force and it will then show up
38 in the output of status.
39 When set to "dirty" will ignore all changes to the submodule's work tree and
40 takes only differences between the HEAD of the submodule and the commit
41 recorded in the superproject into account. "untracked" will additionally
42 let submodules with modified tracked files in their work tree show up.
43 When set to "none" (default) it also shows submodules as changed if they have
44 untracked files in their work tree.
45 This setting overrides any setting made in .gitmodules for this submodule,
46 both settings can be overridden on the command line by using the
47 "--ignore-submodules" option. The 'git submodule' commands are not
48 affected by this setting.
49
50 submodule.<name>.active::
51 Boolean value indicating if the submodule is of interest to git
52 commands. This config option takes precedence over the
53 submodule.active config option. See linkgit:gitsubmodules[7] for
54 details.
55
56 submodule.<name>.gitdir::
57 This sets the gitdir path for submodule <name>. This configuration is
58 respected when `extensions.submodulePathConfig` is enabled, otherwise it
59 has no effect. When enabled, this config becomes the single source of
60 truth for submodule gitdir paths and Git will error if it is missing.
61 See linkgit:git-config[1] for details.
62
63 submodule.active::
64 A repeated field which contains a pathspec used to match against a
65 submodule's path to determine if the submodule is of interest to git
66 commands. See linkgit:gitsubmodules[7] for details.
67
68 submodule.recurse::
69 A boolean indicating if commands should enable the `--recurse-submodules`
70 option by default. Defaults to false.
71 +
72 When set to true, it can be deactivated via the
73 `--no-recurse-submodules` option. Note that some Git commands
74 lacking this option may call some of the above commands affected by
75 `submodule.recurse`; for instance `git remote update` will call
76 `git fetch` but does not have a `--no-recurse-submodules` option.
77 For these commands a workaround is to temporarily change the
78 configuration value by using `git -c submodule.recurse=0`.
79 +
80 The following list shows the commands that accept
81 `--recurse-submodules` and whether they are supported by this
82 setting.
83
84 * `checkout`, `fetch`, `grep`, `pull`, `push`, `read-tree`,
85 `reset`, `restore` and `switch` are always supported.
86 * `clone` and `ls-files` are not supported.
87 * `branch` is supported only if `submodule.propagateBranches` is
88 enabled
89
90 submodule.propagateBranches::
91 [EXPERIMENTAL] A boolean that enables branching support when
92 using `--recurse-submodules` or `submodule.recurse=true`.
93 Enabling this will allow certain commands to accept
94 `--recurse-submodules` and certain commands that already accept
95 `--recurse-submodules` will now consider branches.
96 Defaults to false.
97
98 submodule.fetchJobs::
99 Specifies how many submodules are fetched/cloned at the same time.
100 A positive integer allows up to that number of submodules fetched
101 in parallel. A value of 0 will give some reasonable default.
102 If unset, it defaults to 1.
103
104 submodule.alternateLocation::
105 Specifies how the submodules obtain alternates when submodules are
106 cloned. Possible values are `no`, `superproject`.
107 By default `no` is assumed, which doesn't add references. When the
108 value is set to `superproject` the submodule to be cloned computes
109 its alternates location relative to the superprojects alternate.
110
111 submodule.alternateErrorStrategy::
112 Specifies how to treat errors with the alternates for a submodule
113 as computed via `submodule.alternateLocation`. Possible values are
114 `ignore`, `info`, `die`. Default is `die`. Note that if set to `ignore`
115 or `info`, and if there is an error with the computed alternate, the
116 clone proceeds as if no alternate was specified.