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.