1GIT-CONFIG(1)                     Git Manual                     GIT-CONFIG(1)
2
3
4

NAME

6       git-config - Get and set repository or global options
7

SYNOPSIS

9       git config [<file-option>] [type] [-z|--null] name [value [value_regex]]
10       git config [<file-option>] [type] --add name value
11       git config [<file-option>] [type] --replace-all name value [value_regex]
12       git config [<file-option>] [type] [-z|--null] --get name [value_regex]
13       git config [<file-option>] [type] [-z|--null] --get-all name [value_regex]
14       git config [<file-option>] [type] [-z|--null] --get-regexp name_regex [value_regex]
15       git config [<file-option>] --unset name [value_regex]
16       git config [<file-option>] --unset-all name [value_regex]
17       git config [<file-option>] --rename-section old_name new_name
18       git config [<file-option>] --remove-section name
19       git config [<file-option>] [-z|--null] -l | --list
20       git config [<file-option>] --get-color name [default]
21       git config [<file-option>] --get-colorbool name [stdout-is-tty]
22       git config [<file-option>] -e | --edit
23
24

DESCRIPTION

26       You can query/set/replace/unset options with this command. The name is
27       actually the section and the key separated by a dot, and the value will
28       be escaped.
29
30       Multiple lines can be added to an option by using the --add option. If
31       you want to update or unset an option which can occur on multiple
32       lines, a POSIX regexp value_regex needs to be given. Only the existing
33       values that match the regexp are updated or unset. If you want to
34       handle the lines that do not match the regex, just prepend a single
35       exclamation mark in front (see also the section called “EXAMPLES”).
36
37       The type specifier can be either --int or --bool, to make git config
38       ensure that the variable(s) are of the given type and convert the value
39       to the canonical form (simple decimal number for int, a "true" or
40       "false" string for bool), or --path, which does some path expansion
41       (see --path below). If no type specifier is passed, no checks or
42       transformations are performed on the value.
43
44       When reading, the values are read from the system, global and
45       repository local configuration files by default, and options --system,
46       --global, --local and --file <filename> can be used to tell the command
47       to read from only that location (see the section called “FILES”).
48
49       When writing, the new value is written to the repository local
50       configuration file by default, and options --system, --global, --file
51       <filename> can be used to tell the command to write to that location
52       (you can say --local but that is the default).
53
54       This command will fail with non-zero status upon error. Some exit codes
55       are:
56
57        1. The config file is invalid (ret=3),
58
59        2. can not write to the config file (ret=4),
60
61        3. no section or name was provided (ret=2),
62
63        4. the section or key is invalid (ret=1),
64
65        5. you try to unset an option which does not exist (ret=5),
66
67        6. you try to unset/set an option for which multiple lines match
68           (ret=5), or
69
70        7. you try to use an invalid regexp (ret=6).
71
72       On success, the command returns the exit code 0.
73

OPTIONS

75       --replace-all
76           Default behavior is to replace at most one line. This replaces all
77           lines matching the key (and optionally the value_regex).
78
79       --add
80           Adds a new line to the option without altering any existing values.
81           This is the same as providing ^$ as the value_regex in
82           --replace-all.
83
84       --get
85           Get the value for a given key (optionally filtered by a regex
86           matching the value). Returns error code 1 if the key was not found
87           and error code 2 if multiple key values were found.
88
89       --get-all
90           Like get, but does not fail if the number of values for the key is
91           not exactly one.
92
93       --get-regexp
94           Like --get-all, but interprets the name as a regular expression and
95           writes out the key names. Regular expression matching is currently
96           case-sensitive and done against a canonicalized version of the key
97           in which section and variable names are lowercased, but subsection
98           names are not.
99
100       --global
101           For writing options: write to global /.gitconfig file rather than
102           the repository .git/config, write to $XDG_CONFIG_HOME/git/config
103           file if this file exists and the/.gitconfig file doesn’t.
104
105           For reading options: read only from global ~/.gitconfig and from
106           $XDG_CONFIG_HOME/git/config rather than from all available files.
107
108           See also the section called “FILES”.
109
110       --system
111           For writing options: write to system-wide $(prefix)/etc/gitconfig
112           rather than the repository .git/config.
113
114           For reading options: read only from system-wide
115           $(prefix)/etc/gitconfig rather than from all available files.
116
117           See also the section called “FILES”.
118
119       -f config-file, --file config-file
120           Use the given config file instead of the one specified by
121           GIT_CONFIG.
122
123       --blob blob
124           Similar to --file but use the given blob instead of a file. E.g.
125           you can use master:.gitmodules to read values from the file
126           .gitmodules in the master branch. See "SPECIFYING REVISIONS"
127           section in gitrevisions(7) for a more complete list of ways to
128           spell blob names.
129
130       --remove-section
131           Remove the given section from the configuration file.
132
133       --rename-section
134           Rename the given section to a new name.
135
136       --unset
137           Remove the line matching the key from config file.
138
139       --unset-all
140           Remove all lines matching the key from config file.
141
142       -l, --list
143           List all variables set in config file.
144
145       --bool
146           git config will ensure that the output is "true" or "false"
147
148       --int
149           git config will ensure that the output is a simple decimal number.
150           An optional value suffix of k, m, or g in the config file will
151           cause the value to be multiplied by 1024, 1048576, or 1073741824
152           prior to output.
153
154       --bool-or-int
155           git config will ensure that the output matches the format of either
156           --bool or --int, as described above.
157
158       --path
159           git-config will expand leading ~ to the value of $HOME, and ~user
160           to the home directory for the specified user. This option has no
161           effect when setting the value (but you can use git config bla ~/
162           from the command line to let your shell do the expansion).
163
164       -z, --null
165           For all options that output values and/or keys, always end values
166           with the null character (instead of a newline). Use newline instead
167           as a delimiter between key and value. This allows for secure
168           parsing of the output without getting confused e.g. by values that
169           contain line breaks.
170
171       --get-colorbool name [stdout-is-tty]
172           Find the color setting for name (e.g.  color.diff) and output
173           "true" or "false".  stdout-is-tty should be either "true" or
174           "false", and is taken into account when configuration says "auto".
175           If stdout-is-tty is missing, then checks the standard output of the
176           command itself, and exits with status 0 if color is to be used, or
177           exits with status 1 otherwise. When the color setting for name is
178           undefined, the command uses color.ui as fallback.
179
180       --get-color name [default]
181           Find the color configured for name (e.g.  color.diff.new) and
182           output it as the ANSI color escape sequence to the standard output.
183           The optional default parameter is used instead, if there is no
184           color configured for name.
185
186       -e, --edit
187           Opens an editor to modify the specified config file; either
188           --system, --global, or repository (default).
189
190       --[no-]includes
191           Respect include.*  directives in config files when looking up
192           values. Defaults to on.
193

FILES

195       If not set explicitly with --file, there are four files where git
196       config will search for configuration options:
197
198       $GIT_DIR/config
199           Repository specific configuration file.
200
201       ~/.gitconfig
202           User-specific configuration file. Also called "global"
203           configuration file.
204
205       $XDG_CONFIG_HOME/git/config
206           Second user-specific configuration file. If $XDG_CONFIG_HOME is not
207           set or empty, $HOME/.config/git/config will be used. Any
208           single-valued variable set in this file will be overwritten by
209           whatever is in ~/.gitconfig. It is a good idea not to create this
210           file if you sometimes use older versions of Git, as support for
211           this file was added fairly recently.
212
213       $(prefix)/etc/gitconfig
214           System-wide configuration file.
215
216       If no further options are given, all reading options will read all of
217       these files that are available. If the global or the system-wide
218       configuration file are not available they will be ignored. If the
219       repository configuration file is not available or readable, git config
220       will exit with a non-zero error code. However, in neither case will an
221       error message be issued.
222
223       All writing options will per default write to the repository specific
224       configuration file. Note that this also affects options like
225       --replace-all and --unset. git config will only ever change one file at
226       a time.
227
228       You can override these rules either by command line options or by
229       environment variables. The --global and the --system options will limit
230       the file used to the global or system-wide file respectively. The
231       GIT_CONFIG environment variable has a similar effect, but you can
232       specify any filename you want.
233

ENVIRONMENT

235       GIT_CONFIG
236           Take the configuration from the given file instead of .git/config.
237           Using the "--global" option forces this to ~/.gitconfig. Using the
238           "--system" option forces this to $(prefix)/etc/gitconfig.
239
240       GIT_CONFIG_NOSYSTEM
241           Whether to skip reading settings from the system-wide
242           $(prefix)/etc/gitconfig file. See git(1) for details.
243
244       See also the section called “FILES”.
245

EXAMPLES

247       Given a .git/config like this:
248
249           #
250           # This is the config file, and
251           # a '#' or ';' character indicates
252           # a comment
253           #
254
255           ; core variables
256           [core]
257                   ; Don't trust file modes
258                   filemode = false
259
260           ; Our diff algorithm
261           [diff]
262                   external = /usr/local/bin/diff-wrapper
263                   renames = true
264
265           ; Proxy settings
266           [core]
267                   gitproxy=proxy-command for kernel.org
268                   gitproxy=default-proxy ; for all the rest
269
270       you can set the filemode to true with
271
272           % git config core.filemode true
273
274
275       The hypothetical proxy command entries actually have a postfix to
276       discern what URL they apply to. Here is how to change the entry for
277       kernel.org to "ssh".
278
279           % git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'
280
281
282       This makes sure that only the key/value pair for kernel.org is
283       replaced.
284
285       To delete the entry for renames, do
286
287           % git config --unset diff.renames
288
289
290       If you want to delete an entry for a multivar (like core.gitproxy
291       above), you have to provide a regex matching the value of exactly one
292       line.
293
294       To query the value for a given key, do
295
296           % git config --get core.filemode
297
298
299       or
300
301           % git config core.filemode
302
303
304       or, to query a multivar:
305
306           % git config --get core.gitproxy "for kernel.org$"
307
308
309       If you want to know all the values for a multivar, do:
310
311           % git config --get-all core.gitproxy
312
313
314       If you like to live dangerously, you can replace all core.gitproxy by a
315       new one with
316
317           % git config --replace-all core.gitproxy ssh
318
319
320       However, if you really only want to replace the line for the default
321       proxy, i.e. the one without a "for ..." postfix, do something like
322       this:
323
324           % git config core.gitproxy ssh '! for '
325
326
327       To actually match only values with an exclamation mark, you have to
328
329           % git config section.key value '[!]'
330
331
332       To add a new proxy, without altering any of the existing ones, use
333
334           % git config --add core.gitproxy '"proxy-command" for example.com'
335
336
337       An example to use customized color from the configuration in your
338       script:
339
340           #!/bin/sh
341           WS=$(git config --get-color color.diff.whitespace "blue reverse")
342           RESET=$(git config --get-color "" "reset")
343           echo "${WS}your whitespace color or blue reverse${RESET}"
344
345

CONFIGURATION FILE

