| `fetch.recurseSubmodules`:: | |
| This option controls whether `git fetch` (and the underlying fetch | |
| in `git pull`) will recursively fetch into populated submodules. | |
| This option can be set either to a boolean value or to `on-demand`. | |
| Setting it to a boolean changes the behavior of fetch and pull to | |
| recurse unconditionally into submodules when set to true or to not | |
| recurse at all when set to false. When set to `on-demand`, fetch and | |
| pull will only recurse into a populated submodule when its | |
| superproject retrieves a commit that updates the submodule's | |
| reference. | |
| Defaults to `on-demand`, or to the value of `submodule.recurse` if set. | |
| `fetch.fsckObjects`:: | |
| If it is set to true, git-fetch-pack will check all fetched | |
| objects. See `transfer.fsckObjects` for what's | |
| checked. Defaults to `false`. If not set, the value of | |
| `transfer.fsckObjects` is used instead. | |
| `fetch.fsck.<msg-id>`:: | |
| Acts like `fsck.<msg-id>`, but is used by | |
| linkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See | |
| the `fsck.<msg-id>` documentation for details. | |
| `fetch.fsck.skipList`:: | |
| Acts like `fsck.skipList`, but is used by | |
| linkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See | |
| the `fsck.skipList` documentation for details. | |
| `fetch.unpackLimit`:: | |
| If the number of objects fetched over the Git native | |
| transfer is below this | |
| limit, then the objects will be unpacked into loose object | |
| files. However if the number of received objects equals or | |
| exceeds this limit then the received pack will be stored as | |
| a pack, after adding any missing delta bases. Storing the | |
| pack from a push can make the push operation complete faster, | |
| especially on slow filesystems. If not set, the value of | |
| `transfer.unpackLimit` is used instead. | |
| `fetch.prune`:: | |
| If true, fetch will automatically behave as if the `--prune` | |
| option was given on the command line. See also `remote.<name>.prune` | |
| and the PRUNING section of linkgit:git-fetch[1]. | |
| `fetch.pruneTags`:: | |
| If true, fetch will automatically behave as if the | |
| `refs/tags/*:refs/tags/*` refspec was provided when pruning, | |
| if not set already. This allows for setting both this option | |
| and `fetch.prune` to maintain a 1=1 mapping to upstream | |
| refs. See also `remote.<name>.pruneTags` and the PRUNING | |
| section of linkgit:git-fetch[1]. | |
| `fetch.all`:: | |
| If true, fetch will attempt to update all available remotes. | |
| This behavior can be overridden by passing `--no-all` or by | |
| explicitly specifying one or more remote(s) to fetch from. | |
| Defaults to `false`. | |
| `fetch.output`:: | |
| Control how ref update status is printed. Valid values are | |
| `full` and `compact`. Default value is `full`. See the | |
| OUTPUT section in linkgit:git-fetch[1] for details. | |
| `fetch.negotiationAlgorithm`:: | |
| Control how information about the commits in the local repository | |
| is sent when negotiating the contents of the packfile to be sent by | |
| the server. Set to `consecutive` to use an algorithm that walks | |
| over consecutive commits checking each one. Set to `skipping` to | |
| use an algorithm that skips commits in an effort to converge | |
| faster, but may result in a larger-than-necessary packfile; or set | |
| to `noop` to not send any information at all, which will almost | |
| certainly result in a larger-than-necessary packfile, but will skip | |
| the negotiation step. Set to `default` to override settings made | |
| previously and use the default behaviour. The default is normally | |
| `consecutive`, but if `feature.experimental` is `true`, then the | |
| default is `skipping`. Unknown values will cause `git fetch` to | |
| error out. | |
| + | |
| See also the `--negotiate-only` and `--negotiation-restrict` options to | |
| linkgit:git-fetch[1]. | |
| `fetch.showForcedUpdates`:: | |
| Set to `false` to enable `--no-show-forced-updates` in | |
| linkgit:git-fetch[1] and linkgit:git-pull[1] commands. | |
| Defaults to `true`. | |
| `fetch.parallel`:: | |
| Specifies the maximal number of fetch operations to be run in parallel | |
| at a time (submodules, or remotes when the `--multiple` option of | |
| linkgit:git-fetch[1] is in effect). | |
| + | |
| A value of 0 will give some reasonable default. If unset, it defaults to 1. | |
| + | |
| For submodules, this setting can be overridden using the `submodule.fetchJobs` | |
| config setting. | |
| `fetch.writeCommitGraph`:: | |
| Set to true to write a commit-graph after every `git fetch` command | |
| that downloads a pack-file from a remote. Using the `--split` option, | |
| most executions will create a very small commit-graph file on top of | |
| the existing commit-graph file(s). Occasionally, these files will | |
| merge and the write may take longer. Having an updated commit-graph | |
| file helps performance of many Git commands, including `git merge-base`, | |
| `git push -f`, and `git log --graph`. Defaults to `false`. | |
| `fetch.bundleURI`:: | |
| This value stores a URI for downloading Git object data from a bundle | |
| URI before performing an incremental fetch from the origin Git server. | |
| This is similar to how the `--bundle-uri` option behaves in | |
| linkgit:git-clone[1]. `git clone --bundle-uri` will set the | |
| `fetch.bundleURI` value if the supplied bundle URI contains a bundle | |
| list that is organized for incremental fetches. | |
| + | |
| If you modify this value and your repository has a `fetch.bundleCreationToken` | |
| value, then remove that `fetch.bundleCreationToken` value before fetching from | |
| the new bundle URI. | |
| `fetch.bundleCreationToken`:: | |
| When using `fetch.bundleURI` to fetch incrementally from a bundle | |
| list that uses the "`creationToken`" heuristic, this config value | |
| stores the maximum `creationToken` value of the downloaded bundles. | |
| This value is used to prevent downloading bundles in the future | |
| if the advertised `creationToken` is not strictly larger than this | |
| value. | |
| + | |
| The creation token values are chosen by the provider serving the specific | |
| bundle URI. If you modify the URI at `fetch.bundleURI`, then be sure to | |
| remove the value for the `fetch.bundleCreationToken` value before fetching. | |
| `fetch.followRemoteHEAD`:: | |
| When fetching using a default refspec, this setting determines how to handle | |
| differences between a fetched remote's `HEAD` and the local | |
| `remotes/<name>/HEAD` symbolic-ref. Its value is one of | |
| + | |
| -- | |
| `create`;; | |
| Create `remotes/<name>/HEAD` if a ref exists on the remote, but not locally. | |
| An existing symbolic-ref will not be touched. This is the default value. | |
| `warn`;; | |
| Display a warning if the remote advertises a different `HEAD` than what is | |
| set locally. Behaves like "create" if the local symbolic-ref doesn't exist. | |
| `always`;; | |
| Silently update `remotes/<name>/HEAD` whenever the remote advertises a new | |
| value. | |
| `never`;; | |
| Never create or modify the `remotes/<name>/HEAD` symbolic-ref. | |
| -- |