feature.*::
	The config settings that start with `feature.` modify the defaults of
	a group of other config settings. These groups are created by the Git
	developer community as recommended defaults and are subject to change.
	In particular, new config options may be added with different defaults.

feature.experimental::
	Enable config options that are new to Git, and are being considered for
	future defaults. Config settings included here may be added or removed
	with each release, including minor version updates. These settings may
	have unintended interactions since they are so new. Please enable this
	setting if you are interested in providing feedback on experimental
	features. The new default values are:
+
* `pack.useSparse=true` uses a new algorithm when constructing a pack-file
which can improve `git push` performance in repos with many files.
+
* `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by
skipping more commits at a time, reducing the number of round trips.
+
* `fetch.writeCommitGraph=true` writes 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`.

feature.manyFiles::
	Enable config options that optimize for repos with many files in the
	working directory. With many files, commands such as `git status` and
	`git checkout` may be slow and these new defaults improve performance:
+
* `index.version=4` enables path-prefix compression in the index.
+
* `core.untrackedCache=true` enables the untracked cache. This setting assumes
that mtime is working on your machine.