347       The Git configuration file contains a number of variables that affect
348       the Git commands' behavior. The .git/config file in each repository is
349       used to store the configuration for that repository, and
350       $HOME/.gitconfig is used to store a per-user configuration as fallback
351       values for the .git/config file. The file /etc/gitconfig can be used to
352       store a system-wide default configuration.
353
354       The configuration variables are used by both the Git plumbing and the
355       porcelains. The variables are divided into sections, wherein the fully
356       qualified variable name of the variable itself is the last
357       dot-separated segment and the section name is everything before the
358       last dot. The variable names are case-insensitive, allow only
359       alphanumeric characters and -, and must start with an alphabetic
360       character. Some variables may appear multiple times.
361
362   Syntax
363       The syntax is fairly flexible and permissive; whitespaces are mostly
364       ignored. The # and ; characters begin comments to the end of line,
365       blank lines are ignored.
366
367       The file consists of sections and variables. A section begins with the
368       name of the section in square brackets and continues until the next
369       section begins. Section names are not case sensitive. Only alphanumeric
370       characters, - and . are allowed in section names. Each variable must
371       belong to some section, which means that there must be a section header
372       before the first setting of a variable.
373
374       Sections can be further divided into subsections. To begin a subsection
375       put its name in double quotes, separated by space from the section
376       name, in the section header, like in the example below:
377
378                   [section "subsection"]
379
380
381       Subsection names are case sensitive and can contain any characters
382       except newline (doublequote " and backslash have to be escaped as \"
383       and \\, respectively). Section headers cannot span multiple lines.
384       Variables may belong directly to a section or to a given subsection.
385       You can have [section] if you have [section "subsection"], but you
386       don’t need to.
387
388       There is also a deprecated [section.subsection] syntax. With this
389       syntax, the subsection name is converted to lower-case and is also
390       compared case sensitively. These subsection names follow the same
391       restrictions as section names.
392
393       All the other lines (and the remainder of the line after the section
394       header) are recognized as setting variables, in the form name = value.
395       If there is no equal sign on the line, the entire line is taken as name
396       and the variable is recognized as boolean "true". The variable names
397       are case-insensitive, allow only alphanumeric characters and -, and
398       must start with an alphabetic character. There can be more than one
399       value for a given variable; we say then that the variable is
400       multivalued.
401
402       Leading and trailing whitespace in a variable value is discarded.
403       Internal whitespace within a variable value is retained verbatim.
404
405       The values following the equals sign in variable assign are all either
406       a string, an integer, or a boolean. Boolean values may be given as
407       yes/no, 1/0, true/false or on/off. Case is not significant in boolean
408       values, when converting value to the canonical form using --bool type
409       specifier; git config will ensure that the output is "true" or "false".
410
411       String values may be entirely or partially enclosed in double quotes.
412       You need to enclose variable values in double quotes if you want to
413       preserve leading or trailing whitespace, or if the variable value
414       contains comment characters (i.e. it contains # or ;). Double quote "
415       and backslash \ characters in variable values must be escaped: use \"
416       for " and \\ for \.
417
418       The following escape sequences (beside \" and \\) are recognized: \n
419       for newline character (NL), \t for horizontal tabulation (HT, TAB) and
420       \b for backspace (BS). No other char escape sequence, nor octal char
421       sequences are valid.
422
423       Variable values ending in a \ are continued on the next line in the
424       customary UNIX fashion.
425
426       Some variables may require a special value format.
427
428   Includes
429       You can include one config file from another by setting the special
430       include.path variable to the name of the file to be included. The
431       included file is expanded immediately, as if its contents had been
432       found at the location of the include directive. If the value of the
433       include.path variable is a relative path, the path is considered to be
434       relative to the configuration file in which the include directive was
435       found. The value of include.path is subject to tilde expansion: ~/ is
436       expanded to the value of $HOME, and ~user/ to the specified user’s home
437       directory. See below for examples.
438
439   Example
440           # Core variables
441           [core]
442                   ; Don't trust file modes
443                   filemode = false
444
445           # Our diff algorithm
446           [diff]
447                   external = /usr/local/bin/diff-wrapper
448                   renames = true
449
450           [branch "devel"]
451                   remote = origin
452                   merge = refs/heads/devel
453
454           # Proxy settings
455           [core]
456                   gitProxy="ssh" for "kernel.org"
457                   gitProxy=default-proxy ; for the rest
458
459           [include]
460                   path = /path/to/foo.inc ; include by absolute path
461                   path = foo ; expand "foo" relative to the current file
462                   path = ~/foo ; expand "foo" in your $HOME directory
463
464   Variables
465       Note that this list is non-comprehensive and not necessarily complete.
466       For command-specific variables, you will find a more detailed
467       description in the appropriate manual page. You will find a description
468       of non-core porcelain configuration variables in the respective
469       porcelain documentation.
470
471       advice.*
472           These variables control various optional help messages designed to
473           aid new users. All advice.*  variables default to true, and you can
474           tell Git that you do not need help by setting these to false:
475
476           pushUpdateRejected
477               Set this variable to false if you want to disable
478               pushNonFFCurrent, pushNonFFDefault, pushNonFFMatching,
479               pushAlreadyExists, pushFetchFirst, and pushNeedsForce
480               simultaneously.
481
482           pushNonFFCurrent
483               Advice shown when git-push(1) fails due to a non-fast-forward
484               update to the current branch.
485
486           pushNonFFDefault
487               Advice to set push.default to upstream or current when you ran
488               git-push(1) and pushed matching refs by default (i.e. you did
489               not provide an explicit refspec, and no push.default
490               configuration was set) and it resulted in a non-fast-forward
491               error.
492
493           pushNonFFMatching
494               Advice shown when you ran git-push(1) and pushed matching refs
495               explicitly (i.e. you used :, or specified a refspec that isn’t
496               your current branch) and it resulted in a non-fast-forward
497               error.
498
499           pushAlreadyExists
500               Shown when git-push(1) rejects an update that does not qualify
501               for fast-forwarding (e.g., a tag.)
502
503           pushFetchFirst
504               Shown when git-push(1) rejects an update that tries to
505               overwrite a remote ref that points at an object we do not have.
506
507           pushNeedsForce
508               Shown when git-push(1) rejects an update that tries to
509               overwrite a remote ref that points at an object that is not a
510               committish, or make the remote ref point at an object that is
511               not a committish.
512
513           statusHints
514               Show directions on how to proceed from the current state in the
515               output of git-status(1), in the template shown when writing
516               commit messages in git-commit(1), and in the help message shown
517               by git-checkout(1) when switching branch.
518
519           statusUoption
520               Advise to consider using the -u option to git-status(1) when
521               the command takes more than 2 seconds to enumerate untracked
522               files.
523
524           commitBeforeMerge
525               Advice shown when git-merge(1) refuses to merge to avoid
526               overwriting local changes.
527
528           resolveConflict
529               Advice shown by various commands when conflicts prevent the
530               operation from being performed.
531
532           implicitIdentity
533               Advice on how to set your identity configuration when your
534               information is guessed from the system username and domain
535               name.
536
537           detachedHead
538               Advice shown when you used git-checkout(1) to move to the
539               detach HEAD state, to instruct how to create a local branch
540               after the fact.
541
542           amWorkDir
543               Advice that shows the location of the patch file when git-am(1)
544               fails to apply it.
545
546       core.fileMode
547           If false, the executable bit differences between the index and the
548           working tree are ignored; useful on broken filesystems like FAT.
549           See git-update-index(1).
550
551           The default is true, except git-clone(1) or git-init(1) will probe
552           and set core.fileMode false if appropriate when the repository is
553           created.
554
555       core.ignoreCygwinFSTricks
556           This option is only used by Cygwin implementation of Git. If false,
557           the Cygwin stat() and lstat() functions are used. This may be
558           useful if your repository consists of a few separate directories
559           joined in one hierarchy using Cygwin mount. If true, Git uses
560           native Win32 API whenever it is possible and falls back to Cygwin
561           functions only to handle symbol links. The native mode is more than
562           twice faster than normal Cygwin l/stat() functions. True by
563           default, unless core.filemode is true, in which case
564           ignoreCygwinFSTricks is ignored as Cygwin’s POSIX emulation is
565           required to support core.filemode.
566
567       core.ignorecase
568           If true, this option enables various workarounds to enable Git to
569           work better on filesystems that are not case sensitive, like FAT.
570           For example, if a directory listing finds "makefile" when Git
571           expects "Makefile", Git will assume it is really the same file, and
572           continue to remember it as "Makefile".
573
574           The default is false, except git-clone(1) or git-init(1) will probe
575           and set core.ignorecase true if appropriate when the repository is
576           created.
577
578       core.precomposeunicode
579           This option is only used by Mac OS implementation of Git. When
580           core.precomposeunicode=true, Git reverts the unicode decomposition
581           of filenames done by Mac OS. This is useful when sharing a
582           repository between Mac OS and Linux or Windows. (Git for Windows
583           1.7.10 or higher is needed, or Git under cygwin 1.7). When false,
584           file names are handled fully transparent by Git, which is backward
585           compatible with older versions of Git.
586
587       core.trustctime
588           If false, the ctime differences between the index and the working
589           tree are ignored; useful when the inode change time is regularly
590           modified by something outside Git (file system crawlers and some
591           backup systems). See git-update-index(1). True by default.
592
593       core.checkstat
594           Determines which stat fields to match between the index and work
595           tree. The user can set this to default or minimal. Default (or
596           explicitly default), is to check all fields, including the
597           sub-second part of mtime and ctime.
598
599       core.quotepath
600           The commands that output paths (e.g.  ls-files, diff), when not
601           given the -z option, will quote "unusual" characters in the
602           pathname by enclosing the pathname in a double-quote pair and with
603           backslashes the same way strings in C source code are quoted. If
604           this variable is set to false, the bytes higher than 0x80 are not
605           quoted but output as verbatim. Note that double quote, backslash
606           and control characters are always quoted without -z regardless of
607           the setting of this variable.
608
609       core.eol
610           Sets the line ending type to use in the working directory for files
611           that have the text property set. Alternatives are lf, crlf and
612           native, which uses the platform’s native line ending. The default
613           value is native. See gitattributes(5) for more information on
614           end-of-line conversion.
615
616       core.safecrlf
617           If true, makes Git check if converting CRLF is reversible when
618           end-of-line conversion is active. Git will verify if a command
619           modifies a file in the work tree either directly or indirectly. For
620           example, committing a file followed by checking out the same file
621           should yield the original file in the work tree. If this is not the
622           case for the current setting of core.autocrlf, Git will reject the
623           file. The variable can be set to "warn", in which case Git will
624           only warn about an irreversible conversion but continue the
625           operation.
626
627           CRLF conversion bears a slight chance of corrupting data. When it
628           is enabled, Git will convert CRLF to LF during commit and LF to
629           CRLF during checkout. A file that contains a mixture of LF and CRLF
630           before the commit cannot be recreated by Git. For text files this
631           is the right thing to do: it corrects line endings such that we
632           have only LF line endings in the repository. But for binary files
633           that are accidentally classified as text the conversion can corrupt
634           data.
635
636           If you recognize such corruption early you can easily fix it by
637           setting the conversion type explicitly in .gitattributes. Right
638           after committing you still have the original file in your work tree
639           and this file is not yet corrupted. You can explicitly tell Git
640           that this file is binary and Git will handle the file
641           appropriately.
642
643           Unfortunately, the desired effect of cleaning up text files with
644           mixed line endings and the undesired effect of corrupting binary
645           files cannot be distinguished. In both cases CRLFs are removed in
646           an irreversible way. For text files this is the right thing to do
647           because CRLFs are line endings, while for binary files converting
648           CRLFs corrupts data.
649
650           Note, this safety check does not mean that a checkout will generate
651           a file identical to the original file for a different setting of
652           core.eol and core.autocrlf, but only for the current one. For
653           example, a text file with LF would be accepted with core.eol=lf and
654           could later be checked out with core.eol=crlf, in which case the
655           resulting file would contain CRLF, although the original file
656           contained LF. However, in both work trees the line endings would be
657           consistent, that is either all LF or all CRLF, but never mixed. A
658           file with mixed line endings would be reported by the core.safecrlf
659           mechanism.
660
661       core.autocrlf
662           Setting this variable to "true" is almost the same as setting the
663           text attribute to "auto" on all files except that text files are
664           not guaranteed to be normalized: files that contain CRLF in the
665           repository will not be touched. Use this setting if you want to
666           have CRLF line endings in your working directory even though the
667           repository does not have normalized line endings. This variable can
668           be set to input, in which case no output conversion is performed.
669
670       core.symlinks
671           If false, symbolic links are checked out as small plain files that
672           contain the link text.  git-update-index(1) and git-add(1) will not
673           change the recorded type to regular file. Useful on filesystems
674           like FAT that do not support symbolic links.
675
676           The default is true, except git-clone(1) or git-init(1) will probe
677           and set core.symlinks false if appropriate when the repository is
678           created.
679
680       core.gitProxy
681           A "proxy command" to execute (as command host port) instead of
682           establishing direct connection to the remote server when using the
683           Git protocol for fetching. If the variable value is in the "COMMAND
684           for DOMAIN" format, the command is applied only on hostnames ending
685           with the specified domain string. This variable may be set multiple
686           times and is matched in the given order; the first match wins.
687
688           Can be overridden by the GIT_PROXY_COMMAND environment variable
689           (which always applies universally, without the special "for"
690           handling).
691
692           The special string none can be used as the proxy command to specify
693           that no proxy be used for a given domain pattern. This is useful
694           for excluding servers inside a firewall from proxy use, while
695           defaulting to a common proxy for external domains.
696
697       core.ignoreStat
698           If true, commands which modify both the working tree and the index
699           will mark the updated paths with the "assume unchanged" bit in the
700           index. These marked files are then assumed to stay unchanged in the
701           working tree, until you mark them otherwise manually - Git will not
702           detect the file changes by lstat() calls. This is useful on systems
703           where those are very slow, such as Microsoft Windows. See git-
704           update-index(1). False by default.
705
706       core.preferSymlinkRefs
707           Instead of the default "symref" format for HEAD and other symbolic
708           reference files, use symbolic links. This is sometimes needed to
709           work with old scripts that expect HEAD to be a symbolic link.
710
711       core.bare
712           If true this repository is assumed to be bare and has no working
713           directory associated with it. If this is the case a number of
714           commands that require a working directory will be disabled, such as
715           git-add(1) or git-merge(1).
716
717           This setting is automatically guessed by git-clone(1) or git-
718           init(1) when the repository was created. By default a repository
719           that ends in "/.git" is assumed to be not bare (bare = false),
720           while all other repositories are assumed to be bare (bare = true).
721
722       core.worktree
723           Set the path to the root of the working tree. This can be
724           overridden by the GIT_WORK_TREE environment variable and the
725           --work-tree command line option. The value can be an absolute path
726           or relative to the path to the .git directory, which is either
727           specified by --git-dir or GIT_DIR, or automatically discovered. If
728           --git-dir or GIT_DIR is specified but none of --work-tree,
729           GIT_WORK_TREE and core.worktree is specified, the current working
730           directory is regarded as the top level of your working tree.
731
732           Note that this variable is honored even when set in a configuration
733           file in a ".git" subdirectory of a directory and its value differs
734           from the latter directory (e.g. "/path/to/.git/config" has
735           core.worktree set to "/different/path"), which is most likely a
736           misconfiguration. Running Git commands in the "/path/to" directory
737           will still use "/different/path" as the root of the work tree and
738           can cause confusion unless you know what you are doing (e.g. you
739           are creating a read-only snapshot of the same index to a location
740           different from the repository’s usual working tree).
741
742       core.logAllRefUpdates
743           Enable the reflog. Updates to a ref <ref> is logged to the file
744           "$GIT_DIR/logs/<ref>", by appending the new and old SHA-1, the
745           date/time and the reason of the update, but only when the file
746           exists. If this configuration variable is set to true, missing
747           "$GIT_DIR/logs/<ref>" file is automatically created for branch
748           heads (i.e. under refs/heads/), remote refs (i.e. under
749           refs/remotes/), note refs (i.e. under refs/notes/), and the
750           symbolic ref HEAD.
751
752           This information can be used to determine what commit was the tip
753           of a branch "2 days ago".
754
755           This value is true by default in a repository that has a working
756           directory associated with it, and false by default in a bare
757           repository.
758
759       core.repositoryFormatVersion
760           Internal variable identifying the repository format and layout
761           version.
762
763       core.sharedRepository
764           When group (or true), the repository is made shareable between
765           several users in a group (making sure all the files and objects are
766           group-writable). When all (or world or everybody), the repository
767           will be readable by all users, additionally to being
768           group-shareable. When umask (or false), Git will use permissions
769           reported by umask(2). When 0xxx, where 0xxx is an octal number,
770           files in the repository will have this mode value.  0xxx will
771           override user’s umask value (whereas the other options will only
772           override requested parts of the user’s umask value). Examples: 0660
773           will make the repo read/write-able for the owner and group, but
774           inaccessible to others (equivalent to group unless umask is e.g.
775           0022).  0640 is a repository that is group-readable but not
776           group-writable. See git-init(1). False by default.
777
778       core.warnAmbiguousRefs
779           If true, Git will warn you if the ref name you passed it is
780           ambiguous and might match multiple refs in the repository. True by
781           default.
782
783       core.compression
784           An integer -1..9, indicating a default compression level. -1 is the
785           zlib default. 0 means no compression, and 1..9 are various
786           speed/size tradeoffs, 9 being slowest. If set, this provides a
787           default to other compression variables, such as
788           core.loosecompression and pack.compression.
789
790       core.loosecompression
791           An integer -1..9, indicating the compression level for objects that
792           are not in a pack file. -1 is the zlib default. 0 means no
793           compression, and 1..9 are various speed/size tradeoffs, 9 being
794           slowest. If not set, defaults to core.compression. If that is not
795           set, defaults to 1 (best speed).
796
797       core.packedGitWindowSize
798           Number of bytes of a pack file to map into memory in a single
799           mapping operation. Larger window sizes may allow your system to
800           process a smaller number of large pack files more quickly. Smaller
801           window sizes will negatively affect performance due to increased
802           calls to the operating system’s memory manager, but may improve
803           performance when accessing a large number of large pack files.
804
805           Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
806           MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
807           be reasonable for all users/operating systems. You probably do not
808           need to adjust this value.
809
810           Common unit suffixes of k, m, or g are supported.
811
812       core.packedGitLimit
813           Maximum number of bytes to map simultaneously into memory from pack
814           files. If Git needs to access more than this many bytes at once to
815           complete an operation it will unmap existing regions to reclaim
816           virtual address space within the process.
817
818           Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit
819           platforms. This should be reasonable for all users/operating
820           systems, except on the largest projects. You probably do not need
821           to adjust this value.
822
823           Common unit suffixes of k, m, or g are supported.
824
825       core.deltaBaseCacheLimit
826           Maximum number of bytes to reserve for caching base objects that
827           may be referenced by multiple deltified objects. By storing the
828           entire decompressed base objects in a cache Git is able to avoid
829           unpacking and decompressing frequently used base objects multiple
830           times.
831
832           Default is 16 MiB on all platforms. This should be reasonable for
833           all users/operating systems, except on the largest projects. You
834           probably do not need to adjust this value.
835
836           Common unit suffixes of k, m, or g are supported.
837
838       core.bigFileThreshold
839           Files larger than this size are stored deflated, without attempting
840           delta compression. Storing large files without delta compression
841           avoids excessive memory usage, at the slight expense of increased
842           disk usage.
843
844           Default is 512 MiB on all platforms. This should be reasonable for
845           most projects as source code and other text files can still be
846           delta compressed, but larger binary media files won’t be.
847
848           Common unit suffixes of k, m, or g are supported.
849
850       core.excludesfile
851           In addition to .gitignore (per-directory) and .git/info/exclude,
852           Git looks into this file for patterns of files which are not meant
853           to be tracked. "~/" is expanded to the value of $HOME and "~user/"
854           to the specified user’s home directory. Its default value is
855           $XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set
856           or empty, $HOME/.config/git/ignore is used instead. See
857           gitignore(5).
858
859       core.askpass
860           Some commands (e.g. svn and http interfaces) that interactively ask
861           for a password can be told to use an external program given via the
862           value of this variable. Can be overridden by the GIT_ASKPASS
863           environment variable. If not set, fall back to the value of the
864           SSH_ASKPASS environment variable or, failing that, a simple
865           password prompt. The external program shall be given a suitable
866           prompt as command line argument and write the password on its
867           STDOUT.
868
869       core.attributesfile
870           In addition to .gitattributes (per-directory) and
871           .git/info/attributes, Git looks into this file for attributes (see
872           gitattributes(5)). Path expansions are made the same way as for
873           core.excludesfile. Its default value is
874           $XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not
875           set or empty, $HOME/.config/git/attributes is used instead.
876
877       core.editor
878           Commands such as commit and tag that lets you edit messages by
879           launching an editor uses the value of this variable when it is set,
880           and the environment variable GIT_EDITOR is not set. See git-var(1).
881
882       core.commentchar
883           Commands such as commit and tag that lets you edit messages
884           consider a line that begins with this character commented, and
885           removes them after the editor returns (default #).
886
887       sequence.editor
888           Text editor used by git rebase -i for editing the rebase
889           instruction file. The value is meant to be interpreted by the shell
890           when it is used. It can be overridden by the GIT_SEQUENCE_EDITOR
891           environment variable. When not configured the default commit
892           message editor is used instead.
893
894       core.pager
895           The command that Git will use to paginate output. Can be overridden
896           with the GIT_PAGER environment variable. Note that Git sets the
897           LESS environment variable to FRSX if it is unset when it runs the
898           pager. One can change these settings by setting the LESS variable
899           to some other value. Alternately, these settings can be overridden
900           on a project or global basis by setting the core.pager option.
901           Setting core.pager has no effect on the LESS environment variable
902           behaviour above, so if you want to override Git’s default settings
903           this way, you need to be explicit. For example, to disable the S
904           option in a backward compatible manner, set core.pager to less -+S.
905           This will be passed to the shell by Git, which will translate the
906           final command to LESS=FRSX less -+S.
907
908       core.whitespace
909           A comma separated list of common whitespace problems to notice.
910           git diff will use color.diff.whitespace to highlight them, and git
911           apply --whitespace=error will consider them as errors. You can
912           prefix - to disable any of them (e.g.  -trailing-space):
913
914           ·   blank-at-eol treats trailing whitespaces at the end of the line
915               as an error (enabled by default).
916
917           ·   space-before-tab treats a space character that appears
918               immediately before a tab character in the initial indent part
919               of the line as an error (enabled by default).
920
921           ·   indent-with-non-tab treats a line that is indented with space
922               characters instead of the equivalent tabs as an error (not
923               enabled by default).
924
925           ·   tab-in-indent treats a tab character in the initial indent part
926               of the line as an error (not enabled by default).
927
928           ·   blank-at-eof treats blank lines added at the end of file as an
929               error (enabled by default).
930
931           ·   trailing-space is a short-hand to cover both blank-at-eol and
932               blank-at-eof.
933
934           ·   cr-at-eol treats a carriage-return at the end of line as part
935               of the line terminator, i.e. with it, trailing-space does not
936               trigger if the character before such a carriage-return is not a
937               whitespace (not enabled by default).
938
939           ·   tabwidth=<n> tells how many character positions a tab occupies;
940               this is relevant for indent-with-non-tab and when Git fixes
941               tab-in-indent errors. The default tab width is 8. Allowed
942               values are 1 to 63.
943
944       core.fsyncobjectfiles
945           This boolean will enable fsync() when writing object files.
946
947           This is a total waste of time and effort on a filesystem that
948           orders data writes properly, but can be useful for filesystems that
949           do not use journalling (traditional UNIX filesystems) or that only
950           journal metadata and not file contents (OS X’s HFS+, or Linux ext3
951           with "data=writeback").
952
953       core.preloadindex
954           Enable parallel index preload for operations like git diff
955
956           This can speed up operations like git diff and git status
957           especially on filesystems like NFS that have weak caching semantics
958           and thus relatively high IO latencies. With this set to true, Git
959           will do the index comparison to the filesystem data in parallel,
960           allowing overlapping IO’s.
961
962       core.createObject
963           You can set this to link, in which case a hardlink followed by a
964           delete of the source are used to make sure that object creation
965           will not overwrite existing objects.
966
967           On some file system/operating system combinations, this is
968           unreliable. Set this config setting to rename there; However, This
969           will remove the check that makes sure that existing object files
970           will not get overwritten.
971
972       core.notesRef
973           When showing commit messages, also show notes which are stored in
974           the given ref. The ref must be fully qualified. If the given ref
975           does not exist, it is not an error but means that no notes should
976           be printed.
977
978           This setting defaults to "refs/notes/commits", and it can be
979           overridden by the GIT_NOTES_REF environment variable. See git-
980           notes(1).
981
982       core.sparseCheckout
983           Enable "sparse checkout" feature. See section "Sparse checkout" in
984           git-read-tree(1) for more information.
985
986       core.abbrev
987           Set the length object names are abbreviated to. If unspecified,
988           many commands abbreviate to 7 hexdigits, which may not be enough
989           for abbreviated object names to stay unique for sufficiently long
990           time.
991
992       add.ignore-errors, add.ignoreErrors
993           Tells git add to continue adding files when some files cannot be
994           added due to indexing errors. Equivalent to the --ignore-errors
995           option of git-add(1). Older versions of Git accept only
996           add.ignore-errors, which does not follow the usual naming
997           convention for configuration variables. Newer versions of Git honor
998           add.ignoreErrors as well.
999
1000       alias.*
1001           Command aliases for the git(1) command wrapper - e.g. after
1002           defining "alias.last = cat-file commit HEAD", the invocation "git
1003           last" is equivalent to "git cat-file commit HEAD". To avoid
1004           confusion and troubles with script usage, aliases that hide
1005           existing Git commands are ignored. Arguments are split by spaces,
1006           the usual shell quoting and escaping is supported. quote pair and a
1007           backslash can be used to quote them.
1008
1009           If the alias expansion is prefixed with an exclamation point, it
1010           will be treated as a shell command. For example, defining
1011           "alias.new = !gitk --all --not ORIG_HEAD", the invocation "git new"
1012           is equivalent to running the shell command "gitk --all --not
1013           ORIG_HEAD". Note that shell commands will be executed from the
1014           top-level directory of a repository, which may not necessarily be
1015           the current directory.  GIT_PREFIX is set as returned by running
1016           git rev-parse --show-prefix from the original current directory.
1017           See git-rev-parse(1).
1018
1019       am.keepcr
1020           If true, git-am will call git-mailsplit for patches in mbox format
1021           with parameter --keep-cr. In this case git-mailsplit will not
1022           remove \r from lines ending with \r\n. Can be overridden by giving
1023           --no-keep-cr from the command line. See git-am(1), git-
1024           mailsplit(1).
1025
1026       apply.ignorewhitespace
1027           When set to change, tells git apply to ignore changes in
1028           whitespace, in the same way as the --ignore-space-change option.
1029           When set to one of: no, none, never, false tells git apply to
1030           respect all whitespace differences. See git-apply(1).
1031
1032       apply.whitespace
1033           Tells git apply how to handle whitespaces, in the same way as the
1034           --whitespace option. See git-apply(1).
1035
1036       branch.autosetupmerge
1037           Tells git branch and git checkout to set up new branches so that
1038           git-pull(1) will appropriately merge from the starting point
1039           branch. Note that even if this option is not set, this behavior can
1040           be chosen per-branch using the --track and --no-track options. The
1041           valid settings are: false — no automatic setup is done; true —
1042           automatic setup is done when the starting point is a
1043           remote-tracking branch; always —  automatic setup is done when the
1044           starting point is either a local branch or remote-tracking branch.
1045           This option defaults to true.
1046
1047       branch.autosetuprebase
1048           When a new branch is created with git branch or git checkout that
1049           tracks another branch, this variable tells Git to set up pull to
1050           rebase instead of merge (see "branch.<name>.rebase"). When never,
1051           rebase is never automatically set to true. When local, rebase is
1052           set to true for tracked branches of other local branches. When
1053           remote, rebase is set to true for tracked branches of
1054           remote-tracking branches. When always, rebase will be set to true
1055           for all tracking branches. See "branch.autosetupmerge" for details
1056           on how to set up a branch to track another branch. This option
1057           defaults to never.
1058
1059       branch.<name>.remote
1060           When on branch <name>, it tells git fetch and git push which remote
1061           to fetch from/push to. The remote to push to may be overridden with
1062           remote.pushdefault (for all branches). The remote to push to, for
1063           the current branch, may be further overridden by
1064           branch.<name>.pushremote. If no remote is configured, or if you are
1065           not on any branch, it defaults to origin for fetching and
1066           remote.pushdefault for pushing.
1067
1068       branch.<name>.pushremote
1069           When on branch <name>, it overrides branch.<name>.remote for
1070           pushing. It also overrides remote.pushdefault for pushing from
1071           branch <name>. When you pull from one place (e.g. your upstream)
1072           and push to another place (e.g. your own publishing repository),
1073           you would want to set remote.pushdefault to specify the remote to
1074           push to for all branches, and use this option to override it for a
1075           specific branch.
1076
1077       branch.<name>.merge
1078           Defines, together with branch.<name>.remote, the upstream branch
1079           for the given branch. It tells git fetch/git pull/git rebase which
1080           branch to merge and can also affect git push (see push.default).
1081           When in branch <name>, it tells git fetch the default refspec to be
1082           marked for merging in FETCH_HEAD. The value is handled like the
1083           remote part of a refspec, and must match a ref which is fetched
1084           from the remote given by "branch.<name>.remote". The merge
1085           information is used by git pull (which at first calls git fetch) to
1086           lookup the default branch for merging. Without this option, git
1087           pull defaults to merge the first refspec fetched. Specify multiple
1088           values to get an octopus merge. If you wish to setup git pull so
1089           that it merges into <name> from another branch in the local
1090           repository, you can point branch.<name>.merge to the desired
1091           branch, and use the special setting .  (a period) for
1092           branch.<name>.remote.
1093
1094       branch.<name>.mergeoptions
1095           Sets default options for merging into branch <name>. The syntax and
1096           supported options are the same as those of git-merge(1), but option
1097           values containing whitespace characters are currently not
1098           supported.
1099
1100       branch.<name>.rebase
1101           When true, rebase the branch <name> on top of the fetched branch,
1102           instead of merging the default branch from the default remote when
1103           "git pull" is run. See "pull.rebase" for doing this in a non
1104           branch-specific manner.
1105
1106           NOTE: this is a possibly dangerous operation; do not use it unless
1107           you understand the implications (see git-rebase(1) for details).
1108
1109       branch.<name>.description
1110           Branch description, can be edited with git branch
1111           --edit-description. Branch description is automatically added in
1112           the format-patch cover letter or request-pull summary.
1113
1114       browser.<tool>.cmd
1115           Specify the command to invoke the specified browser. The specified
1116           command is evaluated in shell with the URLs passed as arguments.
1117           (See git-web--browse(1).)
1118
1119       browser.<tool>.path
1120           Override the path for the given tool that may be used to browse
1121           HTML help (see -w option in git-help(1)) or a working repository in
1122           gitweb (see git-instaweb(1)).
1123
1124       clean.requireForce
1125           A boolean to make git-clean do nothing unless given -f or -n.
1126           Defaults to true.
1127
1128       color.branch
1129           A boolean to enable/disable color in the output of git-branch(1).
1130           May be set to always, false (or never) or auto (or true), in which
1131           case colors are used only when the output is to a terminal.
1132           Defaults to false.
1133
1134       color.branch.<slot>
1135           Use customized color for branch coloration.  <slot> is one of
1136           current (the current branch), local (a local branch), remote (a
1137           remote-tracking branch in refs/remotes/), upstream (upstream
1138           tracking branch), plain (other refs).
1139
1140           The value for these configuration variables is a list of colors (at
1141           most two) and attributes (at most one), separated by spaces. The
1142           colors accepted are normal, black, red, green, yellow, blue,
1143           magenta, cyan and white; the attributes are bold, dim, ul, blink
1144           and reverse. The first color given is the foreground; the second is
1145           the background. The position of the attribute, if any, doesn’t
1146           matter.
1147
1148       color.diff
1149           Whether to use ANSI escape sequences to add color to patches. If
1150           this is set to always, git-diff(1), git-log(1), and git-show(1)
1151           will use color for all patches. If it is set to true or auto, those
1152           commands will only use color when output is to the terminal.
1153           Defaults to false.
1154
1155           This does not affect git-format-patch(1) nor the git-diff-*
1156           plumbing commands. Can be overridden on the command line with the
1157           --color[=<when>] option.
1158
1159       color.diff.<slot>
1160           Use customized color for diff colorization.  <slot> specifies which
1161           part of the patch to use the specified color, and is one of plain
1162           (context text), meta (metainformation), frag (hunk header), func
1163           (function in hunk header), old (removed lines), new (added lines),
1164           commit (commit headers), or whitespace (highlighting whitespace
1165           errors). The values of these variables may be specified as in
1166           color.branch.<slot>.
1167
1168       color.decorate.<slot>
1169           Use customized color for git log --decorate output.  <slot> is one
1170           of branch, remoteBranch, tag, stash or HEAD for local branches,
1171           remote-tracking branches, tags, stash and HEAD, respectively.
1172
1173       color.grep
1174           When set to always, always highlight matches. When false (or
1175           never), never. When set to true or auto, use color only when the
1176           output is written to the terminal. Defaults to false.
1177
1178       color.grep.<slot>
1179           Use customized color for grep colorization.  <slot> specifies which
1180           part of the line to use the specified color, and is one of
1181
1182           context
1183               non-matching text in context lines (when using -A, -B, or -C)
1184
1185           filename
1186               filename prefix (when not using -h)
1187
1188           function
1189               function name lines (when using -p)
1190
1191           linenumber
1192               line number prefix (when using -n)
1193
1194           match
1195               matching text
1196
1197           selected
1198               non-matching text in selected lines
1199
1200           separator
1201               separators between fields on a line (:, -, and =) and between
1202               hunks (--)
1203
1204           The values of these variables may be specified as in
1205           color.branch.<slot>.
1206
1207       color.interactive
1208           When set to always, always use colors for interactive prompts and
1209           displays (such as those used by "git-add --interactive"). When
1210           false (or never), never. When set to true or auto, use colors only
1211           when the output is to the terminal. Defaults to false.
1212
1213       color.interactive.<slot>
1214           Use customized color for git add --interactive output.  <slot> may
1215           be prompt, header, help or error, for four distinct types of normal
1216           output from interactive commands. The values of these variables may
1217           be specified as in color.branch.<slot>.
1218
1219       color.pager
1220           A boolean to enable/disable colored output when the pager is in use
1221           (default is true).
1222
1223       color.showbranch
1224           A boolean to enable/disable color in the output of git-show-
1225           branch(1). May be set to always, false (or never) or auto (or
1226           true), in which case colors are used only when the output is to a
1227           terminal. Defaults to false.
1228
1229       color.status
1230           A boolean to enable/disable color in the output of git-status(1).
1231           May be set to always, false (or never) or auto (or true), in which
1232           case colors are used only when the output is to a terminal.
1233           Defaults to false.
1234
1235       color.status.<slot>
1236           Use customized color for status colorization.  <slot> is one of
1237           header (the header text of the status message), added or updated
1238           (files which are added but not committed), changed (files which are
1239           changed but not added in the index), untracked (files which are not
1240           tracked by Git), branch (the current branch), or nobranch (the
1241           color the no branch warning is shown in, defaulting to red). The
1242           values of these variables may be specified as in
1243           color.branch.<slot>.
1244
1245       color.ui
1246           This variable determines the default value for variables such as
1247           color.diff and color.grep that control the use of color per command
1248           family. Its scope will expand as more commands learn configuration
1249           to set a default for the --color option. Set it to always if you
1250           want all output not intended for machine consumption to use color,
1251           to true or auto if you want such output to use color when written
1252           to the terminal, or to false or never if you prefer Git commands
1253           not to use color unless enabled explicitly with some other
1254           configuration or the --color option.
1255
1256       column.ui
1257           Specify whether supported commands should output in columns. This
1258           variable consists of a list of tokens separated by spaces or
1259           commas:
1260
1261           always
1262               always show in columns
1263
1264           never
1265               never show in columns
1266
1267           auto
1268               show in columns if the output is to the terminal
1269
1270           column
1271               fill columns before rows (default)
1272
1273           row
1274               fill rows before columns
1275
1276           plain
1277               show in one column
1278
1279           dense
1280               make unequal size columns to utilize more space
1281
1282           nodense
1283               make equal size columns
1284
1285           This option defaults to never.
1286
1287       column.branch
1288           Specify whether to output branch listing in git branch in columns.
1289           See column.ui for details.
1290
1291       column.status
1292           Specify whether to output untracked files in git status in columns.
1293           See column.ui for details.
1294
1295       column.tag
1296           Specify whether to output tag listing in git tag in columns. See
1297           column.ui for details.
1298
1299       commit.cleanup
1300           This setting overrides the default of the --cleanup option in git
1301           commit. See git-commit(1) for details. Changing the default can be
1302           useful when you always want to keep lines that begin with comment
1303           character # in your log message, in which case you would do git
1304           config commit.cleanup whitespace (note that you will have to remove
1305           the help lines that begin with # in the commit log template
1306           yourself, if you do this).
1307
1308       commit.status
1309           A boolean to enable/disable inclusion of status information in the
1310           commit message template when using an editor to prepare the commit
1311           message. Defaults to true.
1312
1313       commit.template
1314           Specify a file to use as the template for new commit messages. "~/"
1315           is expanded to the value of $HOME and "~user/" to the specified
1316           user’s home directory.
1317
1318       credential.helper
1319           Specify an external helper to be called when a username or password
1320           credential is needed; the helper may consult external storage to
1321           avoid prompting the user for the credentials. See gitcredentials(7)
1322           for details.
1323
1324       credential.useHttpPath
1325           When acquiring credentials, consider the "path" component of an
1326           http or https URL to be important. Defaults to false. See
1327           gitcredentials(7) for more information.
1328
1329       credential.username
1330           If no username is set for a network authentication, use this
1331           username by default. See credential.<context>.* below, and
1332           gitcredentials(7).
1333
1334       credential.<url>.*
1335           Any of the credential.* options above can be applied selectively to
1336           some credentials. For example
1337           "credential.https://example.com.username" would set the default
1338           username only for https connections to example.com. See
1339           gitcredentials(7) for details on how URLs are matched.
1340
1341       diff.autorefreshindex
1342           When using git diff to compare with work tree files, do not
1343           consider stat-only change as changed. Instead, silently run git
1344           update-index --refresh to update the cached stat information for
1345           paths whose contents in the work tree match the contents in the
1346           index. This option defaults to true. Note that this affects only
1347           git diff Porcelain, and not lower level diff commands such as git
1348           diff-files.
1349
1350       diff.dirstat
1351           A comma separated list of --dirstat parameters specifying the
1352           default behavior of the --dirstat option to git-diff(1)` and
1353           friends. The defaults can be overridden on the command line (using
1354           --dirstat=<param1,param2,...>). The fallback defaults (when not
1355           changed by diff.dirstat) are changes,noncumulative,3. The following
1356           parameters are available:
1357
1358           changes
1359               Compute the dirstat numbers by counting the lines that have
1360               been removed from the source, or added to the destination. This
1361               ignores the amount of pure code movements within a file. In
1362               other words, rearranging lines in a file is not counted as much
1363               as other changes. This is the default behavior when no
1364               parameter is given.
1365
1366           lines
1367               Compute the dirstat numbers by doing the regular line-based
1368               diff analysis, and summing the removed/added line counts. (For
1369               binary files, count 64-byte chunks instead, since binary files
1370               have no natural concept of lines). This is a more expensive
1371               --dirstat behavior than the changes behavior, but it does count
1372               rearranged lines within a file as much as other changes. The
1373               resulting output is consistent with what you get from the other
1374               --*stat options.
1375
1376           files
1377               Compute the dirstat numbers by counting the number of files
1378               changed. Each changed file counts equally in the dirstat
1379               analysis. This is the computationally cheapest --dirstat
1380               behavior, since it does not have to look at the file contents
1381               at all.
1382
1383           cumulative
1384               Count changes in a child directory for the parent directory as
1385               well. Note that when using cumulative, the sum of the
1386               percentages reported may exceed 100%. The default
1387               (non-cumulative) behavior can be specified with the
1388               noncumulative parameter.
1389
1390           <limit>
1391               An integer parameter specifies a cut-off percent (3% by
1392               default). Directories contributing less than this percentage of
1393               the changes are not shown in the output.
1394
1395           Example: The following will count changed files, while ignoring
1396           directories with less than 10% of the total amount of changed
1397           files, and accumulating child directory counts in the parent
1398           directories: files,10,cumulative.
1399
1400       diff.statGraphWidth
1401           Limit the width of the graph part in --stat output. If set, applies
1402           to all commands generating --stat output except format-patch.
1403
1404       diff.context
1405           Generate diffs with <n> lines of context instead of the default of
1406           3. This value is overridden by the -U option.
1407
1408       diff.external
1409           If this config variable is set, diff generation is not performed
1410           using the internal diff machinery, but using the given command. Can
1411           be overridden with the ‘GIT_EXTERNAL_DIFF’ environment variable.
1412           The command is called with parameters as described under "git
1413           Diffs" in git(1). Note: if you want to use an external diff program
1414           only on a subset of your files, you might want to use
1415           gitattributes(5) instead.
1416
1417       diff.ignoreSubmodules
1418           Sets the default value of --ignore-submodules. Note that this
1419           affects only git diff Porcelain, and not lower level diff commands
1420           such as git diff-files.  git checkout also honors this setting when
1421           reporting uncommitted changes.
1422
1423       diff.mnemonicprefix
1424           If set, git diff uses a prefix pair that is different from the
1425           standard "a/" and "b/" depending on what is being compared. When
1426           this configuration is in effect, reverse diff output also swaps the
1427           order of the prefixes:
1428
1429           git diff
1430               compares the (i)ndex and the (w)ork tree;
1431
1432           git diff HEAD
1433               compares a (c)ommit and the (w)ork tree;
1434
1435           git diff --cached
1436               compares a (c)ommit and the (i)ndex;
1437
1438           git diff HEAD:file1 file2
1439               compares an (o)bject and a (w)ork tree entity;
1440
1441           git diff --no-index a b
1442               compares two non-git things (1) and (2).
1443
1444       diff.noprefix
1445           If set, git diff does not show any source or destination prefix.
1446
1447       diff.renameLimit
1448           The number of files to consider when performing the copy/rename
1449           detection; equivalent to the git diff option -l.
1450
1451       diff.renames
1452           Tells Git to detect renames. If set to any boolean value, it will
1453           enable basic rename detection. If set to "copies" or "copy", it
1454           will detect copies, as well.
1455
1456       diff.suppressBlankEmpty
1457           A boolean to inhibit the standard behavior of printing a space
1458           before each empty output line. Defaults to false.
1459
1460       diff.submodule
1461           Specify the format in which differences in submodules are shown.
1462           The "log" format lists the commits in the range like git-
1463           submodule(1)summary does. The "short" format format just shows the
1464           names of the commits at the beginning and end of the range.
1465           Defaults to short.
1466
1467       diff.wordRegex
1468           A POSIX Extended Regular Expression used to determine what is a
1469           "word" when performing word-by-word difference calculations.
1470           Character sequences that match the regular expression are "words",
1471           all other characters are ignorable whitespace.
1472
1473       diff.<driver>.command
1474           The custom diff driver command. See gitattributes(5) for details.
1475
1476       diff.<driver>.xfuncname
1477           The regular expression that the diff driver should use to recognize
1478           the hunk header. A built-in pattern may also be used. See
1479           gitattributes(5) for details.
1480
1481       diff.<driver>.binary
1482           Set this option to true to make the diff driver treat files as
1483           binary. See gitattributes(5) for details.
1484
1485       diff.<driver>.textconv
1486           The command that the diff driver should call to generate the
1487           text-converted version of a file. The result of the conversion is
1488           used to generate a human-readable diff. See gitattributes(5) for
1489           details.
1490
1491       diff.<driver>.wordregex
1492           The regular expression that the diff driver should use to split
1493           words in a line. See gitattributes(5) for details.
1494
1495       diff.<driver>.cachetextconv
1496           Set this option to true to make the diff driver cache the text
1497           conversion outputs. See gitattributes(5) for details.
1498
1499       diff.tool
1500           Controls which diff tool is used by git-difftool(1). This variable
1501           overrides the value configured in merge.tool. The list below shows
1502           the valid built-in values. Any other value is treated as a custom
1503           diff tool and requires that a corresponding difftool.<tool>.cmd
1504           variable is defined.
1505
1506           ·   araxis
1507
1508           ·   bc3
1509
1510           ·   codecompare
1511
1512           ·   deltawalker
1513
1514           ·   diffuse
1515
1516           ·   ecmerge
1517
1518           ·   emerge
1519
1520           ·   gvimdiff
1521
1522           ·   gvimdiff2
1523
1524           ·   kdiff3
1525
1526           ·   kompare
1527
1528           ·   meld
1529
1530           ·   opendiff
1531
1532           ·   p4merge
1533
1534           ·   tkdiff
1535
1536           ·   vimdiff
1537
1538           ·   vimdiff2
1539
1540           ·   xxdiff
1541
1542       diff.algorithm
1543           Choose a diff algorithm. The variants are as follows:
1544
1545           default, myers
1546               The basic greedy diff algorithm. Currently, this is the
1547               default.
1548
1549           minimal
1550               Spend extra time to make sure the smallest possible diff is
1551               produced.
1552
1553           patience
1554               Use "patience diff" algorithm when generating patches.
1555
1556           histogram
1557               This algorithm extends the patience algorithm to "support
1558               low-occurrence common elements".
1559
1560       difftool.<tool>.path
1561           Override the path for the given tool. This is useful in case your
1562           tool is not in the PATH.
1563
1564       difftool.<tool>.cmd
1565           Specify the command to invoke the specified diff tool. The
1566           specified command is evaluated in shell with the following
1567           variables available: LOCAL is set to the name of the temporary file
1568           containing the contents of the diff pre-image and REMOTE is set to
1569           the name of the temporary file containing the contents of the diff
1570           post-image.
1571
1572       difftool.prompt
1573           Prompt before each invocation of the diff tool.
1574
1575       fetch.recurseSubmodules
1576           This option can be either set to a boolean value or to on-demand.
1577           Setting it to a boolean changes the behavior of fetch and pull to
1578           unconditionally recurse into submodules when set to true or to not
1579           recurse at all when set to false. When set to on-demand (the
1580           default value), fetch and pull will only recurse into a populated
1581           submodule when its superproject retrieves a commit that updates the
1582           submodule’s reference.
1583
1584       fetch.fsckObjects
1585           If it is set to true, git-fetch-pack will check all fetched
1586           objects. It will abort in the case of a malformed object or a
1587           broken link. The result of an abort are only dangling objects.
1588           Defaults to false. If not set, the value of transfer.fsckObjects is
1589           used instead.
1590
1591       fetch.unpackLimit
1592           If the number of objects fetched over the Git native transfer is
1593           below this limit, then the objects will be unpacked into loose
1594           object files. However if the number of received objects equals or
1595           exceeds this limit then the received pack will be stored as a pack,
1596           after adding any missing delta bases. Storing the pack from a push
1597           can make the push operation complete faster, especially on slow
1598           filesystems. If not set, the value of transfer.unpackLimit is used
1599           instead.
1600
1601       format.attach
1602           Enable multipart/mixed attachments as the default for format-patch.
1603           The value can also be a double quoted string which will enable
1604           attachments as the default and set the value as the boundary. See
1605           the --attach option in git-format-patch(1).
1606
1607       format.numbered
1608           A boolean which can enable or disable sequence numbers in patch
1609           subjects. It defaults to "auto" which enables it only if there is
1610           more than one patch. It can be enabled or disabled for all messages
1611           by setting it to "true" or "false". See --numbered option in git-
1612           format-patch(1).
1613
1614       format.headers
1615           Additional email headers to include in a patch to be submitted by
1616           mail. See git-format-patch(1).
1617
1618       format.to, format.cc
1619           Additional recipients to include in a patch to be submitted by
1620           mail. See the --to and --cc options in git-format-patch(1).
1621
1622       format.subjectprefix
1623           The default for format-patch is to output files with the [PATCH]
1624           subject prefix. Use this variable to change that prefix.
1625
1626       format.signature
1627           The default for format-patch is to output a signature containing
1628           the Git version number. Use this variable to change that default.
1629           Set this variable to the empty string ("") to suppress signature
1630           generation.
1631
1632       format.suffix
1633           The default for format-patch is to output files with the suffix
1634           .patch. Use this variable to change that suffix (make sure to
1635           include the dot if you want it).
1636
1637       format.pretty
1638           The default pretty format for log/show/whatchanged command, See
1639           git-log(1), git-show(1), git-whatchanged(1).
1640
1641       format.thread
1642           The default threading style for git format-patch. Can be a boolean
1643           value, or shallow or deep.  shallow threading makes every mail a
1644           reply to the head of the series, where the head is chosen from the
1645           cover letter, the --in-reply-to, and the first patch mail, in this
1646           order.  deep threading makes every mail a reply to the previous
1647           one. A true boolean value is the same as shallow, and a false value
1648           disables threading.
1649
1650       format.signoff
1651           A boolean value which lets you enable the -s/--signoff option of
1652           format-patch by default.  Note: Adding the Signed-off-by: line to a
1653           patch should be a conscious act and means that you certify you have
1654           the rights to submit this work under the same open source license.
1655           Please see the SubmittingPatches document for further discussion.
1656
1657       format.coverLetter
1658           A boolean that controls whether to generate a cover-letter when
1659           format-patch is invoked, but in addition can be set to "auto", to
1660           generate a cover-letter only when there’s more than one patch.
1661
1662       filter.<driver>.clean
1663           The command which is used to convert the content of a worktree file
1664           to a blob upon checkin. See gitattributes(5) for details.
1665
1666       filter.<driver>.smudge
1667           The command which is used to convert the content of a blob object
1668           to a worktree file upon checkout. See gitattributes(5) for details.
1669
1670       gc.aggressiveWindow
1671           The window size parameter used in the delta compression algorithm
1672           used by git gc --aggressive. This defaults to 250.
1673
1674       gc.auto
1675           When there are approximately more than this many loose objects in
1676           the repository, git gc --auto will pack them. Some Porcelain
1677           commands use this command to perform a light-weight garbage
1678           collection from time to time. The default value is 6700. Setting
1679           this to 0 disables it.
1680
1681       gc.autopacklimit
1682           When there are more than this many packs that are not marked with
1683           *.keep file in the repository, git gc --auto consolidates them into
1684           one larger pack. The default value is 50. Setting this to 0
1685           disables it.
1686
1687       gc.packrefs
1688           Running git pack-refs in a repository renders it unclonable by Git
1689           versions prior to 1.5.1.2 over dumb transports such as HTTP. This
1690           variable determines whether git gc runs git pack-refs. This can be
1691           set to notbare to enable it within all non-bare repos or it can be
1692           set to a boolean value. The default is true.
1693
1694       gc.pruneexpire
1695           When git gc is run, it will call prune --expire 2.weeks.ago.
1696           Override the grace period with this config variable. The value
1697           "now" may be used to disable this grace period and always prune
1698           unreachable objects immediately.
1699
1700       gc.reflogexpire, gc.<pattern>.reflogexpire
1701           git reflog expire removes reflog entries older than this time;
1702           defaults to 90 days. With "<pattern>" (e.g. "refs/stash") in the
1703           middle the setting applies only to the refs that match the
1704           <pattern>.
1705
1706       gc.reflogexpireunreachable, gc.<ref>.reflogexpireunreachable
1707           git reflog expire removes reflog entries older than this time and
1708           are not reachable from the current tip; defaults to 30 days. With
1709           "<pattern>" (e.g. "refs/stash") in the middle, the setting applies
1710           only to the refs that match the <pattern>.
1711
1712       gc.rerereresolved
1713           Records of conflicted merge you resolved earlier are kept for this
1714           many days when git rerere gc is run. The default is 60 days. See
1715           git-rerere(1).
1716
1717       gc.rerereunresolved
1718           Records of conflicted merge you have not resolved are kept for this
1719           many days when git rerere gc is run. The default is 15 days. See
1720           git-rerere(1).
1721
1722       gitcvs.commitmsgannotation
1723           Append this string to each commit message. Set to empty string to
1724           disable this feature. Defaults to "via git-CVS emulator".
1725
1726       gitcvs.enabled
1727           Whether the CVS server interface is enabled for this repository.
1728           See git-cvsserver(1).
1729
1730       gitcvs.logfile
1731           Path to a log file where the CVS server interface well... logs
1732           various stuff. See git-cvsserver(1).
1733
1734       gitcvs.usecrlfattr
1735           If true, the server will look up the end-of-line conversion
1736           attributes for files to determine the -k modes to use. If the
1737           attributes force Git to treat a file as text, the -k mode will be
1738           left blank so CVS clients will treat it as text. If they suppress
1739           text conversion, the file will be set with -kb mode, which
1740           suppresses any newline munging the client might otherwise do. If
1741           the attributes do not allow the file type to be determined, then
1742           gitcvs.allbinary is used. See gitattributes(5).
1743
1744       gitcvs.allbinary
1745           This is used if gitcvs.usecrlfattr does not resolve the correct -kb
1746           mode to use. If true, all unresolved files are sent to the client
1747           in mode -kb. This causes the client to treat them as binary files,
1748           which suppresses any newline munging it otherwise might do.
1749           Alternatively, if it is set to "guess", then the contents of the
1750           file are examined to decide if it is binary, similar to
1751           core.autocrlf.
1752
1753       gitcvs.dbname
1754           Database used by git-cvsserver to cache revision information
1755           derived from the Git repository. The exact meaning depends on the
1756           used database driver, for SQLite (which is the default driver) this
1757           is a filename. Supports variable substitution (see git-cvsserver(1)
1758           for details). May not contain semicolons (;). Default:
1759           %Ggitcvs.%m.sqlite
1760
1761       gitcvs.dbdriver
1762           Used Perl DBI driver. You can specify any available driver for this
1763           here, but it might not work. git-cvsserver is tested with
1764           DBD::SQLite, reported to work with DBD::Pg, and reported not to
1765           work with DBD::mysql. Experimental feature. May not contain double
1766           colons (:). Default: SQLite. See git-cvsserver(1).
1767
1768       gitcvs.dbuser, gitcvs.dbpass
1769           Database user and password. Only useful if setting gitcvs.dbdriver,
1770           since SQLite has no concept of database users and/or passwords.
1771           gitcvs.dbuser supports variable substitution (see git-cvsserver(1)
1772           for details).
1773
1774       gitcvs.dbTableNamePrefix
1775           Database table name prefix. Prepended to the names of any database
1776           tables used, allowing a single database to be used for several
1777           repositories. Supports variable substitution (see git-cvsserver(1)
1778           for details). Any non-alphabetic characters will be replaced with
1779           underscores.
1780
1781       All gitcvs variables except for gitcvs.usecrlfattr and gitcvs.allbinary
1782       can also be specified as gitcvs.<access_method>.<varname> (where
1783       access_method is one of "ext" and "pserver") to make them apply only
1784       for the given access method.
1785
1786       gitweb.category, gitweb.description, gitweb.owner, gitweb.url
1787           See gitweb(1) for description.
1788
1789       gitweb.avatar, gitweb.blame, gitweb.grep, gitweb.highlight,
1790       gitweb.patches, gitweb.pickaxe, gitweb.remote_heads, gitweb.showsizes,
1791       gitweb.snapshot
1792           See gitweb.conf(5) for description.
1793
1794       grep.lineNumber
1795           If set to true, enable -n option by default.
1796
1797       grep.patternType
1798           Set the default matching behavior. Using a value of basic,
1799           extended, fixed, or perl will enable the --basic-regexp,
1800           --extended-regexp, --fixed-strings, or --perl-regexp option
1801           accordingly, while the value default will return to the default
1802           matching behavior.
1803
1804       grep.extendedRegexp
1805           If set to true, enable --extended-regexp option by default. This
1806           option is ignored when the grep.patternType option is set to a
1807           value other than default.
1808
1809       gpg.program
1810           Use this custom program instead of "gpg" found on $PATH when making
1811           or verifying a PGP signature. The program must support the same
1812           command line interface as GPG, namely, to verify a detached
1813           signature, "gpg --verify $file - <$signature" is run, and the
1814           program is expected to signal a good signature by exiting with code
1815           0, and to generate an ascii-armored detached signature, the
1816           standard input of "gpg -bsau $key" is fed with the contents to be
1817           signed, and the program is expected to send the result to its
1818           standard output.
1819
1820       gui.commitmsgwidth
1821           Defines how wide the commit message window is in the git-gui(1).
1822           "75" is the default.
1823
1824       gui.diffcontext
1825           Specifies how many context lines should be used in calls to diff
1826           made by the git-gui(1). The default is "5".
1827
1828       gui.encoding
1829           Specifies the default encoding to use for displaying of file
1830           contents in git-gui(1) and gitk(1). It can be overridden by setting
1831           the encoding attribute for relevant files (see gitattributes(5)).
1832           If this option is not set, the tools default to the locale
1833           encoding.
1834
1835       gui.matchtrackingbranch
1836           Determines if new branches created with git-gui(1) should default
1837           to tracking remote branches with matching names or not. Default:
1838           "false".
1839
1840       gui.newbranchtemplate
1841           Is used as suggested name when creating new branches using the git-
1842           gui(1).
1843
1844       gui.pruneduringfetch
1845           "true" if git-gui(1) should prune remote-tracking branches when
1846           performing a fetch. The default value is "false".
1847
1848       gui.trustmtime
1849           Determines if git-gui(1) should trust the file modification
1850           timestamp or not. By default the timestamps are not trusted.
1851
1852       gui.spellingdictionary
1853           Specifies the dictionary used for spell checking commit messages in
1854           the git-gui(1). When set to "none" spell checking is turned off.
1855
1856       gui.fastcopyblame
1857           If true, git gui blame uses -C instead of -C -C for original
1858           location detection. It makes blame significantly faster on huge
1859           repositories at the expense of less thorough copy detection.
1860
1861       gui.copyblamethreshold
1862           Specifies the threshold to use in git gui blame original location
1863           detection, measured in alphanumeric characters. See the git-
1864           blame(1) manual for more information on copy detection.
1865
1866       gui.blamehistoryctx
1867           Specifies the radius of history context in days to show in gitk(1)
1868           for the selected commit, when the Show History Context menu item is
1869           invoked from git gui blame. If this variable is set to zero, the
1870           whole history is shown.
1871
1872       guitool.<name>.cmd
1873           Specifies the shell command line to execute when the corresponding
1874           item of the git-gui(1)Tools menu is invoked. This option is
1875           mandatory for every tool. The command is executed from the root of
1876           the working directory, and in the environment it receives the name
1877           of the tool as GIT_GUITOOL, the name of the currently selected file
1878           as FILENAME, and the name of the current branch as CUR_BRANCH (if
1879           the head is detached, CUR_BRANCH is empty).
1880
1881       guitool.<name>.needsfile
1882           Run the tool only if a diff is selected in the GUI. It guarantees
1883           that FILENAME is not empty.
1884
1885       guitool.<name>.noconsole
1886           Run the command silently, without creating a window to display its
1887           output.
1888
1889       guitool.<name>.norescan
1890           Don’t rescan the working directory for changes after the tool
1891           finishes execution.
1892
1893       guitool.<name>.confirm
1894           Show a confirmation dialog before actually running the tool.
1895
1896       guitool.<name>.argprompt
1897           Request a string argument from the user, and pass it to the tool
1898           through the ARGS environment variable. Since requesting an argument
1899           implies confirmation, the confirm option has no effect if this is
1900           enabled. If the option is set to true, yes, or 1, the dialog uses a
1901           built-in generic prompt; otherwise the exact value of the variable
1902           is used.
1903
1904       guitool.<name>.revprompt
1905           Request a single valid revision from the user, and set the REVISION
1906           environment variable. In other aspects this option is similar to
1907           argprompt, and can be used together with it.
1908
1909       guitool.<name>.revunmerged
1910           Show only unmerged branches in the revprompt subdialog. This is
1911           useful for tools similar to merge or rebase, but not for things
1912           like checkout or reset.
1913
1914       guitool.<name>.title
1915           Specifies the title to use for the prompt dialog. The default is
1916           the tool name.
1917
1918       guitool.<name>.prompt
1919           Specifies the general prompt string to display at the top of the
1920           dialog, before subsections for argprompt and revprompt. The default
1921           value includes the actual command.
1922
1923       help.browser
1924           Specify the browser that will be used to display help in the web
1925           format. See git-help(1).
1926
1927       help.format
1928           Override the default help format used by git-help(1). Values man,
1929           info, web and html are supported.  man is the default.  web and
1930           html are the same.
1931
1932       help.autocorrect
1933           Automatically correct and execute mistyped commands after waiting
1934           for the given number of deciseconds (0.1 sec). If more than one
1935           command can be deduced from the entered text, nothing will be
1936           executed. If the value of this option is negative, the corrected
1937           command will be executed immediately. If the value is 0 - the
1938           command will be just shown but not executed. This is the default.
1939
1940       help.htmlpath
1941           Specify the path where the HTML documentation resides. File system
1942           paths and URLs are supported. HTML pages will be prefixed with this
1943           path when help is displayed in the web format. This defaults to the
1944           documentation path of your Git installation.
1945
1946       http.proxy
1947           Override the HTTP proxy, normally configured using the http_proxy,
1948           https_proxy, and all_proxy environment variables (see curl(1)).
1949           This can be overridden on a per-remote basis; see
1950           remote.<name>.proxy
1951
1952       http.cookiefile
1953           File containing previously stored cookie lines which should be used
1954           in the Git http session, if they match the server. The file format
1955           of the file to read cookies from should be plain HTTP headers or
1956           the Netscape/Mozilla cookie file format (see curl(1)). NOTE that
1957           the file specified with http.cookiefile is only used as input. No
1958           cookies will be stored in the file.
1959
1960       http.sslVerify
1961           Whether to verify the SSL certificate when fetching or pushing over
1962           HTTPS. Can be overridden by the GIT_SSL_NO_VERIFY environment
1963           variable.
1964
1965       http.sslCert
1966           File containing the SSL certificate when fetching or pushing over
1967           HTTPS. Can be overridden by the GIT_SSL_CERT environment variable.
1968
1969       http.sslKey
1970           File containing the SSL private key when fetching or pushing over
1971           HTTPS. Can be overridden by the GIT_SSL_KEY environment variable.
1972
1973       http.sslCertPasswordProtected
1974           Enable Git’s password prompt for the SSL certificate. Otherwise
1975           OpenSSL will prompt the user, possibly many times, if the
1976           certificate or private key is encrypted. Can be overridden by the
1977           GIT_SSL_CERT_PASSWORD_PROTECTED environment variable.
1978
1979       http.sslCAInfo
1980           File containing the certificates to verify the peer with when
1981           fetching or pushing over HTTPS. Can be overridden by the
1982           GIT_SSL_CAINFO environment variable.
1983
1984       http.sslCAPath
1985           Path containing files with the CA certificates to verify the peer
1986           with when fetching or pushing over HTTPS. Can be overridden by the
1987           GIT_SSL_CAPATH environment variable.
1988
1989       http.sslTry
1990           Attempt to use AUTH SSL/TLS and encrypted data transfers when
1991           connecting via regular FTP protocol. This might be needed if the
1992           FTP server requires it for security reasons or you wish to connect
1993           securely whenever remote FTP server supports it. Default is false
1994           since it might trigger certificate verification errors on
1995           misconfigured servers.
1996
1997       http.maxRequests
1998           How many HTTP requests to launch in parallel. Can be overridden by
1999           the GIT_HTTP_MAX_REQUESTS environment variable. Default is 5.
2000
2001       http.minSessions
2002           The number of curl sessions (counted across slots) to be kept
2003           across requests. They will not be ended with curl_easy_cleanup()
2004           until http_cleanup() is invoked. If USE_CURL_MULTI is not defined,
2005           this value will be capped at 1. Defaults to 1.
2006
2007       http.postBuffer
2008           Maximum size in bytes of the buffer used by smart HTTP transports
2009           when POSTing data to the remote system. For requests larger than
2010           this buffer size, HTTP/1.1 and Transfer-Encoding: chunked is used
2011           to avoid creating a massive pack file locally. Default is 1 MiB,
2012           which is sufficient for most requests.
2013
2014       http.lowSpeedLimit, http.lowSpeedTime
2015           If the HTTP transfer speed is less than http.lowSpeedLimit for
2016           longer than http.lowSpeedTime seconds, the transfer is aborted. Can
2017           be overridden by the GIT_HTTP_LOW_SPEED_LIMIT and
2018           GIT_HTTP_LOW_SPEED_TIME environment variables.
2019
2020       http.noEPSV
2021           A boolean which disables using of EPSV ftp command by curl. This
2022           can helpful with some "poor" ftp servers which don’t support EPSV
2023           mode. Can be overridden by the GIT_CURL_FTP_NO_EPSV environment
2024           variable. Default is false (curl will use EPSV).
2025
2026       http.useragent
2027           The HTTP USER_AGENT string presented to an HTTP server. The default
2028           value represents the version of the client Git such as git/1.7.1.
2029           This option allows you to override this value to a more common
2030           value such as Mozilla/4.0. This may be necessary, for instance, if
2031           connecting through a firewall that restricts HTTP connections to a
2032           set of common USER_AGENT strings (but not including those like
2033           git/1.7.1). Can be overridden by the GIT_HTTP_USER_AGENT
2034           environment variable.
2035
2036       i18n.commitEncoding
2037           Character encoding the commit messages are stored in; Git itself
2038           does not care per se, but this information is necessary e.g. when
2039           importing commits from emails or in the gitk graphical history
2040           browser (and possibly at other places in the future or in other
2041           porcelains). See e.g.  git-mailinfo(1). Defaults to utf-8.
2042
2043       i18n.logOutputEncoding
2044           Character encoding the commit messages are converted to when
2045           running git log and friends.
2046
2047       imap
2048           The configuration variables in the imap section are described in
2049           git-imap-send(1).
2050
2051       init.templatedir
2052           Specify the directory from which templates will be copied. (See the
2053           "TEMPLATE DIRECTORY" section of git-init(1).)
2054
2055       instaweb.browser
2056           Specify the program that will be used to browse your working
2057           repository in gitweb. See git-instaweb(1).
2058
2059       instaweb.httpd
2060           The HTTP daemon command-line to start gitweb on your working
2061           repository. See git-instaweb(1).
2062
2063       instaweb.local
2064           If true the web server started by git-instaweb(1) will be bound to
2065           the local IP (127.0.0.1).
2066
2067       instaweb.modulepath
2068           The default module path for git-instaweb(1) to use instead of
2069           /usr/lib/apache2/modules. Only used if httpd is Apache.
2070
2071       instaweb.port
2072           The port number to bind the gitweb httpd to. See git-instaweb(1).
2073
2074       interactive.singlekey
2075           In interactive commands, allow the user to provide one-letter input
2076           with a single key (i.e., without hitting enter). Currently this is
2077           used by the --patch mode of git-add(1), git-checkout(1), git-
2078           commit(1), git-reset(1), and git-stash(1). Note that this setting
2079           is silently ignored if portable keystroke input is not available.
2080
2081       log.abbrevCommit
2082           If true, makes git-log(1), git-show(1), and git-whatchanged(1)
2083           assume --abbrev-commit. You may override this option with
2084           --no-abbrev-commit.
2085
2086       log.date
2087           Set the default date-time mode for the log command. Setting a value
2088           for log.date is similar to using git log's --date option. Possible
2089           values are relative, local, default, iso, rfc, and short; see git-
2090           log(1) for details.
2091
2092       log.decorate
2093           Print out the ref names of any commits that are shown by the log
2094           command. If short is specified, the ref name prefixes refs/heads/,
2095           refs/tags/ and refs/remotes/ will not be printed. If full is
2096           specified, the full ref name (including prefix) will be printed.
2097           This is the same as the log commands --decorate option.
2098
2099       log.showroot
2100           If true, the initial commit will be shown as a big creation event.
2101           This is equivalent to a diff against an empty tree. Tools like git-
2102           log(1) or git-whatchanged(1), which normally hide the root commit
2103           will now show it. True by default.
2104
2105       log.mailmap
2106           If true, makes git-log(1), git-show(1), and git-whatchanged(1)
2107           assume --use-mailmap.
2108
2109       mailmap.file
2110           The location of an augmenting mailmap file. The default mailmap,
2111           located in the root of the repository, is loaded first, then the
2112           mailmap file pointed to by this variable. The location of the
2113           mailmap file may be in a repository subdirectory, or somewhere
2114           outside of the repository itself. See git-shortlog(1) and git-
2115           blame(1).
2116
2117       mailmap.blob
2118           Like mailmap.file, but consider the value as a reference to a blob
2119           in the repository. If both mailmap.file and mailmap.blob are given,
2120           both are parsed, with entries from mailmap.file taking precedence.
2121           In a bare repository, this defaults to HEAD:.mailmap. In a non-bare
2122           repository, it defaults to empty.
2123
2124       man.viewer
2125           Specify the programs that may be used to display help in the man
2126           format. See git-help(1).
2127
2128       man.<tool>.cmd
2129           Specify the command to invoke the specified man viewer. The
2130           specified command is evaluated in shell with the man page passed as
2131           argument. (See git-help(1).)
2132
2133       man.<tool>.path
2134           Override the path for the given tool that may be used to display
2135           help in the man format. See git-help(1).
2136
2137       merge.conflictstyle
2138           Specify the style in which conflicted hunks are written out to
2139           working tree files upon merge. The default is "merge", which shows
2140           a <<<<<<< conflict marker, changes made by one side, a =======
2141           marker, changes made by the other side, and then a >>>>>>> marker.
2142           An alternate style, "diff3", adds a ||||||| marker and the original
2143           text before the ======= marker.
2144
2145       merge.defaultToUpstream
2146           If merge is called without any commit argument, merge the upstream
2147           branches configured for the current branch by using their last
2148           observed values stored in their remote-tracking branches. The
2149           values of the branch.<current branch>.merge that name the branches
2150           at the remote named by branch.<current branch>.remote are
2151           consulted, and then they are mapped via remote.<remote>.fetch to
2152           their corresponding remote-tracking branches, and the tips of these
2153           tracking branches are merged.
2154
2155       merge.ff
2156           By default, Git does not create an extra merge commit when merging
2157           a commit that is a descendant of the current commit. Instead, the
2158           tip of the current branch is fast-forwarded. When set to false,
2159           this variable tells Git to create an extra merge commit in such a
2160           case (equivalent to giving the --no-ff option from the command
2161           line). When set to only, only such fast-forward merges are allowed
2162           (equivalent to giving the --ff-only option from the command line).
2163
2164       merge.log
2165           In addition to branch names, populate the log message with at most
2166           the specified number of one-line descriptions from the actual
2167           commits that are being merged. Defaults to false, and true is a
2168           synonym for 20.
2169
2170       merge.renameLimit
2171           The number of files to consider when performing rename detection
2172           during a merge; if not specified, defaults to the value of
2173           diff.renameLimit.
2174
2175       merge.renormalize
2176           Tell Git that canonical representation of files in the repository
2177           has changed over time (e.g. earlier commits record text files with
2178           CRLF line endings, but recent ones use LF line endings). In such a
2179           repository, Git can convert the data recorded in commits to a
2180           canonical form before performing a merge to reduce unnecessary
2181           conflicts. For more information, see section "Merging branches with
2182           differing checkin/checkout attributes" in gitattributes(5).
2183
2184       merge.stat
2185           Whether to print the diffstat between ORIG_HEAD and the merge
2186           result at the end of the merge. True by default.
2187
2188       merge.tool
2189           Controls which merge tool is used by git-mergetool(1). The list
2190           below shows the valid built-in values. Any other value is treated
2191           as a custom merge tool and requires that a corresponding
2192           mergetool.<tool>.cmd variable is defined.
2193
2194           ·   araxis
2195
2196           ·   bc3
2197
2198           ·   codecompare
2199
2200           ·   deltawalker
2201
2202           ·   diffuse
2203
2204           ·   ecmerge
2205
2206           ·   emerge
2207
2208           ·   gvimdiff
2209
2210           ·   gvimdiff2
2211
2212           ·   kdiff3
2213
2214           ·   meld
2215
2216           ·   opendiff
2217
2218           ·   p4merge
2219
2220           ·   tkdiff
2221
2222           ·   tortoisemerge
2223
2224           ·   vimdiff
2225
2226           ·   vimdiff2
2227
2228           ·   xxdiff
2229
2230       merge.verbosity
2231           Controls the amount of output shown by the recursive merge
2232           strategy. Level 0 outputs nothing except a final error message if
2233           conflicts were detected. Level 1 outputs only conflicts, 2 outputs
2234           conflicts and file changes. Level 5 and above outputs debugging
2235           information. The default is level 2. Can be overridden by the
2236           GIT_MERGE_VERBOSITY environment variable.
2237
2238       merge.<driver>.name
2239           Defines a human-readable name for a custom low-level merge driver.
2240           See gitattributes(5) for details.
2241
2242       merge.<driver>.driver
2243           Defines the command that implements a custom low-level merge
2244           driver. See gitattributes(5) for details.
2245
2246       merge.<driver>.recursive
2247           Names a low-level merge driver to be used when performing an
2248           internal merge between common ancestors. See gitattributes(5) for
2249           details.
2250
2251       mergetool.<tool>.path
2252           Override the path for the given tool. This is useful in case your
2253           tool is not in the PATH.
2254
2255       mergetool.<tool>.cmd
2256           Specify the command to invoke the specified merge tool. The
2257           specified command is evaluated in shell with the following
2258           variables available: BASE is the name of a temporary file
2259           containing the common base of the files to be merged, if available;
2260           LOCAL is the name of a temporary file containing the contents of
2261           the file on the current branch; REMOTE is the name of a temporary
2262           file containing the contents of the file from the branch being
2263           merged; MERGED contains the name of the file to which the merge
2264           tool should write the results of a successful merge.
2265
2266       mergetool.<tool>.trustExitCode
2267           For a custom merge command, specify whether the exit code of the
2268           merge command can be used to determine whether the merge was
2269           successful. If this is not set to true then the merge target file
2270           timestamp is checked and the merge assumed to have been successful
2271           if the file has been updated, otherwise the user is prompted to
2272           indicate the success of the merge.
2273
2274       mergetool.keepBackup
2275           After performing a merge, the original file with conflict markers
2276           can be saved as a file with a .orig extension. If this variable is
2277           set to false then this file is not preserved. Defaults to true
2278           (i.e. keep the backup files).
2279
2280       mergetool.keepTemporaries
2281           When invoking a custom merge tool, Git uses a set of temporary
2282           files to pass to the tool. If the tool returns an error and this
2283           variable is set to true, then these temporary files will be
2284           preserved, otherwise they will be removed after the tool has
2285           exited. Defaults to false.
2286
2287       mergetool.prompt
2288           Prompt before each invocation of the merge resolution program.
2289
2290       notes.displayRef
2291           The (fully qualified) refname from which to show notes when showing
2292           commit messages. The value of this variable can be set to a glob,
2293           in which case notes from all matching refs will be shown. You may
2294           also specify this configuration variable several times. A warning
2295           will be issued for refs that do not exist, but a glob that does not
2296           match any refs is silently ignored.
2297
2298           This setting can be overridden with the GIT_NOTES_DISPLAY_REF
2299           environment variable, which must be a colon separated list of refs
2300           or globs.
2301
2302           The effective value of "core.notesRef" (possibly overridden by
2303           GIT_NOTES_REF) is also implicitly added to the list of refs to be
2304           displayed.
2305
2306       notes.rewrite.<command>
2307           When rewriting commits with <command> (currently amend or rebase)
2308           and this variable is set to true, Git automatically copies your
2309           notes from the original to the rewritten commit. Defaults to true,
2310           but see "notes.rewriteRef" below.
2311
2312       notes.rewriteMode
2313           When copying notes during a rewrite (see the
2314           "notes.rewrite.<command>" option), determines what to do if the
2315           target commit already has a note. Must be one of overwrite,
2316           concatenate, or ignore. Defaults to concatenate.
2317
2318           This setting can be overridden with the GIT_NOTES_REWRITE_MODE
2319           environment variable.
2320
2321       notes.rewriteRef
2322           When copying notes during a rewrite, specifies the (fully
2323           qualified) ref whose notes should be copied. The ref may be a glob,
2324           in which case notes in all matching refs will be copied. You may
2325           also specify this configuration several times.
2326
2327           Does not have a default value; you must configure this variable to
2328           enable note rewriting. Set it to refs/notes/commits to enable
2329           rewriting for the default commit notes.
2330
2331           This setting can be overridden with the GIT_NOTES_REWRITE_REF
2332           environment variable, which must be a colon separated list of refs
2333           or globs.
2334
2335       pack.window
2336           The size of the window used by git-pack-objects(1) when no window
2337           size is given on the command line. Defaults to 10.
2338
2339       pack.depth
2340           The maximum delta depth used by git-pack-objects(1) when no maximum
2341           depth is given on the command line. Defaults to 50.
2342
2343       pack.windowMemory
2344           The window memory size limit used by git-pack-objects(1) when no
2345           limit is given on the command line. The value can be suffixed with
2346           "k", "m", or "g". Defaults to 0, meaning no limit.
2347
2348       pack.compression
2349           An integer -1..9, indicating the compression level for objects in a
2350           pack file. -1 is the zlib default. 0 means no compression, and 1..9
2351           are various speed/size tradeoffs, 9 being slowest. If not set,
2352           defaults to core.compression. If that is not set, defaults to -1,
2353           the zlib default, which is "a default compromise between speed and
2354           compression (currently equivalent to level 6)."
2355
2356           Note that changing the compression level will not automatically
2357           recompress all existing objects. You can force recompression by
2358           passing the -F option to git-repack(1).
2359
2360       pack.deltaCacheSize
2361           The maximum memory in bytes used for caching deltas in git-pack-
2362           objects(1) before writing them out to a pack. This cache is used to
2363           speed up the writing object phase by not having to recompute the
2364           final delta result once the best match for all objects is found.
2365           Repacking large repositories on machines which are tight with
2366           memory might be badly impacted by this though, especially if this
2367           cache pushes the system into swapping. A value of 0 means no limit.
2368           The smallest size of 1 byte may be used to virtually disable this
2369           cache. Defaults to 256 MiB.
2370
2371       pack.deltaCacheLimit
2372           The maximum size of a delta, that is cached in git-pack-objects(1).
2373           This cache is used to speed up the writing object phase by not
2374           having to recompute the final delta result once the best match for
2375           all objects is found. Defaults to 1000.
2376
2377       pack.threads
2378           Specifies the number of threads to spawn when searching for best
2379           delta matches. This requires that git-pack-objects(1) be compiled
2380           with pthreads otherwise this option is ignored with a warning. This
2381           is meant to reduce packing time on multiprocessor machines. The
2382           required amount of memory for the delta search window is however
2383           multiplied by the number of threads. Specifying 0 will cause Git to
2384           auto-detect the number of CPU’s and set the number of threads
2385           accordingly.
2386
2387       pack.indexVersion
2388           Specify the default pack index version. Valid values are 1 for
2389           legacy pack index used by Git versions prior to 1.5.2, and 2 for
2390           the new pack index with capabilities for packs larger than 4 GB as
2391           well as proper protection against the repacking of corrupted packs.
2392           Version 2 is the default. Note that version 2 is enforced and this
2393           config option ignored whenever the corresponding pack is larger
2394           than 2 GB.
2395
2396           If you have an old Git that does not understand the version 2 *.idx
2397           file, cloning or fetching over a non native protocol (e.g. "http"
2398           and "rsync") that will copy both *.pack file and corresponding
2399           *.idx file from the other side may give you a repository that
2400           cannot be accessed with your older version of Git. If the *.pack
2401           file is smaller than 2 GB, however, you can use git-index-pack(1)
2402           on the *.pack file to regenerate the *.idx file.
2403
2404       pack.packSizeLimit
2405           The maximum size of a pack. This setting only affects packing to a
2406           file when repacking, i.e. the git:// protocol is unaffected. It can
2407           be overridden by the --max-pack-size option of git-repack(1). The
2408           minimum size allowed is limited to 1 MiB. The default is unlimited.
2409           Common unit suffixes of k, m, or g are supported.
2410
2411       pager.<cmd>
2412           If the value is boolean, turns on or off pagination of the output
2413           of a particular Git subcommand when writing to a tty. Otherwise,
2414           turns on pagination for the subcommand using the pager specified by
2415           the value of pager.<cmd>. If --paginate or --no-pager is specified
2416           on the command line, it takes precedence over this option. To
2417           disable pagination for all commands, set core.pager or GIT_PAGER to
2418           cat.
2419
2420       pretty.<name>
2421           Alias for a --pretty= format string, as specified in git-log(1).
2422           Any aliases defined here can be used just as the built-in pretty
2423           formats could. For example, running git config pretty.changelog
2424           "format:* %H %s" would cause the invocation git log
2425           --pretty=changelog to be equivalent to running git log
2426           "--pretty=format:* %H %s". Note that an alias with the same name as
2427           a built-in format will be silently ignored.
2428
2429       pull.rebase
2430           When true, rebase branches on top of the fetched branch, instead of
2431           merging the default branch from the default remote when "git pull"
2432           is run. See "branch.<name>.rebase" for setting this on a per-branch
2433           basis.
2434
2435           NOTE: this is a possibly dangerous operation; do not use it unless
2436           you understand the implications (see git-rebase(1) for details).
2437
2438       pull.octopus
2439           The default merge strategy to use when pulling multiple branches at
2440           once.
2441
2442       pull.twohead
2443           The default merge strategy to use when pulling a single branch.
2444
2445       push.default
2446           Defines the action git push should take if no refspec is given on
2447           the command line, no refspec is configured in the remote, and no
2448           refspec is implied by any of the options given on the command line.
2449           Possible values are:
2450
2451           ·   nothing - do not push anything.
2452
2453           ·   matching - push all branches having the same name in both ends.
2454               This is for those who prepare all the branches into a
2455               publishable shape and then push them out with a single command.
2456               It is not appropriate for pushing into a repository shared by
2457               multiple users, since locally stalled branches will attempt a
2458               non-fast forward push if other users updated the branch.
2459
2460               This is currently the default, but Git 2.0 will change the
2461               default to simple.
2462
2463           ·   upstream - push the current branch to its upstream branch
2464               (tracking is a deprecated synonym for this). With this, git
2465               push will update the same remote ref as the one which is merged
2466               by git pull, making push and pull symmetrical. See
2467               "branch.<name>.merge" for how to configure the upstream branch.
2468
2469           ·   simple - like upstream, but refuses to push if the upstream
2470               branch’s name is different from the local one. This is the
2471               safest option and is well-suited for beginners. It will become
2472               the default in Git 2.0.
2473
2474           ·   current - push the current branch to a branch of the same name.
2475
2476           The simple, current and upstream modes are for those who want to
2477           push out a single branch after finishing work, even when the other
2478           branches are not yet ready to be pushed out. If you are working
2479           with other people to push into the same shared repository, you
2480           would want to use one of these.
2481
2482       rebase.stat
2483           Whether to show a diffstat of what changed upstream since the last
2484           rebase. False by default.
2485
2486       rebase.autosquash
2487           If set to true enable --autosquash option by default.
2488
2489       receive.autogc
2490           By default, git-receive-pack will run "git-gc --auto" after
2491           receiving data from git-push and updating refs. You can stop it by
2492           setting this variable to false.
2493
2494       receive.fsckObjects
2495           If it is set to true, git-receive-pack will check all received
2496           objects. It will abort in the case of a malformed object or a
2497           broken link. The result of an abort are only dangling objects.
2498           Defaults to false. If not set, the value of transfer.fsckObjects is
2499           used instead.
2500
2501       receive.unpackLimit
2502           If the number of objects received in a push is below this limit
2503           then the objects will be unpacked into loose object files. However
2504           if the number of received objects equals or exceeds this limit then
2505           the received pack will be stored as a pack, after adding any
2506           missing delta bases. Storing the pack from a push can make the push
2507           operation complete faster, especially on slow filesystems. If not
2508           set, the value of transfer.unpackLimit is used instead.
2509
2510       receive.denyDeletes
2511           If set to true, git-receive-pack will deny a ref update that
2512           deletes the ref. Use this to prevent such a ref deletion via a
2513           push.
2514
2515       receive.denyDeleteCurrent
2516           If set to true, git-receive-pack will deny a ref update that
2517           deletes the currently checked out branch of a non-bare repository.
2518
2519       receive.denyCurrentBranch
2520           If set to true or "refuse", git-receive-pack will deny a ref update
2521           to the currently checked out branch of a non-bare repository. Such
2522           a push is potentially dangerous because it brings the HEAD out of
2523           sync with the index and working tree. If set to "warn", print a
2524           warning of such a push to stderr, but allow the push to proceed. If
2525           set to false or "ignore", allow such pushes with no message.
2526           Defaults to "refuse".
2527
2528       receive.denyNonFastForwards
2529           If set to true, git-receive-pack will deny a ref update which is
2530           not a fast-forward. Use this to prevent such an update via a push,
2531           even if that push is forced. This configuration variable is set
2532           when initializing a shared repository.
2533
2534       receive.hiderefs
2535           String(s) receive-pack uses to decide which refs to omit from its
2536           initial advertisement. Use more than one definitions to specify
2537           multiple prefix strings. A ref that are under the hierarchies
2538           listed on the value of this variable is excluded, and is hidden
2539           when responding to git push, and an attempt to update or delete a
2540           hidden ref by git push is rejected.
2541
2542       receive.updateserverinfo
2543           If set to true, git-receive-pack will run git-update-server-info
2544           after receiving data from git-push and updating refs.
2545
2546       remote.pushdefault
2547           The remote to push to by default. Overrides branch.<name>.remote
2548           for all branches, and is overridden by branch.<name>.pushremote for
2549           specific branches.
2550
2551       remote.<name>.url
2552           The URL of a remote repository. See git-fetch(1) or git-push(1).
2553
2554       remote.<name>.pushurl
2555           The push URL of a remote repository. See git-push(1).
2556
2557       remote.<name>.proxy
2558           For remotes that require curl (http, https and ftp), the URL to the
2559           proxy to use for that remote. Set to the empty string to disable
2560           proxying for that remote.
2561
2562       remote.<name>.fetch
2563           The default set of "refspec" for git-fetch(1). See git-fetch(1).
2564
2565       remote.<name>.push
2566           The default set of "refspec" for git-push(1). See git-push(1).
2567
2568       remote.<name>.mirror
2569           If true, pushing to this remote will automatically behave as if the
2570           --mirror option was given on the command line.
2571
2572       remote.<name>.skipDefaultUpdate
2573           If true, this remote will be skipped by default when updating using
2574           git-fetch(1) or the update subcommand of git-remote(1).
2575
2576       remote.<name>.skipFetchAll
2577           If true, this remote will be skipped by default when updating using
2578           git-fetch(1) or the update subcommand of git-remote(1).
2579
2580       remote.<name>.receivepack
2581           The default program to execute on the remote side when pushing. See
2582           option --receive-pack of git-push(1).
2583
2584       remote.<name>.uploadpack
2585           The default program to execute on the remote side when fetching.
2586           See option --upload-pack of git-fetch-pack(1).
2587
2588       remote.<name>.tagopt
2589           Setting this value to --no-tags disables automatic tag following
2590           when fetching from remote <name>. Setting it to --tags will fetch
2591           every tag from remote <name>, even if they are not reachable from
2592           remote branch heads. Passing these flags directly to git-fetch(1)
2593           can override this setting. See options --tags and --no-tags of git-
2594           fetch(1).
2595
2596       remote.<name>.vcs
2597           Setting this to a value <vcs> will cause Git to interact with the
2598           remote with the git-remote-<vcs> helper.
2599
2600       remotes.<group>
2601           The list of remotes which are fetched by "git remote update
2602           <group>". See git-remote(1).
2603
2604       repack.usedeltabaseoffset
2605           By default, git-repack(1) creates packs that use delta-base offset.
2606           If you need to share your repository with Git older than version
2607           1.4.4, either directly or via a dumb protocol such as http, then
2608           you need to set this option to "false" and repack. Access from old
2609           Git versions over the native protocol are unaffected by this
2610           option.
2611
2612       rerere.autoupdate
2613           When set to true, git-rerere updates the index with the resulting
2614           contents after it cleanly resolves conflicts using previously
2615           recorded resolution. Defaults to false.
2616
2617       rerere.enabled
2618           Activate recording of resolved conflicts, so that identical
2619           conflict hunks can be resolved automatically, should they be
2620           encountered again. By default, git-rerere(1) is enabled if there is
2621           an rr-cache directory under the $GIT_DIR, e.g. if "rerere" was
2622           previously used in the repository.
2623
2624       sendemail.identity
2625           A configuration identity. When given, causes values in the
2626           sendemail.<identity> subsection to take precedence over values in
2627           the sendemail section. The default identity is the value of
2628           sendemail.identity.
2629
2630       sendemail.smtpencryption
2631           See git-send-email(1) for description. Note that this setting is
2632           not subject to the identity mechanism.
2633
2634       sendemail.smtpssl
2635           Deprecated alias for sendemail.smtpencryption = ssl.
2636
2637       sendemail.<identity>.*
2638           Identity-specific versions of the sendemail.*  parameters found
2639           below, taking precedence over those when the this identity is
2640           selected, through command-line or sendemail.identity.
2641
2642       sendemail.aliasesfile, sendemail.aliasfiletype, sendemail.annotate,
2643       sendemail.bcc, sendemail.cc, sendemail.cccmd, sendemail.chainreplyto,
2644       sendemail.confirm, sendemail.envelopesender, sendemail.from,
2645       sendemail.multiedit, sendemail.signedoffbycc, sendemail.smtppass,
2646       sendemail.suppresscc, sendemail.suppressfrom, sendemail.to,
2647       sendemail.smtpdomain, sendemail.smtpserver, sendemail.smtpserverport,
2648       sendemail.smtpserveroption, sendemail.smtpuser, sendemail.thread,
2649       sendemail.validate
2650           See git-send-email(1) for description.
2651
2652       sendemail.signedoffcc
2653           Deprecated alias for sendemail.signedoffbycc.
2654
2655       showbranch.default
2656           The default set of branches for git-show-branch(1). See git-show-
2657           branch(1).
2658
2659       status.relativePaths
2660           By default, git-status(1) shows paths relative to the current
2661           directory. Setting this variable to false shows paths relative to
2662           the repository root (this was the default for Git prior to v1.5.4).
2663
2664       status.showUntrackedFiles
2665           By default, git-status(1) and git-commit(1) show files which are
2666           not currently tracked by Git. Directories which contain only
2667           untracked files, are shown with the directory name only. Showing
2668           untracked files means that Git needs to lstat() all all the files
2669           in the whole repository, which might be slow on some systems. So,
2670           this variable controls how the commands displays the untracked
2671           files. Possible values are:
2672
2673           ·   no - Show no untracked files.
2674
2675           ·   normal - Show untracked files and directories.
2676
2677           ·   all - Show also individual files in untracked directories.
2678
2679           If this variable is not specified, it defaults to normal. This
2680           variable can be overridden with the -u|--untracked-files option of
2681           git-status(1) and git-commit(1).
2682
2683       status.submodulesummary
2684           Defaults to false. If this is set to a non zero number or true
2685           (identical to -1 or an unlimited number), the submodule summary
2686           will be enabled and a summary of commits for modified submodules
2687           will be shown (see --summary-limit option of git-submodule(1)).
2688
2689       submodule.<name>.path, submodule.<name>.url, submodule.<name>.update
2690           The path within this project, URL, and the updating strategy for a
2691           submodule. These variables are initially populated by git submodule
2692           init; edit them to override the URL and other values found in the
2693           .gitmodules file. See git-submodule(1) and gitmodules(5) for
2694           details.
2695
2696       submodule.<name>.branch
2697           The remote branch name for a submodule, used by git submodule
2698           update --remote. Set this option to override the value found in the
2699           .gitmodules file. See git-submodule(1) and gitmodules(5) for
2700           details.
2701
2702       submodule.<name>.fetchRecurseSubmodules
2703           This option can be used to control recursive fetching of this
2704           submodule. It can be overridden by using the
2705           --[no-]recurse-submodules command line option to "git fetch" and
2706           "git pull". This setting will override that from in the
2707           gitmodules(5) file.
2708
2709       submodule.<name>.ignore
2710           Defines under what circumstances "git status" and the diff family
2711           show a submodule as modified. When set to "all", it will never be
2712           considered modified, "dirty" will ignore all changes to the
2713           submodules work tree and takes only differences between the HEAD of
2714           the submodule and the commit recorded in the superproject into
2715           account. "untracked" will additionally let submodules with modified
2716           tracked files in their work tree show up. Using "none" (the default
2717           when this option is not set) also shows submodules that have
2718           untracked files in their work tree as changed. This setting
2719           overrides any setting made in .gitmodules for this submodule, both
2720           settings can be overridden on the command line by using the
2721           "--ignore-submodules" option.
2722
2723       tar.umask
2724           This variable can be used to restrict the permission bits of tar
2725           archive entries. The default is 0002, which turns off the world
2726           write bit. The special value "user" indicates that the archiving
2727           user’s umask will be used instead. See umask(2) and git-archive(1).
2728
2729       transfer.fsckObjects
2730           When fetch.fsckObjects or receive.fsckObjects are not set, the
2731           value of this variable is used instead. Defaults to false.
2732
2733       transfer.hiderefs
2734           This variable can be used to set both receive.hiderefs and
2735           uploadpack.hiderefs at the same time to the same values. See
2736           entries for these other variables.
2737
2738       transfer.unpackLimit
2739           When fetch.unpackLimit or receive.unpackLimit are not set, the
2740           value of this variable is used instead. The default value is 100.
2741
2742       uploadpack.hiderefs
2743           String(s) upload-pack uses to decide which refs to omit from its
2744           initial advertisement. Use more than one definitions to specify
2745           multiple prefix strings. A ref that are under the hierarchies
2746           listed on the value of this variable is excluded, and is hidden
2747           from git ls-remote, git fetch, etc. An attempt to fetch a hidden
2748           ref by git fetch will fail. See also uploadpack.allowtipsha1inwant.
2749
2750       uploadpack.allowtipsha1inwant
2751           When uploadpack.hiderefs is in effect, allow upload-pack to accept
2752           a fetch request that asks for an object at the tip of a hidden ref
2753           (by default, such a request is rejected). see also
2754           uploadpack.hiderefs.
2755
2756       url.<base>.insteadOf
2757           Any URL that starts with this value will be rewritten to start,
2758           instead, with <base>. In cases where some site serves a large
2759           number of repositories, and serves them with multiple access
2760           methods, and some users need to use different access methods, this
2761           feature allows people to specify any of the equivalent URLs and
2762           have Git automatically rewrite the URL to the best alternative for
2763           the particular user, even for a never-before-seen repository on the
2764           site. When more than one insteadOf strings match a given URL, the
2765           longest match is used.
2766
2767       url.<base>.pushInsteadOf
2768           Any URL that starts with this value will not be pushed to; instead,
2769           it will be rewritten to start with <base>, and the resulting URL
2770           will be pushed to. In cases where some site serves a large number
2771           of repositories, and serves them with multiple access methods, some
2772           of which do not allow push, this feature allows people to specify a
2773           pull-only URL and have Git automatically use an appropriate URL to
2774           push, even for a never-before-seen repository on the site. When
2775           more than one pushInsteadOf strings match a given URL, the longest
2776           match is used. If a remote has an explicit pushurl, Git will ignore
2777           this setting for that remote.
2778
2779       user.email
2780           Your email address to be recorded in any newly created commits. Can
2781           be overridden by the GIT_AUTHOR_EMAIL, GIT_COMMITTER_EMAIL, and
2782           EMAIL environment variables. See git-commit-tree(1).
2783
2784       user.name
2785           Your full name to be recorded in any newly created commits. Can be
2786           overridden by the GIT_AUTHOR_NAME and GIT_COMMITTER_NAME
2787           environment variables. See git-commit-tree(1).
2788
2789       user.signingkey
2790           If git-tag(1) is not selecting the key you want it to automatically
2791           when creating a signed tag, you can override the default selection
2792           with this variable. This option is passed unchanged to gpg’s
2793           --local-user parameter, so you may specify a key using any method
2794           that gpg supports.
2795
2796       web.browser
2797           Specify a web browser that may be used by some commands. Currently
2798           only git-instaweb(1) and git-help(1) may use it.
2799

GIT

2801       Part of the git(1) suite
2802
2803
2804
2805Git 1.8.3.1                       11/19/2018                     GIT-CONFIG(1)
Impressum