config.txt: move core.* to a separate file

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Nguyễn Thái Ngọc Duy committed Oct 27, 2018 at 08:22 UTC 1a394fa9ad4950282498af8eb6dc34985cf6cff3
2 files changed +595 -594
Documentation/config.txt
+1 -594
@@ -289,600 +289,7 @@ other popular tools, and describe them in your documentation.
289
290 include::config/advice.txt[]
291
292 -core.fileMode::
293 - Tells Git if the executable bit of files in the working tree
294 - is to be honored.
295 -+
296 -Some filesystems lose the executable bit when a file that is
297 -marked as executable is checked out, or checks out a
298 -non-executable file with executable bit on.
299 -linkgit:git-clone[1] or linkgit:git-init[1] probe the filesystem
300 -to see if it handles the executable bit correctly
301 -and this variable is automatically set as necessary.
302 -+
303 -A repository, however, may be on a filesystem that handles
304 -the filemode correctly, and this variable is set to 'true'
305 -when created, but later may be made accessible from another
306 -environment that loses the filemode (e.g. exporting ext4 via
307 -CIFS mount, visiting a Cygwin created repository with
308 -Git for Windows or Eclipse).
309 -In such a case it may be necessary to set this variable to 'false'.
310 -See linkgit:git-update-index[1].
311 -+
312 -The default is true (when core.filemode is not specified in the config file).
313 -
314 -core.hideDotFiles::
315 - (Windows-only) If true, mark newly-created directories and files whose
316 - name starts with a dot as hidden. If 'dotGitOnly', only the `.git/`
317 - directory is hidden, but no other files starting with a dot. The
318 - default mode is 'dotGitOnly'.
319 -
320 -core.ignoreCase::
321 - Internal variable which enables various workarounds to enable
322 - Git to work better on filesystems that are not case sensitive,
323 - like APFS, HFS+, FAT, NTFS, etc. For example, if a directory listing
324 - finds "makefile" when Git expects "Makefile", Git will assume
325 - it is really the same file, and continue to remember it as
326 - "Makefile".
327 -+
328 -The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
329 -will probe and set core.ignoreCase true if appropriate when the repository
330 -is created.
331 -+
332 -Git relies on the proper configuration of this variable for your operating
333 -and file system. Modifying this value may result in unexpected behavior.
334 -
335 -core.precomposeUnicode::
336 - This option is only used by Mac OS implementation of Git.
337 - When core.precomposeUnicode=true, Git reverts the unicode decomposition
338 - of filenames done by Mac OS. This is useful when sharing a repository
339 - between Mac OS and Linux or Windows.
340 - (Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7).
341 - When false, file names are handled fully transparent by Git,
342 - which is backward compatible with older versions of Git.
343 -
344 -core.protectHFS::
345 - If set to true, do not allow checkout of paths that would
346 - be considered equivalent to `.git` on an HFS+ filesystem.
347 - Defaults to `true` on Mac OS, and `false` elsewhere.
348 -
349 -core.protectNTFS::
350 - If set to true, do not allow checkout of paths that would
351 - cause problems with the NTFS filesystem, e.g. conflict with
352 - 8.3 "short" names.
353 - Defaults to `true` on Windows, and `false` elsewhere.
354 -
355 -core.fsmonitor::
356 - If set, the value of this variable is used as a command which
357 - will identify all files that may have changed since the
358 - requested date/time. This information is used to speed up git by
359 - avoiding unnecessary processing of files that have not changed.
360 - See the "fsmonitor-watchman" section of linkgit:githooks[5].
361 -
362 -core.trustctime::
363 - If false, the ctime differences between the index and the
364 - working tree are ignored; useful when the inode change time
365 - is regularly modified by something outside Git (file system
366 - crawlers and some backup systems).
367 - See linkgit:git-update-index[1]. True by default.
368 -
369 -core.splitIndex::
370 - If true, the split-index feature of the index will be used.
371 - See linkgit:git-update-index[1]. False by default.
372 -
373 -core.untrackedCache::
374 - Determines what to do about the untracked cache feature of the
375 - index. It will be kept, if this variable is unset or set to
376 - `keep`. It will automatically be added if set to `true`. And
377 - it will automatically be removed, if set to `false`. Before
378 - setting it to `true`, you should check that mtime is working
379 - properly on your system.
380 - See linkgit:git-update-index[1]. `keep` by default.
381 -
382 -core.checkStat::
383 - When missing or is set to `default`, many fields in the stat
384 - structure are checked to detect if a file has been modified
385 - since Git looked at it. When this configuration variable is
386 - set to `minimal`, sub-second part of mtime and ctime, the
387 - uid and gid of the owner of the file, the inode number (and
388 - the device number, if Git was compiled to use it), are
389 - excluded from the check among these fields, leaving only the
390 - whole-second part of mtime (and ctime, if `core.trustCtime`
391 - is set) and the filesize to be checked.
392 -+
393 -There are implementations of Git that do not leave usable values in
394 -some fields (e.g. JGit); by excluding these fields from the
395 -comparison, the `minimal` mode may help interoperability when the
396 -same repository is used by these other systems at the same time.
397 -
398 -core.quotePath::
399 - Commands that output paths (e.g. 'ls-files', 'diff'), will
400 - quote "unusual" characters in the pathname by enclosing the
401 - pathname in double-quotes and escaping those characters with
402 - backslashes in the same way C escapes control characters (e.g.
403 - `\t` for TAB, `\n` for LF, `\\` for backslash) or bytes with
404 - values larger than 0x80 (e.g. octal `\302\265` for "micro" in
405 - UTF-8). If this variable is set to false, bytes higher than
406 - 0x80 are not considered "unusual" any more. Double-quotes,
407 - backslash and control characters are always escaped regardless
408 - of the setting of this variable. A simple space character is
409 - not considered "unusual". Many commands can output pathnames
410 - completely verbatim using the `-z` option. The default value
411 - is true.
412 -
413 -core.eol::
414 - Sets the line ending type to use in the working directory for
415 - files that have the `text` property set when core.autocrlf is false.
416 - Alternatives are 'lf', 'crlf' and 'native', which uses the platform's
417 - native line ending. The default value is `native`. See
418 - linkgit:gitattributes[5] for more information on end-of-line
419 - conversion.
420 -
421 -core.safecrlf::
422 - If true, makes Git check if converting `CRLF` is reversible when
423 - end-of-line conversion is active. Git will verify if a command
424 - modifies a file in the work tree either directly or indirectly.
425 - For example, committing a file followed by checking out the
426 - same file should yield the original file in the work tree. If
427 - this is not the case for the current setting of
428 - `core.autocrlf`, Git will reject the file. The variable can
429 - be set to "warn", in which case Git will only warn about an
430 - irreversible conversion but continue the operation.
431 -+
432 -CRLF conversion bears a slight chance of corrupting data.
433 -When it is enabled, Git will convert CRLF to LF during commit and LF to
434 -CRLF during checkout. A file that contains a mixture of LF and
435 -CRLF before the commit cannot be recreated by Git. For text
436 -files this is the right thing to do: it corrects line endings
437 -such that we have only LF line endings in the repository.
438 -But for binary files that are accidentally classified as text the
439 -conversion can corrupt data.
440 -+
441 -If you recognize such corruption early you can easily fix it by
442 -setting the conversion type explicitly in .gitattributes. Right
443 -after committing you still have the original file in your work
444 -tree and this file is not yet corrupted. You can explicitly tell
445 -Git that this file is binary and Git will handle the file
446 -appropriately.
447 -+
448 -Unfortunately, the desired effect of cleaning up text files with
449 -mixed line endings and the undesired effect of corrupting binary
450 -files cannot be distinguished. In both cases CRLFs are removed
451 -in an irreversible way. For text files this is the right thing
452 -to do because CRLFs are line endings, while for binary files
453 -converting CRLFs corrupts data.
454 -+
455 -Note, this safety check does not mean that a checkout will generate a
456 -file identical to the original file for a different setting of
457 -`core.eol` and `core.autocrlf`, but only for the current one. For
458 -example, a text file with `LF` would be accepted with `core.eol=lf`
459 -and could later be checked out with `core.eol=crlf`, in which case the
460 -resulting file would contain `CRLF`, although the original file
461 -contained `LF`. However, in both work trees the line endings would be
462 -consistent, that is either all `LF` or all `CRLF`, but never mixed. A
463 -file with mixed line endings would be reported by the `core.safecrlf`
464 -mechanism.
465 -
466 -core.autocrlf::
467 - Setting this variable to "true" is the same as setting
468 - the `text` attribute to "auto" on all files and core.eol to "crlf".
469 - Set to true if you want to have `CRLF` line endings in your
470 - working directory and the repository has LF line endings.
471 - This variable can be set to 'input',
472 - in which case no output conversion is performed.
473 -
474 -core.checkRoundtripEncoding::
475 - A comma and/or whitespace separated list of encodings that Git
476 - performs UTF-8 round trip checks on if they are used in an
477 - `working-tree-encoding` attribute (see linkgit:gitattributes[5]).
478 - The default value is `SHIFT-JIS`.
479 -
480 -core.symlinks::
481 - If false, symbolic links are checked out as small plain files that
482 - contain the link text. linkgit:git-update-index[1] and
483 - linkgit:git-add[1] will not change the recorded type to regular
484 - file. Useful on filesystems like FAT that do not support
485 - symbolic links.
486 -+
487 -The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
488 -will probe and set core.symlinks false if appropriate when the repository
489 -is created.
490 -
491 -core.gitProxy::
492 - A "proxy command" to execute (as 'command host port') instead
493 - of establishing direct connection to the remote server when
494 - using the Git protocol for fetching. If the variable value is
495 - in the "COMMAND for DOMAIN" format, the command is applied only
496 - on hostnames ending with the specified domain string. This variable
497 - may be set multiple times and is matched in the given order;
498 - the first match wins.
499 -+
500 -Can be overridden by the `GIT_PROXY_COMMAND` environment variable
501 -(which always applies universally, without the special "for"
502 -handling).
503 -+
504 -The special string `none` can be used as the proxy command to
505 -specify that no proxy be used for a given domain pattern.
506 -This is useful for excluding servers inside a firewall from
507 -proxy use, while defaulting to a common proxy for external domains.
508 -
509 -core.sshCommand::
510 - If this variable is set, `git fetch` and `git push` will
511 - use the specified command instead of `ssh` when they need to
512 - connect to a remote system. The command is in the same form as
513 - the `GIT_SSH_COMMAND` environment variable and is overridden
514 - when the environment variable is set.
515 -
516 -core.ignoreStat::
517 - If true, Git will avoid using lstat() calls to detect if files have
518 - changed by setting the "assume-unchanged" bit for those tracked files
519 - which it has updated identically in both the index and working tree.
520 -+
521 -When files are modified outside of Git, the user will need to stage
522 -the modified files explicitly (e.g. see 'Examples' section in
523 -linkgit:git-update-index[1]).
524 -Git will not normally detect changes to those files.
525 -+
526 -This is useful on systems where lstat() calls are very slow, such as
527 -CIFS/Microsoft Windows.
528 -+
529 -False by default.
530 -
531 -core.preferSymlinkRefs::
532 - Instead of the default "symref" format for HEAD
533 - and other symbolic reference files, use symbolic links.
534 - This is sometimes needed to work with old scripts that
535 - expect HEAD to be a symbolic link.
536 -
537 -core.alternateRefsCommand::
538 - When advertising tips of available history from an alternate, use the shell to
539 - execute the specified command instead of linkgit:git-for-each-ref[1]. The
540 - first argument is the absolute path of the alternate. Output must contain one
541 - hex object id per line (i.e., the same as produce by `git for-each-ref
542 - --format='%(objectname)'`).
543 -+
544 -Note that you cannot generally put `git for-each-ref` directly into the config
545 -value, as it does not take a repository path as an argument (but you can wrap
546 -the command above in a shell script).
547 -
548 -core.alternateRefsPrefixes::
549 - When listing references from an alternate, list only references that begin
550 - with the given prefix. Prefixes match as if they were given as arguments to
551 - linkgit:git-for-each-ref[1]. To list multiple prefixes, separate them with
552 - whitespace. If `core.alternateRefsCommand` is set, setting
553 - `core.alternateRefsPrefixes` has no effect.
554 -
555 -core.bare::
556 - If true this repository is assumed to be 'bare' and has no
557 - working directory associated with it. If this is the case a
558 - number of commands that require a working directory will be
559 - disabled, such as linkgit:git-add[1] or linkgit:git-merge[1].
560 -+
561 -This setting is automatically guessed by linkgit:git-clone[1] or
562 -linkgit:git-init[1] when the repository was created. By default a
563 -repository that ends in "/.git" is assumed to be not bare (bare =
564 -false), while all other repositories are assumed to be bare (bare
565 -= true).
566 -
567 -core.worktree::
568 - Set the path to the root of the working tree.
569 - If `GIT_COMMON_DIR` environment variable is set, core.worktree
570 - is ignored and not used for determining the root of working tree.
571 - This can be overridden by the `GIT_WORK_TREE` environment
572 - variable and the `--work-tree` command-line option.
573 - The value can be an absolute path or relative to the path to
574 - the .git directory, which is either specified by --git-dir
575 - or GIT_DIR, or automatically discovered.
576 - If --git-dir or GIT_DIR is specified but none of
577 - --work-tree, GIT_WORK_TREE and core.worktree is specified,
578 - the current working directory is regarded as the top level
579 - of your working tree.
580 -+
581 -Note that this variable is honored even when set in a configuration
582 -file in a ".git" subdirectory of a directory and its value differs
583 -from the latter directory (e.g. "/path/to/.git/config" has
584 -core.worktree set to "/different/path"), which is most likely a
585 -misconfiguration. Running Git commands in the "/path/to" directory will
586 -still use "/different/path" as the root of the work tree and can cause
587 -confusion unless you know what you are doing (e.g. you are creating a
588 -read-only snapshot of the same index to a location different from the
589 -repository's usual working tree).
590 -
591 -core.logAllRefUpdates::
592 - Enable the reflog. Updates to a ref <ref> is logged to the file
593 - "`$GIT_DIR/logs/<ref>`", by appending the new and old
594 - SHA-1, the date/time and the reason of the update, but
595 - only when the file exists. If this configuration
596 - variable is set to `true`, missing "`$GIT_DIR/logs/<ref>`"
597 - file is automatically created for branch heads (i.e. under
598 - `refs/heads/`), remote refs (i.e. under `refs/remotes/`),
599 - note refs (i.e. under `refs/notes/`), and the symbolic ref `HEAD`.
600 - If it is set to `always`, then a missing reflog is automatically
601 - created for any ref under `refs/`.
602 -+
603 -This information can be used to determine what commit
604 -was the tip of a branch "2 days ago".
605 -+
606 -This value is true by default in a repository that has
607 -a working directory associated with it, and false by
608 -default in a bare repository.
609 -
610 -core.repositoryFormatVersion::
611 - Internal variable identifying the repository format and layout
612 - version.
613 -
614 -core.sharedRepository::
615 - When 'group' (or 'true'), the repository is made shareable between
616 - several users in a group (making sure all the files and objects are
617 - group-writable). When 'all' (or 'world' or 'everybody'), the
618 - repository will be readable by all users, additionally to being
619 - group-shareable. When 'umask' (or 'false'), Git will use permissions
620 - reported by umask(2). When '0xxx', where '0xxx' is an octal number,
621 - files in the repository will have this mode value. '0xxx' will override
622 - user's umask value (whereas the other options will only override
623 - requested parts of the user's umask value). Examples: '0660' will make
624 - the repo read/write-able for the owner and group, but inaccessible to
625 - others (equivalent to 'group' unless umask is e.g. '0022'). '0640' is a
626 - repository that is group-readable but not group-writable.
627 - See linkgit:git-init[1]. False by default.
628 -
629 -core.warnAmbiguousRefs::
630 - If true, Git will warn you if the ref name you passed it is ambiguous
631 - and might match multiple refs in the repository. True by default.
632 -
633 -core.compression::
634 - An integer -1..9, indicating a default compression level.
635 - -1 is the zlib default. 0 means no compression,
636 - and 1..9 are various speed/size tradeoffs, 9 being slowest.
637 - If set, this provides a default to other compression variables,
638 - such as `core.looseCompression` and `pack.compression`.
639 -
640 -core.looseCompression::
641 - An integer -1..9, indicating the compression level for objects that
642 - are not in a pack file. -1 is the zlib default. 0 means no
643 - compression, and 1..9 are various speed/size tradeoffs, 9 being
644 - slowest. If not set, defaults to core.compression. If that is
645 - not set, defaults to 1 (best speed).
646 -
647 -core.packedGitWindowSize::
648 - Number of bytes of a pack file to map into memory in a
649 - single mapping operation. Larger window sizes may allow
650 - your system to process a smaller number of large pack files
651 - more quickly. Smaller window sizes will negatively affect
652 - performance due to increased calls to the operating system's
653 - memory manager, but may improve performance when accessing
654 - a large number of large pack files.
655 -+
656 -Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
657 -MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
658 -be reasonable for all users/operating systems. You probably do
659 -not need to adjust this value.
660 -+
661 -Common unit suffixes of 'k', 'm', or 'g' are supported.
662 -
663 -core.packedGitLimit::
664 - Maximum number of bytes to map simultaneously into memory
665 - from pack files. If Git needs to access more than this many
666 - bytes at once to complete an operation it will unmap existing
667 - regions to reclaim virtual address space within the process.
668 -+
669 -Default is 256 MiB on 32 bit platforms and 32 TiB (effectively
670 -unlimited) on 64 bit platforms.
671 -This should be reasonable for all users/operating systems, except on
672 -the largest projects. You probably do not need to adjust this value.
673 -+
674 -Common unit suffixes of 'k', 'm', or 'g' are supported.
675 -
676 -core.deltaBaseCacheLimit::
677 - Maximum number of bytes to reserve for caching base objects
678 - that may be referenced by multiple deltified objects. By storing the
679 - entire decompressed base objects in a cache Git is able
680 - to avoid unpacking and decompressing frequently used base
681 - objects multiple times.
682 -+
683 -Default is 96 MiB on all platforms. This should be reasonable
684 -for all users/operating systems, except on the largest projects.
685 -You probably do not need to adjust this value.
686 -+
687 -Common unit suffixes of 'k', 'm', or 'g' are supported.
688 -
689 -core.bigFileThreshold::
690 - Files larger than this size are stored deflated, without
691 - attempting delta compression. Storing large files without
692 - delta compression avoids excessive memory usage, at the
693 - slight expense of increased disk usage. Additionally files
694 - larger than this size are always treated as binary.
695 -+
696 -Default is 512 MiB on all platforms. This should be reasonable
697 -for most projects as source code and other text files can still
698 -be delta compressed, but larger binary media files won't be.
699 -+
700 -Common unit suffixes of 'k', 'm', or 'g' are supported.
701 -
702 -core.excludesFile::
703 - Specifies the pathname to the file that contains patterns to
704 - describe paths that are not meant to be tracked, in addition
705 - to '.gitignore' (per-directory) and '.git/info/exclude'.
706 - Defaults to `$XDG_CONFIG_HOME/git/ignore`.
707 - If `$XDG_CONFIG_HOME` is either not set or empty, `$HOME/.config/git/ignore`
708 - is used instead. See linkgit:gitignore[5].
709 -
710 -core.askPass::
711 - Some commands (e.g. svn and http interfaces) that interactively
712 - ask for a password can be told to use an external program given
713 - via the value of this variable. Can be overridden by the `GIT_ASKPASS`
714 - environment variable. If not set, fall back to the value of the
715 - `SSH_ASKPASS` environment variable or, failing that, a simple password
716 - prompt. The external program shall be given a suitable prompt as
717 - command-line argument and write the password on its STDOUT.
718 -
719 -core.attributesFile::
720 - In addition to '.gitattributes' (per-directory) and
721 - '.git/info/attributes', Git looks into this file for attributes
722 - (see linkgit:gitattributes[5]). Path expansions are made the same
723 - way as for `core.excludesFile`. Its default value is
724 - `$XDG_CONFIG_HOME/git/attributes`. If `$XDG_CONFIG_HOME` is either not
725 - set or empty, `$HOME/.config/git/attributes` is used instead.
726 -
727 -core.hooksPath::
728 - By default Git will look for your hooks in the
729 - '$GIT_DIR/hooks' directory. Set this to different path,
730 - e.g. '/etc/git/hooks', and Git will try to find your hooks in
731 - that directory, e.g. '/etc/git/hooks/pre-receive' instead of
732 - in '$GIT_DIR/hooks/pre-receive'.
733 -+
734 -The path can be either absolute or relative. A relative path is
735 -taken as relative to the directory where the hooks are run (see
736 -the "DESCRIPTION" section of linkgit:githooks[5]).
737 -+
738 -This configuration variable is useful in cases where you'd like to
739 -centrally configure your Git hooks instead of configuring them on a
740 -per-repository basis, or as a more flexible and centralized
741 -alternative to having an `init.templateDir` where you've changed
742 -default hooks.
743 -
744 -core.editor::
745 - Commands such as `commit` and `tag` that let you edit
746 - messages by launching an editor use the value of this
747 - variable when it is set, and the environment variable
748 - `GIT_EDITOR` is not set. See linkgit:git-var[1].
749 -
750 -core.commentChar::
751 - Commands such as `commit` and `tag` that let you edit
752 - messages consider a line that begins with this character
753 - commented, and removes them after the editor returns
754 - (default '#').
755 -+
756 -If set to "auto", `git-commit` would select a character that is not
757 -the beginning character of any line in existing commit messages.
758 -
759 -core.filesRefLockTimeout::
760 - The length of time, in milliseconds, to retry when trying to
761 - lock an individual reference. Value 0 means not to retry at
762 - all; -1 means to try indefinitely. Default is 100 (i.e.,
763 - retry for 100ms).
764 -
765 -core.packedRefsTimeout::
766 - The length of time, in milliseconds, to retry when trying to
767 - lock the `packed-refs` file. Value 0 means not to retry at
768 - all; -1 means to try indefinitely. Default is 1000 (i.e.,
769 - retry for 1 second).
770 -
771 -core.pager::
772 - Text viewer for use by Git commands (e.g., 'less'). The value
773 - is meant to be interpreted by the shell. The order of preference
774 - is the `$GIT_PAGER` environment variable, then `core.pager`
775 - configuration, then `$PAGER`, and then the default chosen at
776 - compile time (usually 'less').
777 -+
778 -When the `LESS` environment variable is unset, Git sets it to `FRX`
779 -(if `LESS` environment variable is set, Git does not change it at
780 -all). If you want to selectively override Git's default setting
781 -for `LESS`, you can set `core.pager` to e.g. `less -S`. This will
782 -be passed to the shell by Git, which will translate the final
783 -command to `LESS=FRX less -S`. The environment does not set the
784 -`S` option but the command line does, instructing less to truncate
785 -long lines. Similarly, setting `core.pager` to `less -+F` will
786 -deactivate the `F` option specified by the environment from the
787 -command-line, deactivating the "quit if one screen" behavior of
788 -`less`. One can specifically activate some flags for particular
789 -commands: for example, setting `pager.blame` to `less -S` enables
790 -line truncation only for `git blame`.
791 -+
792 -Likewise, when the `LV` environment variable is unset, Git sets it
793 -to `-c`. You can override this setting by exporting `LV` with
794 -another value or setting `core.pager` to `lv +c`.
795 -
796 -core.whitespace::
797 - A comma separated list of common whitespace problems to
798 - notice. 'git diff' will use `color.diff.whitespace` to
799 - highlight them, and 'git apply --whitespace=error' will
800 - consider them as errors. You can prefix `-` to disable
801 - any of them (e.g. `-trailing-space`):
802 -+
803 -* `blank-at-eol` treats trailing whitespaces at the end of the line
804 - as an error (enabled by default).
805 -* `space-before-tab` treats a space character that appears immediately
806 - before a tab character in the initial indent part of the line as an
807 - error (enabled by default).
808 -* `indent-with-non-tab` treats a line that is indented with space
809 - characters instead of the equivalent tabs as an error (not enabled by
810 - default).
811 -* `tab-in-indent` treats a tab character in the initial indent part of
812 - the line as an error (not enabled by default).
813 -* `blank-at-eof` treats blank lines added at the end of file as an error
814 - (enabled by default).
815 -* `trailing-space` is a short-hand to cover both `blank-at-eol` and
816 - `blank-at-eof`.
817 -* `cr-at-eol` treats a carriage-return at the end of line as
818 - part of the line terminator, i.e. with it, `trailing-space`
819 - does not trigger if the character before such a carriage-return
820 - is not a whitespace (not enabled by default).
821 -* `tabwidth=<n>` tells how many character positions a tab occupies; this
822 - is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent`
823 - errors. The default tab width is 8. Allowed values are 1 to 63.
824 -
825 -core.fsyncObjectFiles::
826 - This boolean will enable 'fsync()' when writing object files.
827 -+
828 -This is a total waste of time and effort on a filesystem that orders
829 -data writes properly, but can be useful for filesystems that do not use
830 -journalling (traditional UNIX filesystems) or that only journal metadata
831 -and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").
832 -
833 -core.preloadIndex::
834 - Enable parallel index preload for operations like 'git diff'
835 -+
836 -This can speed up operations like 'git diff' and 'git status' especially
837 -on filesystems like NFS that have weak caching semantics and thus
838 -relatively high IO latencies. When enabled, Git will do the
839 -index comparison to the filesystem data in parallel, allowing
840 -overlapping IO's. Defaults to true.
841 -
842 -core.createObject::
843 - You can set this to 'link', in which case a hardlink followed by
844 - a delete of the source are used to make sure that object creation
845 - will not overwrite existing objects.
846 -+
847 -On some file system/operating system combinations, this is unreliable.
848 -Set this config setting to 'rename' there; However, This will remove the
849 -check that makes sure that existing object files will not get overwritten.
850 -
851 -core.notesRef::
852 - When showing commit messages, also show notes which are stored in
853 - the given ref. The ref must be fully qualified. If the given
854 - ref does not exist, it is not an error but means that no
855 - notes should be printed.
856 -+
857 -This setting defaults to "refs/notes/commits", and it can be overridden by
858 -the `GIT_NOTES_REF` environment variable. See linkgit:git-notes[1].
859 -
860 -core.commitGraph::
861 - If true, then git will read the commit-graph file (if it exists)
862 - to parse the graph structure of commits. Defaults to false. See
863 - linkgit:git-commit-graph[1] for more information.
864 -
865 -core.useReplaceRefs::
866 - If set to `false`, behave as if the `--no-replace-objects`
867 - option was given on the command line. See linkgit:git[1] and
868 - linkgit:git-replace[1] for more information.
869 -
870 -core.multiPackIndex::
871 - Use the multi-pack-index file to track multiple packfiles using a
872 - single index. See link:technical/multi-pack-index.html[the
873 - multi-pack-index design document].
874 -
875 -core.sparseCheckout::
876 - Enable "sparse checkout" feature. See section "Sparse checkout" in
877 - linkgit:git-read-tree[1] for more information.
878 -
879 -core.abbrev::
880 - Set the length object names are abbreviated to. If
881 - unspecified or set to "auto", an appropriate value is
882 - computed based on the approximate number of packed objects
883 - in your repository, which hopefully is enough for
884 - abbreviated object names to stay unique for some time.
885 - The minimum length is 4.
292 +include::config/core.txt[]
293
294 add.ignoreErrors::
295 add.ignore-errors (deprecated)::
Documentation/config/core.txt new
+594
@@ -0,0 +1,594 @@
1 +core.fileMode::
2 + Tells Git if the executable bit of files in the working tree
3 + is to be honored.
4 ++
5 +Some filesystems lose the executable bit when a file that is
6 +marked as executable is checked out, or checks out a
7 +non-executable file with executable bit on.
8 +linkgit:git-clone[1] or linkgit:git-init[1] probe the filesystem
9 +to see if it handles the executable bit correctly
10 +and this variable is automatically set as necessary.
11 ++
12 +A repository, however, may be on a filesystem that handles
13 +the filemode correctly, and this variable is set to 'true'
14 +when created, but later may be made accessible from another
15 +environment that loses the filemode (e.g. exporting ext4 via
16 +CIFS mount, visiting a Cygwin created repository with
17 +Git for Windows or Eclipse).
18 +In such a case it may be necessary to set this variable to 'false'.
19 +See linkgit:git-update-index[1].
20 ++
21 +The default is true (when core.filemode is not specified in the config file).
22 +
23 +core.hideDotFiles::
24 + (Windows-only) If true, mark newly-created directories and files whose
25 + name starts with a dot as hidden. If 'dotGitOnly', only the `.git/`
26 + directory is hidden, but no other files starting with a dot. The
27 + default mode is 'dotGitOnly'.
28 +
29 +core.ignoreCase::
30 + Internal variable which enables various workarounds to enable
31 + Git to work better on filesystems that are not case sensitive,
32 + like APFS, HFS+, FAT, NTFS, etc. For example, if a directory listing
33 + finds "makefile" when Git expects "Makefile", Git will assume
34 + it is really the same file, and continue to remember it as
35 + "Makefile".
36 ++
37 +The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
38 +will probe and set core.ignoreCase true if appropriate when the repository
39 +is created.
40 ++
41 +Git relies on the proper configuration of this variable for your operating
42 +and file system. Modifying this value may result in unexpected behavior.
43 +
44 +core.precomposeUnicode::
45 + This option is only used by Mac OS implementation of Git.
46 + When core.precomposeUnicode=true, Git reverts the unicode decomposition
47 + of filenames done by Mac OS. This is useful when sharing a repository
48 + between Mac OS and Linux or Windows.
49 + (Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7).
50 + When false, file names are handled fully transparent by Git,
51 + which is backward compatible with older versions of Git.
52 +
53 +core.protectHFS::
54 + If set to true, do not allow checkout of paths that would
55 + be considered equivalent to `.git` on an HFS+ filesystem.
56 + Defaults to `true` on Mac OS, and `false` elsewhere.
57 +
58 +core.protectNTFS::
59 + If set to true, do not allow checkout of paths that would
60 + cause problems with the NTFS filesystem, e.g. conflict with
61 + 8.3 "short" names.
62 + Defaults to `true` on Windows, and `false` elsewhere.
63 +
64 +core.fsmonitor::
65 + If set, the value of this variable is used as a command which
66 + will identify all files that may have changed since the
67 + requested date/time. This information is used to speed up git by
68 + avoiding unnecessary processing of files that have not changed.
69 + See the "fsmonitor-watchman" section of linkgit:githooks[5].
70 +
71 +core.trustctime::
72 + If false, the ctime differences between the index and the
73 + working tree are ignored; useful when the inode change time
74 + is regularly modified by something outside Git (file system
75 + crawlers and some backup systems).
76 + See linkgit:git-update-index[1]. True by default.
77 +
78 +core.splitIndex::
79 + If true, the split-index feature of the index will be used.
80 + See linkgit:git-update-index[1]. False by default.
81 +
82 +core.untrackedCache::
83 + Determines what to do about the untracked cache feature of the
84 + index. It will be kept, if this variable is unset or set to
85 + `keep`. It will automatically be added if set to `true`. And
86 + it will automatically be removed, if set to `false`. Before
87 + setting it to `true`, you should check that mtime is working
88 + properly on your system.
89 + See linkgit:git-update-index[1]. `keep` by default.
90 +
91 +core.checkStat::
92 + When missing or is set to `default`, many fields in the stat
93 + structure are checked to detect if a file has been modified
94 + since Git looked at it. When this configuration variable is
95 + set to `minimal`, sub-second part of mtime and ctime, the
96 + uid and gid of the owner of the file, the inode number (and
97 + the device number, if Git was compiled to use it), are
98 + excluded from the check among these fields, leaving only the
99 + whole-second part of mtime (and ctime, if `core.trustCtime`
100 + is set) and the filesize to be checked.
101 ++
102 +There are implementations of Git that do not leave usable values in
103 +some fields (e.g. JGit); by excluding these fields from the
104 +comparison, the `minimal` mode may help interoperability when the
105 +same repository is used by these other systems at the same time.
106 +
107 +core.quotePath::
108 + Commands that output paths (e.g. 'ls-files', 'diff'), will
109 + quote "unusual" characters in the pathname by enclosing the
110 + pathname in double-quotes and escaping those characters with
111 + backslashes in the same way C escapes control characters (e.g.
112 + `\t` for TAB, `\n` for LF, `\\` for backslash) or bytes with
113 + values larger than 0x80 (e.g. octal `\302\265` for "micro" in
114 + UTF-8). If this variable is set to false, bytes higher than
115 + 0x80 are not considered "unusual" any more. Double-quotes,
116 + backslash and control characters are always escaped regardless
117 + of the setting of this variable. A simple space character is
118 + not considered "unusual". Many commands can output pathnames
119 + completely verbatim using the `-z` option. The default value
120 + is true.
121 +
122 +core.eol::
123 + Sets the line ending type to use in the working directory for
124 + files that have the `text` property set when core.autocrlf is false.
125 + Alternatives are 'lf', 'crlf' and 'native', which uses the platform's
126 + native line ending. The default value is `native`. See
127 + linkgit:gitattributes[5] for more information on end-of-line
128 + conversion.
129 +
130 +core.safecrlf::
131 + If true, makes Git check if converting `CRLF` is reversible when
132 + end-of-line conversion is active. Git will verify if a command
133 + modifies a file in the work tree either directly or indirectly.
134 + For example, committing a file followed by checking out the
135 + same file should yield the original file in the work tree. If
136 + this is not the case for the current setting of
137 + `core.autocrlf`, Git will reject the file. The variable can
138 + be set to "warn", in which case Git will only warn about an
139 + irreversible conversion but continue the operation.
140 ++
141 +CRLF conversion bears a slight chance of corrupting data.
142 +When it is enabled, Git will convert CRLF to LF during commit and LF to
143 +CRLF during checkout. A file that contains a mixture of LF and
144 +CRLF before the commit cannot be recreated by Git. For text
145 +files this is the right thing to do: it corrects line endings
146 +such that we have only LF line endings in the repository.
147 +But for binary files that are accidentally classified as text the
148 +conversion can corrupt data.
149 ++
150 +If you recognize such corruption early you can easily fix it by
151 +setting the conversion type explicitly in .gitattributes. Right
152 +after committing you still have the original file in your work
153 +tree and this file is not yet corrupted. You can explicitly tell
154 +Git that this file is binary and Git will handle the file
155 +appropriately.
156 ++
157 +Unfortunately, the desired effect of cleaning up text files with
158 +mixed line endings and the undesired effect of corrupting binary
159 +files cannot be distinguished. In both cases CRLFs are removed
160 +in an irreversible way. For text files this is the right thing
161 +to do because CRLFs are line endings, while for binary files
162 +converting CRLFs corrupts data.
163 ++
164 +Note, this safety check does not mean that a checkout will generate a
165 +file identical to the original file for a different setting of
166 +`core.eol` and `core.autocrlf`, but only for the current one. For
167 +example, a text file with `LF` would be accepted with `core.eol=lf`
168 +and could later be checked out with `core.eol=crlf`, in which case the
169 +resulting file would contain `CRLF`, although the original file
170 +contained `LF`. However, in both work trees the line endings would be
171 +consistent, that is either all `LF` or all `CRLF`, but never mixed. A
172 +file with mixed line endings would be reported by the `core.safecrlf`
173 +mechanism.
174 +
175 +core.autocrlf::
176 + Setting this variable to "true" is the same as setting
177 + the `text` attribute to "auto" on all files and core.eol to "crlf".
178 + Set to true if you want to have `CRLF` line endings in your
179 + working directory and the repository has LF line endings.
180 + This variable can be set to 'input',
181 + in which case no output conversion is performed.
182 +
183 +core.checkRoundtripEncoding::
184 + A comma and/or whitespace separated list of encodings that Git
185 + performs UTF-8 round trip checks on if they are used in an
186 + `working-tree-encoding` attribute (see linkgit:gitattributes[5]).
187 + The default value is `SHIFT-JIS`.
188 +
189 +core.symlinks::
190 + If false, symbolic links are checked out as small plain files that
191 + contain the link text. linkgit:git-update-index[1] and
192 + linkgit:git-add[1] will not change the recorded type to regular
193 + file. Useful on filesystems like FAT that do not support
194 + symbolic links.
195 ++
196 +The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
197 +will probe and set core.symlinks false if appropriate when the repository
198 +is created.
199 +
200 +core.gitProxy::
201 + A "proxy command" to execute (as 'command host port') instead
202 + of establishing direct connection to the remote server when
203 + using the Git protocol for fetching. If the variable value is
204 + in the "COMMAND for DOMAIN" format, the command is applied only
205 + on hostnames ending with the specified domain string. This variable
206 + may be set multiple times and is matched in the given order;
207 + the first match wins.
208 ++
209 +Can be overridden by the `GIT_PROXY_COMMAND` environment variable
210 +(which always applies universally, without the special "for"
211 +handling).
212 ++
213 +The special string `none` can be used as the proxy command to
214 +specify that no proxy be used for a given domain pattern.
215 +This is useful for excluding servers inside a firewall from
216 +proxy use, while defaulting to a common proxy for external domains.
217 +
218 +core.sshCommand::
219 + If this variable is set, `git fetch` and `git push` will
220 + use the specified command instead of `ssh` when they need to
221 + connect to a remote system. The command is in the same form as
222 + the `GIT_SSH_COMMAND` environment variable and is overridden
223 + when the environment variable is set.
224 +
225 +core.ignoreStat::
226 + If true, Git will avoid using lstat() calls to detect if files have
227 + changed by setting the "assume-unchanged" bit for those tracked files
228 + which it has updated identically in both the index and working tree.
229 ++
230 +When files are modified outside of Git, the user will need to stage
231 +the modified files explicitly (e.g. see 'Examples' section in
232 +linkgit:git-update-index[1]).
233 +Git will not normally detect changes to those files.
234 ++
235 +This is useful on systems where lstat() calls are very slow, such as
236 +CIFS/Microsoft Windows.
237 ++
238 +False by default.
239 +
240 +core.preferSymlinkRefs::
241 + Instead of the default "symref" format for HEAD
242 + and other symbolic reference files, use symbolic links.
243 + This is sometimes needed to work with old scripts that
244 + expect HEAD to be a symbolic link.
245 +
246 +core.alternateRefsCommand::
247 + When advertising tips of available history from an alternate, use the shell to
248 + execute the specified command instead of linkgit:git-for-each-ref[1]. The
249 + first argument is the absolute path of the alternate. Output must contain one
250 + hex object id per line (i.e., the same as produce by `git for-each-ref
251 + --format='%(objectname)'`).
252 ++
253 +Note that you cannot generally put `git for-each-ref` directly into the config
254 +value, as it does not take a repository path as an argument (but you can wrap
255 +the command above in a shell script).
256 +
257 +core.alternateRefsPrefixes::
258 + When listing references from an alternate, list only references that begin
259 + with the given prefix. Prefixes match as if they were given as arguments to
260 + linkgit:git-for-each-ref[1]. To list multiple prefixes, separate them with
261 + whitespace. If `core.alternateRefsCommand` is set, setting
262 + `core.alternateRefsPrefixes` has no effect.
263 +
264 +core.bare::
265 + If true this repository is assumed to be 'bare' and has no
266 + working directory associated with it. If this is the case a
267 + number of commands that require a working directory will be
268 + disabled, such as linkgit:git-add[1] or linkgit:git-merge[1].
269 ++
270 +This setting is automatically guessed by linkgit:git-clone[1] or
271 +linkgit:git-init[1] when the repository was created. By default a
272 +repository that ends in "/.git" is assumed to be not bare (bare =
273 +false), while all other repositories are assumed to be bare (bare
274 += true).
275 +
276 +core.worktree::
277 + Set the path to the root of the working tree.
278 + If `GIT_COMMON_DIR` environment variable is set, core.worktree
279 + is ignored and not used for determining the root of working tree.
280 + This can be overridden by the `GIT_WORK_TREE` environment
281 + variable and the `--work-tree` command-line option.
282 + The value can be an absolute path or relative to the path to
283 + the .git directory, which is either specified by --git-dir
284 + or GIT_DIR, or automatically discovered.
285 + If --git-dir or GIT_DIR is specified but none of
286 + --work-tree, GIT_WORK_TREE and core.worktree is specified,
287 + the current working directory is regarded as the top level
288 + of your working tree.
289 ++
290 +Note that this variable is honored even when set in a configuration
291 +file in a ".git" subdirectory of a directory and its value differs
292 +from the latter directory (e.g. "/path/to/.git/config" has
293 +core.worktree set to "/different/path"), which is most likely a
294 +misconfiguration. Running Git commands in the "/path/to" directory will
295 +still use "/different/path" as the root of the work tree and can cause
296 +confusion unless you know what you are doing (e.g. you are creating a
297 +read-only snapshot of the same index to a location different from the
298 +repository's usual working tree).
299 +
300 +core.logAllRefUpdates::
301 + Enable the reflog. Updates to a ref <ref> is logged to the file
302 + "`$GIT_DIR/logs/<ref>`", by appending the new and old
303 + SHA-1, the date/time and the reason of the update, but
304 + only when the file exists. If this configuration
305 + variable is set to `true`, missing "`$GIT_DIR/logs/<ref>`"
306 + file is automatically created for branch heads (i.e. under
307 + `refs/heads/`), remote refs (i.e. under `refs/remotes/`),
308 + note refs (i.e. under `refs/notes/`), and the symbolic ref `HEAD`.
309 + If it is set to `always`, then a missing reflog is automatically
310 + created for any ref under `refs/`.
311 ++
312 +This information can be used to determine what commit
313 +was the tip of a branch "2 days ago".
314 ++
315 +This value is true by default in a repository that has
316 +a working directory associated with it, and false by
317 +default in a bare repository.
318 +
319 +core.repositoryFormatVersion::
320 + Internal variable identifying the repository format and layout
321 + version.
322 +
323 +core.sharedRepository::
324 + When 'group' (or 'true'), the repository is made shareable between
325 + several users in a group (making sure all the files and objects are
326 + group-writable). When 'all' (or 'world' or 'everybody'), the
327 + repository will be readable by all users, additionally to being
328 + group-shareable. When 'umask' (or 'false'), Git will use permissions
329 + reported by umask(2). When '0xxx', where '0xxx' is an octal number,
330 + files in the repository will have this mode value. '0xxx' will override
331 + user's umask value (whereas the other options will only override
332 + requested parts of the user's umask value). Examples: '0660' will make
333 + the repo read/write-able for the owner and group, but inaccessible to
334 + others (equivalent to 'group' unless umask is e.g. '0022'). '0640' is a
335 + repository that is group-readable but not group-writable.
336 + See linkgit:git-init[1]. False by default.
337 +
338 +core.warnAmbiguousRefs::
339 + If true, Git will warn you if the ref name you passed it is ambiguous
340 + and might match multiple refs in the repository. True by default.
341 +
342 +core.compression::
343 + An integer -1..9, indicating a default compression level.
344 + -1 is the zlib default. 0 means no compression,
345 + and 1..9 are various speed/size tradeoffs, 9 being slowest.
346 + If set, this provides a default to other compression variables,
347 + such as `core.looseCompression` and `pack.compression`.
348 +
349 +core.looseCompression::
350 + An integer -1..9, indicating the compression level for objects that
351 + are not in a pack file. -1 is the zlib default. 0 means no
352 + compression, and 1..9 are various speed/size tradeoffs, 9 being
353 + slowest. If not set, defaults to core.compression. If that is
354 + not set, defaults to 1 (best speed).
355 +
356 +core.packedGitWindowSize::
357 + Number of bytes of a pack file to map into memory in a
358 + single mapping operation. Larger window sizes may allow
359 + your system to process a smaller number of large pack files
360 + more quickly. Smaller window sizes will negatively affect
361 + performance due to increased calls to the operating system's
362 + memory manager, but may improve performance when accessing
363 + a large number of large pack files.
364 ++
365 +Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
366 +MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
367 +be reasonable for all users/operating systems. You probably do
368 +not need to adjust this value.
369 ++
370 +Common unit suffixes of 'k', 'm', or 'g' are supported.
371 +
372 +core.packedGitLimit::
373 + Maximum number of bytes to map simultaneously into memory
374 + from pack files. If Git needs to access more than this many
375 + bytes at once to complete an operation it will unmap existing
376 + regions to reclaim virtual address space within the process.
377 ++
378 +Default is 256 MiB on 32 bit platforms and 32 TiB (effectively
379 +unlimited) on 64 bit platforms.
380 +This should be reasonable for all users/operating systems, except on
381 +the largest projects. You probably do not need to adjust this value.
382 ++
383 +Common unit suffixes of 'k', 'm', or 'g' are supported.
384 +
385 +core.deltaBaseCacheLimit::
386 + Maximum number of bytes to reserve for caching base objects
387 + that may be referenced by multiple deltified objects. By storing the
388 + entire decompressed base objects in a cache Git is able
389 + to avoid unpacking and decompressing frequently used base
390 + objects multiple times.
391 ++
392 +Default is 96 MiB on all platforms. This should be reasonable
393 +for all users/operating systems, except on the largest projects.
394 +You probably do not need to adjust this value.
395 ++
396 +Common unit suffixes of 'k', 'm', or 'g' are supported.
397 +
398 +core.bigFileThreshold::
399 + Files larger than this size are stored deflated, without
400 + attempting delta compression. Storing large files without
401 + delta compression avoids excessive memory usage, at the
402 + slight expense of increased disk usage. Additionally files
403 + larger than this size are always treated as binary.
404 ++
405 +Default is 512 MiB on all platforms. This should be reasonable
406 +for most projects as source code and other text files can still
407 +be delta compressed, but larger binary media files won't be.
408 ++
409 +Common unit suffixes of 'k', 'm', or 'g' are supported.
410 +
411 +core.excludesFile::
412 + Specifies the pathname to the file that contains patterns to
413 + describe paths that are not meant to be tracked, in addition
414 + to '.gitignore' (per-directory) and '.git/info/exclude'.
415 + Defaults to `$XDG_CONFIG_HOME/git/ignore`.
416 + If `$XDG_CONFIG_HOME` is either not set or empty, `$HOME/.config/git/ignore`
417 + is used instead. See linkgit:gitignore[5].
418 +
419 +core.askPass::
420 + Some commands (e.g. svn and http interfaces) that interactively
421 + ask for a password can be told to use an external program given
422 + via the value of this variable. Can be overridden by the `GIT_ASKPASS`
423 + environment variable. If not set, fall back to the value of the
424 + `SSH_ASKPASS` environment variable or, failing that, a simple password
425 + prompt. The external program shall be given a suitable prompt as
426 + command-line argument and write the password on its STDOUT.
427 +
428 +core.attributesFile::
429 + In addition to '.gitattributes' (per-directory) and
430 + '.git/info/attributes', Git looks into this file for attributes
431 + (see linkgit:gitattributes[5]). Path expansions are made the same
432 + way as for `core.excludesFile`. Its default value is
433 + `$XDG_CONFIG_HOME/git/attributes`. If `$XDG_CONFIG_HOME` is either not
434 + set or empty, `$HOME/.config/git/attributes` is used instead.
435 +
436 +core.hooksPath::
437 + By default Git will look for your hooks in the
438 + '$GIT_DIR/hooks' directory. Set this to different path,
439 + e.g. '/etc/git/hooks', and Git will try to find your hooks in
440 + that directory, e.g. '/etc/git/hooks/pre-receive' instead of
441 + in '$GIT_DIR/hooks/pre-receive'.
442 ++
443 +The path can be either absolute or relative. A relative path is
444 +taken as relative to the directory where the hooks are run (see
445 +the "DESCRIPTION" section of linkgit:githooks[5]).
446 ++
447 +This configuration variable is useful in cases where you'd like to
448 +centrally configure your Git hooks instead of configuring them on a
449 +per-repository basis, or as a more flexible and centralized
450 +alternative to having an `init.templateDir` where you've changed
451 +default hooks.
452 +
453 +core.editor::
454 + Commands such as `commit` and `tag` that let you edit
455 + messages by launching an editor use the value of this
456 + variable when it is set, and the environment variable
457 + `GIT_EDITOR` is not set. See linkgit:git-var[1].
458 +
459 +core.commentChar::
460 + Commands such as `commit` and `tag` that let you edit
461 + messages consider a line that begins with this character
462 + commented, and removes them after the editor returns
463 + (default '#').
464 ++
465 +If set to "auto", `git-commit` would select a character that is not
466 +the beginning character of any line in existing commit messages.
467 +
468 +core.filesRefLockTimeout::
469 + The length of time, in milliseconds, to retry when trying to
470 + lock an individual reference. Value 0 means not to retry at
471 + all; -1 means to try indefinitely. Default is 100 (i.e.,
472 + retry for 100ms).
473 +
474 +core.packedRefsTimeout::
475 + The length of time, in milliseconds, to retry when trying to
476 + lock the `packed-refs` file. Value 0 means not to retry at
477 + all; -1 means to try indefinitely. Default is 1000 (i.e.,
478 + retry for 1 second).
479 +
480 +core.pager::
481 + Text viewer for use by Git commands (e.g., 'less'). The value
482 + is meant to be interpreted by the shell. The order of preference
483 + is the `$GIT_PAGER` environment variable, then `core.pager`
484 + configuration, then `$PAGER`, and then the default chosen at
485 + compile time (usually 'less').
486 ++
487 +When the `LESS` environment variable is unset, Git sets it to `FRX`
488 +(if `LESS` environment variable is set, Git does not change it at
489 +all). If you want to selectively override Git's default setting
490 +for `LESS`, you can set `core.pager` to e.g. `less -S`. This will
491 +be passed to the shell by Git, which will translate the final
492 +command to `LESS=FRX less -S`. The environment does not set the
493 +`S` option but the command line does, instructing less to truncate
494 +long lines. Similarly, setting `core.pager` to `less -+F` will
495 +deactivate the `F` option specified by the environment from the
496 +command-line, deactivating the "quit if one screen" behavior of
497 +`less`. One can specifically activate some flags for particular
498 +commands: for example, setting `pager.blame` to `less -S` enables
499 +line truncation only for `git blame`.
500 ++
501 +Likewise, when the `LV` environment variable is unset, Git sets it
502 +to `-c`. You can override this setting by exporting `LV` with
503 +another value or setting `core.pager` to `lv +c`.
504 +
505 +core.whitespace::
506 + A comma separated list of common whitespace problems to
507 + notice. 'git diff' will use `color.diff.whitespace` to
508 + highlight them, and 'git apply --whitespace=error' will
509 + consider them as errors. You can prefix `-` to disable
510 + any of them (e.g. `-trailing-space`):
511 ++
512 +* `blank-at-eol` treats trailing whitespaces at the end of the line
513 + as an error (enabled by default).
514 +* `space-before-tab` treats a space character that appears immediately
515 + before a tab character in the initial indent part of the line as an
516 + error (enabled by default).
517 +* `indent-with-non-tab` treats a line that is indented with space
518 + characters instead of the equivalent tabs as an error (not enabled by
519 + default).
520 +* `tab-in-indent` treats a tab character in the initial indent part of
521 + the line as an error (not enabled by default).
522 +* `blank-at-eof` treats blank lines added at the end of file as an error
523 + (enabled by default).
524 +* `trailing-space` is a short-hand to cover both `blank-at-eol` and
525 + `blank-at-eof`.
526 +* `cr-at-eol` treats a carriage-return at the end of line as
527 + part of the line terminator, i.e. with it, `trailing-space`
528 + does not trigger if the character before such a carriage-return
529 + is not a whitespace (not enabled by default).
530 +* `tabwidth=<n>` tells how many character positions a tab occupies; this
531 + is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent`
532 + errors. The default tab width is 8. Allowed values are 1 to 63.
533 +
534 +core.fsyncObjectFiles::
535 + This boolean will enable 'fsync()' when writing object files.
536 ++
537 +This is a total waste of time and effort on a filesystem that orders
538 +data writes properly, but can be useful for filesystems that do not use
539 +journalling (traditional UNIX filesystems) or that only journal metadata
540 +and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").
541 +
542 +core.preloadIndex::
543 + Enable parallel index preload for operations like 'git diff'
544 ++
545 +This can speed up operations like 'git diff' and 'git status' especially
546 +on filesystems like NFS that have weak caching semantics and thus
547 +relatively high IO latencies. When enabled, Git will do the
548 +index comparison to the filesystem data in parallel, allowing
549 +overlapping IO's. Defaults to true.
550 +
551 +core.createObject::
552 + You can set this to 'link', in which case a hardlink followed by
553 + a delete of the source are used to make sure that object creation
554 + will not overwrite existing objects.
555 ++
556 +On some file system/operating system combinations, this is unreliable.
557 +Set this config setting to 'rename' there; However, This will remove the
558 +check that makes sure that existing object files will not get overwritten.
559 +
560 +core.notesRef::
561 + When showing commit messages, also show notes which are stored in
562 + the given ref. The ref must be fully qualified. If the given
563 + ref does not exist, it is not an error but means that no
564 + notes should be printed.
565 ++
566 +This setting defaults to "refs/notes/commits", and it can be overridden by
567 +the `GIT_NOTES_REF` environment variable. See linkgit:git-notes[1].
568 +
569 +core.commitGraph::
570 + If true, then git will read the commit-graph file (if it exists)
571 + to parse the graph structure of commits. Defaults to false. See
572 + linkgit:git-commit-graph[1] for more information.
573 +
574 +core.useReplaceRefs::
575 + If set to `false`, behave as if the `--no-replace-objects`
576 + option was given on the command line. See linkgit:git[1] and
577 + linkgit:git-replace[1] for more information.
578 +
579 +core.multiPackIndex::
580 + Use the multi-pack-index file to track multiple packfiles using a
581 + single index. See link:technical/multi-pack-index.html[the
582 + multi-pack-index design document].
583 +
584 +core.sparseCheckout::
585 + Enable "sparse checkout" feature. See section "Sparse checkout" in
586 + linkgit:git-read-tree[1] for more information.
587 +
588 +core.abbrev::
589 + Set the length object names are abbreviated to. If
590 + unspecified or set to "auto", an appropriate value is
591 + computed based on the approximate number of packed objects
592 + in your repository, which hopefully is enough for
593 + abbreviated object names to stay unique for some time.
594 + The minimum length is 4.