| submodule.<name>.url:: | |
| The URL for a submodule. This variable is copied from the .gitmodules | |
| file to the git config via 'git submodule init'. The user can change | |
| the configured URL before obtaining the submodule via 'git submodule | |
| update'. If neither submodule.<name>.active nor submodule.active are | |
| set, the presence of this variable is used as a fallback to indicate | |
| whether the submodule is of interest to git commands. | |
| See linkgit:git-submodule[1] and linkgit:gitmodules[5] for details. | |
| submodule.<name>.update:: | |
| The method by which a submodule is updated by 'git submodule update', | |
| which is the only affected command, others such as | |
| 'git checkout --recurse-submodules' are unaffected. It exists for | |
| historical reasons, when 'git submodule' was the only command to | |
| interact with submodules; settings like `submodule.active` | |
| and `pull.rebase` are more specific. It is populated by | |
| `git submodule init` from the linkgit:gitmodules[5] file. | |
| See description of 'update' command in linkgit:git-submodule[1]. | |
| submodule.<name>.branch:: | |
| The remote branch name for a submodule, used by `git submodule | |
| update --remote`. Set this option to override the value found in | |
| the `.gitmodules` file. See linkgit:git-submodule[1] and | |
| linkgit:gitmodules[5] for details. | |
| submodule.<name>.fetchRecurseSubmodules:: | |
| This option can be used to control recursive fetching of this | |
| submodule. It can be overridden by using the --[no-]recurse-submodules | |
| command-line option to "git fetch" and "git pull". | |
| This setting will override that from in the linkgit:gitmodules[5] | |
| file. | |
| submodule.<name>.ignore:: | |
| Defines under what circumstances "git status" and the diff family show | |
| a submodule as modified. | |
| When set to "all" will never consider the submodule modified. It can | |
| nevertheless be staged using the option --force and it will then show up | |
| in the output of status. | |
| When set to "dirty" will ignore all changes to the submodule's work tree and | |
| takes only differences between the HEAD of the submodule and the commit | |
| recorded in the superproject into account. "untracked" will additionally | |
| let submodules with modified tracked files in their work tree show up. | |
| When set to "none" (default) it also shows submodules as changed if they have | |
| untracked files in their work tree. | |
| This setting overrides any setting made in .gitmodules for this submodule, | |
| both settings can be overridden on the command line by using the | |
| "--ignore-submodules" option. The 'git submodule' commands are not | |
| affected by this setting. | |
| submodule.<name>.active:: | |
| Boolean value indicating if the submodule is of interest to git | |
| commands. This config option takes precedence over the | |
| submodule.active config option. See linkgit:gitsubmodules[7] for | |
| details. | |
| submodule.<name>.gitdir:: | |
| This sets the gitdir path for submodule <name>. This configuration is | |
| respected when `extensions.submodulePathConfig` is enabled, otherwise it | |
| has no effect. When enabled, this config becomes the single source of | |
| truth for submodule gitdir paths and Git will error if it is missing. | |
| See linkgit:git-config[1] for details. | |
| submodule.active:: | |
| A repeated field which contains a pathspec used to match against a | |
| submodule's path to determine if the submodule is of interest to git | |
| commands. See linkgit:gitsubmodules[7] for details. | |
| submodule.recurse:: | |
| A boolean indicating if commands should enable the `--recurse-submodules` | |
| option by default. Defaults to false. | |
| + | |
| When set to true, it can be deactivated via the | |
| `--no-recurse-submodules` option. Note that some Git commands | |
| lacking this option may call some of the above commands affected by | |
| `submodule.recurse`; for instance `git remote update` will call | |
| `git fetch` but does not have a `--no-recurse-submodules` option. | |
| For these commands a workaround is to temporarily change the | |
| configuration value by using `git -c submodule.recurse=0`. | |
| + | |
| The following list shows the commands that accept | |
| `--recurse-submodules` and whether they are supported by this | |
| setting. | |
| * `checkout`, `fetch`, `grep`, `pull`, `push`, `read-tree`, | |
| `reset`, `restore` and `switch` are always supported. | |
| * `clone` and `ls-files` are not supported. | |
| * `branch` is supported only if `submodule.propagateBranches` is | |
| enabled | |
| submodule.propagateBranches:: | |
| [EXPERIMENTAL] A boolean that enables branching support when | |
| using `--recurse-submodules` or `submodule.recurse=true`. | |
| Enabling this will allow certain commands to accept | |
| `--recurse-submodules` and certain commands that already accept | |
| `--recurse-submodules` will now consider branches. | |
| Defaults to false. | |
| submodule.fetchJobs:: | |
| Specifies how many submodules are fetched/cloned at the same time. | |
| A positive integer allows up to that number of submodules fetched | |
| in parallel. A value of 0 will give some reasonable default. | |
| If unset, it defaults to 1. | |
| submodule.alternateLocation:: | |
| Specifies how the submodules obtain alternates when submodules are | |
| cloned. Possible values are `no`, `superproject`. | |
| By default `no` is assumed, which doesn't add references. When the | |
| value is set to `superproject` the submodule to be cloned computes | |
| its alternates location relative to the superprojects alternate. | |
| submodule.alternateErrorStrategy:: | |
| Specifies how to treat errors with the alternates for a submodule | |
| as computed via `submodule.alternateLocation`. Possible values are | |
| `ignore`, `info`, `die`. Default is `die`. Note that if set to `ignore` | |
| or `info`, and if there is an error with the computed alternate, the | |
| clone proceeds as if no alternate was specified. |