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