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       The file-option can be one of --system, --global or --file which
45       specify where the values will be read from or written to. The default
46       is to assume the config file of the current repository, .git/config
47       unless defined otherwise with GIT_DIR and GIT_CONFIG (see the section
48       called “FILES”).
49
50       This command will fail if:
51
52        1. The config file is invalid,
53
54        2. Can not write to the config file,
55
56        3. no section was provided,
57
58        4. the section or key is invalid,
59
60        5. you try to unset an option which does not exist,
61
62        6. you try to unset/set an option for which multiple lines match, or
63
64        7. you use --global option without $HOME being properly set.
65

OPTIONS

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

FILES

176       If not set explicitly with --file, there are three files where git
177       config will search for configuration options:
178
179       $GIT_DIR/config
180           Repository specific configuration file. (The filename is of course
181           relative to the repository root, not the working directory.)
182
183       ~/.gitconfig
184           User-specific configuration file. Also called "global"
185           configuration file.
186
187       $(prefix)/etc/gitconfig
188           System-wide configuration file.
189
190       If no further options are given, all reading options will read all of
191       these files that are available. If the global or the system-wide
192       configuration file are not available they will be ignored. If the
193       repository configuration file is not available or readable, git config
194       will exit with a non-zero error code. However, in neither case will an
195       error message be issued.
196
197       All writing options will per default write to the repository specific
198       configuration file. Note that this also affects options like
199       --replace-all and --unset. git config will only ever change one file at
200       a time.
201
202       You can override these rules either by command line options or by
203       environment variables. The --global and the --system options will limit
204       the file used to the global or system-wide file respectively. The
205       GIT_CONFIG environment variable has a similar effect, but you can
206       specify any filename you want.
207

ENVIRONMENT

209       GIT_CONFIG
210           Take the configuration from the given file instead of .git/config.
211           Using the "--global" option forces this to ~/.gitconfig. Using the
212           "--system" option forces this to $(prefix)/etc/gitconfig.
213
214       See also the section called “FILES”.
215

EXAMPLES

217       Given a .git/config like this:
218
219           #
220           # This is the config file, and
221           # a '#' or ';' character indicates
222           # a comment
223           #
224
225           ; core variables
226           [core]
227                   ; Don't trust file modes
228                   filemode = false
229
230           ; Our diff algorithm
231           [diff]
232                   external = /usr/local/bin/diff-wrapper
233                   renames = true
234
235           ; Proxy settings
236           [core]
237                   gitproxy="proxy-command" for kernel.org
238                   gitproxy=default-proxy ; for all the rest
239
240       you can set the filemode to true with
241
242           % git config core.filemode true
243
244
245       The hypothetical proxy command entries actually have a postfix to
246       discern what URL they apply to. Here is how to change the entry for
247       kernel.org to "ssh".
248
249           % git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'
250
251
252       This makes sure that only the key/value pair for kernel.org is
253       replaced.
254
255       To delete the entry for renames, do
256
257           % git config --unset diff.renames
258
259
260       If you want to delete an entry for a multivar (like core.gitproxy
261       above), you have to provide a regex matching the value of exactly one
262       line.
263
264       To query the value for a given key, do
265
266           % git config --get core.filemode
267
268
269       or
270
271           % git config core.filemode
272
273
274       or, to query a multivar:
275
276           % git config --get core.gitproxy "for kernel.org$"
277
278
279       If you want to know all the values for a multivar, do:
280
281           % git config --get-all core.gitproxy
282
283
284       If you like to live dangerously, you can replace all core.gitproxy by a
285       new one with
286
287           % git config --replace-all core.gitproxy ssh
288
289
290       However, if you really only want to replace the line for the default
291       proxy, i.e. the one without a "for ..." postfix, do something like
292       this:
293
294           % git config core.gitproxy ssh '! for '
295
296
297       To actually match only values with an exclamation mark, you have to
298
299           % git config section.key value '[!]'
300
301
302       To add a new proxy, without altering any of the existing ones, use
303
304           % git config core.gitproxy '"proxy-command" for example.com'
305
306
307       An example to use customized color from the configuration in your
308       script:
309
310           #!/bin/sh
311           WS=$(git config --get-color color.diff.whitespace "blue reverse")
312           RESET=$(git config --get-color "" "reset")
313           echo "${WS}your whitespace color or blue reverse${RESET}"
314
315

CONFIGURATION FILE

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

AUTHOR

2199       Written by Johannes Schindelin <Johannes.Schindelin@gmx.de[1]>
2200

DOCUMENTATION

2202       Documentation by Johannes Schindelin, Petr Baudis and the git-list
2203       <git@vger.kernel.org[2]>.
2204

GIT

2206       Part of the git(1) suite
2207

NOTES

2209        1. Johannes.Schindelin@gmx.de
2210           mailto:Johannes.Schindelin@gmx.de
2211
2212        2. git@vger.kernel.org
2213           mailto:git@vger.kernel.org
2214
2215
2216
2217Git 1.7.4.4                       04/11/2011                     GIT-CONFIG(1)
Impressum