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