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