index.recordEndOfIndexEntries::
	Specifies whether the index file should include an "End Of Index
	Entry" section. This reduces index load time on multiprocessor
	machines but produces a message "ignoring EOIE extension" when
	reading the index using Git versions before 2.20. Defaults to
	'true' if index.threads has been explicitly enabled, 'false'
	otherwise.

index.recordOffsetTable::
	Specifies whether the index file should include an "Index Entry
	Offset Table" section. This reduces index load time on
	multiprocessor machines but produces a message "ignoring IEOT
	extension" when reading the index using Git versions before 2.20.
	Defaults to 'true' if index.threads has been explicitly enabled,
	'false' otherwise.

index.sparse::
	When enabled, write the index using sparse-directory entries. This
	has no effect unless `core.sparseCheckout` and
	`core.sparseCheckoutCone` are both enabled. Defaults to 'false'.

index.threads::
	Specifies the number of threads to spawn when loading the index.
	This is meant to reduce index load time on multiprocessor machines.
	Specifying 0 or 'true' will cause Git to auto-detect the number of
	CPUs and set the number of threads accordingly. Specifying 1 or
	'false' will disable multithreading. Defaults to 'true'.

index.version::
	Specify the version with which new index files should be
	initialized.  This does not affect existing repositories.
	If `feature.manyFiles` is enabled, then the default is 4.

index.skipHash::
	When enabled, do not compute the trailing hash for the index file.
	This accelerates Git commands that manipulate the index, such as
	`git add`, `git commit`, or `git status`. Instead of storing the
	checksum, write a trailing set of bytes with value zero, indicating
	that the computation was skipped.
+
If you enable `index.skipHash`, then Git clients older than 2.13.0 will
refuse to parse the index and Git clients older than 2.40.0 will report an
error during `git fsck`.
