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
22 You can query/set/replace/unset options with this command. The name is
23 actually the section and the key separated by a dot, and the value will
24 be escaped.
25
26 Multiple lines can be added to an option by using the --add option. If
27 you want to update or unset an option which can occur on multiple
28 lines, a POSIX regexp value_regex needs to be given. Only the existing
29 values that match the regexp are updated or unset. If you want to
30 handle the lines that do not match the regex, just prepend a single
31 exclamation mark in front (see also the section called “EXAMPLES”).
32
33 The type specifier can be either --int or --bool, which will make
34 git-config ensure that the variable(s) are of the given type and
35 convert the value to the canonical form (simple decimal number for int,
36 a "true" or "false" string for bool). If no type specifier is passed,
37 no checks or transformations are performed on the value.
38
39 The file-option can be one of --system, --global or --file which
40 specify where the values will be read from or written to. The default
41 is to assume the config file of the current repository, .git/config
42 unless defined otherwise with GIT_DIR and GIT_CONFIG (see the section
43 called “FILES”).
44
45 This command will fail if:
46
47
48 1. The config file is invalid,
49
50 2. Can not write to the config file,
51
52 3. no section was provided,
53
54 4. the section or key is invalid,
55
56 5. you try to unset an option which does not exist,
57
58 6. you try to unset/set an option for which multiple lines match, or
59
60 7. you use --global option without $HOME being properly set.
61
63 --replace-all
64 Default behavior is to replace at most one line. This replaces all
65 lines matching the key (and optionally the value_regex).
66
67 --add
68 Adds a new line to the option without altering any existing values.
69 This is the same as providing ^$ as the value_regex.
70
71 --get
72 Get the value for a given key (optionally filtered by a regex
73 matching the value). Returns error code 1 if the key was not found
74 and error code 2 if multiple key values were found.
75
76 --get-all
77 Like get, but does not fail if the number of values for the key is
78 not exactly one.
79
80 --get-regexp
81 Like --get-all, but interprets the name as a regular expression.
82 Also outputs the key names.
83
84 --global
85 For writing options: write to global ~/.gitconfig file rather than
86 the repository .git/config.
87
88 For reading options: read only from global ~/.gitconfig rather than
89 from all available files.
90
91 See also the section called “FILES”.
92
93 --system
94 For writing options: write to system-wide $(prefix)/etc/gitconfig
95 rather than the repository .git/config.
96
97 For reading options: read only from system-wide
98 $(prefix)/etc/gitconfig rather than from all available files.
99
100 See also the section called “FILES”.
101
102 -f config-file, --file config-file
103 Use the given config file instead of the one specified by
104 GIT_CONFIG.
105
106 --remove-section
107 Remove the given section from the configuration file.
108
109 --rename-section
110 Rename the given section to a new name.
111
112 --unset
113 Remove the line matching the key from config file.
114
115 --unset-all
116 Remove all lines matching the key from config file.
117
118 -l, --list
119 List all variables set in config file.
120
121 --bool
122 git-config will ensure that the output is "true" or "false"
123
124 --int
125 git-config will ensure that the output is a simple decimal number.
126 An optional value suffix of k, m, or g in the config file will
127 cause the value to be multiplied by 1024, 1048576, or 1073741824
128 prior to output.
129
130 -z, --null
131 For all options that output values and/or keys, always end values
132 with with the null character (instead of a newline). Use newline
133 instead as a delimiter between key and value. This allows for
134 secure parsing of the output without getting confused e.g. by
135 values that contain line breaks.
136
138 If not set explicitly with --file, there are three files where
139 git-config will search for configuration options:
140
141 $GIT_DIR/config
142 Repository specific configuration file. (The filename is of course
143 relative to the repository root, not the working directory.)
144
145 ~/.gitconfig
146 User-specific configuration file. Also called "global"
147 configuration file.
148
149 $(prefix)/etc/gitconfig
150 System-wide configuration file.
151 If no further options are given, all reading options will read all of
152 these files that are available. If the global or the system-wide
153 configuration file are not available they will be ignored. If the
154 repository configuration file is not available or readable, git-config
155 will exit with a non-zero error code. However, in neither case will an
156 error message be issued.
157
158 All writing options will per default write to the repository specific
159 configuration file. Note that this also affects options like
160 --replace-all and --unset. git-config will only ever change one file at
161 a time.
162
163 You can override these rules either by command line options or by
164 environment variables. The --global and the --system options will limit
165 the file used to the global or system-wide file respectively. The
166 GIT_CONFIG environment variable has a similar effect, but you can
167 specify any filename you want.
168
169 The GIT_CONFIG_LOCAL environment variable on the other hand only
170 changes the name used instead of the repository configuration file. The
171 global and the system-wide configuration files will still be read. (For
172 writing options this will obviously result in the same behavior as
173 using GIT_CONFIG.)
174
176 GIT_CONFIG
177 Take the configuration from the given file instead of .git/config.
178 Using the "--global" option forces this to ~/.gitconfig. Using the
179 "--system" option forces this to $(prefix)/etc/gitconfig.
180
181 GIT_CONFIG_LOCAL
182 Take the configuration from the given file instead if .git/config.
183 Still read the global and the system-wide configuration files,
184 though.
185 See also the section called “FILES”.
186
188 Given a .git/config like this:
189
190
191 #
192 # This is the config file, and
193 # a ´#´ or ´;´ character indicates
194 # a comment
195 #
196
197 ; core variables
198 [core]
199 ; Don´t trust file modes
200 filemode = false
201
202 ; Our diff algorithm
203 [diff]
204 external = "/usr/local/bin/gnu-diff -u"
205 renames = true
206
207 ; Proxy settings
208 [core]
209 gitproxy="proxy-command" for kernel.org
210 gitproxy=default-proxy ; for all the rest
211 you can set the filemode to true with
212
213
214
215 % git config core.filemode true
216
217 The hypothetical proxy command entries actually have a postfix to
218 discern what URL they apply to. Here is how to change the entry for
219 kernel.org to "ssh".
220
221
222
223 % git config core.gitproxy ´"ssh" for kernel.org´ ´for kernel.org$´
224
225 This makes sure that only the key/value pair for kernel.org is
226 replaced.
227
228 To delete the entry for renames, do
229
230
231
232 % git config --unset diff.renames
233
234 If you want to delete an entry for a multivar (like core.gitproxy
235 above), you have to provide a regex matching the value of exactly one
236 line.
237
238 To query the value for a given key, do
239
240
241
242 % git config --get core.filemode
243
244 or
245
246
247
248 % git config core.filemode
249
250 or, to query a multivar:
251
252
253
254 % git config --get core.gitproxy "for kernel.org$"
255
256 If you want to know all the values for a multivar, do:
257
258
259
260 % git config --get-all core.gitproxy
261
262 If you like to live dangerous, you can replace all core.gitproxy by a
263 new one with
264
265
266
267 % git config --replace-all core.gitproxy ssh
268
269 However, if you really only want to replace the line for the default
270 proxy, i.e. the one without a "for ..." postfix, do something like
271 this:
272
273
274
275 % git config core.gitproxy ssh ´! for ´
276
277 To actually match only values with an exclamation mark, you have to
278
279
280
281 % git config section.key value ´[!]´
282
283 To add a new proxy, without altering any of the existing ones, use
284
285
286
287 % git config core.gitproxy ´"proxy-command" for example.com´
288
289
291 The git configuration file contains a number of variables that affect
292 the git command´s behavior. .git/config file for each repository is
293 used to store the information for that repository, and $HOME/.gitconfig
294 is used to store per user information to give fallback values for
295 .git/config file. The file /etc/gitconfig can be used to store
296 system-wide defaults.
297
298 They can be used by both the git plumbing and the porcelains. The
299 variables are divided into sections, where in the fully qualified
300 variable name the variable itself is the last dot-separated segment and
301 the section name is everything before the last dot. The variable names
302 are case-insensitive and only alphanumeric characters are allowed. Some
303 variables may appear multiple times.
304
305 Syntax
306 The syntax is fairly flexible and permissive; whitespaces are mostly
307 ignored. The # and ; characters begin comments to the end of line,
308 blank lines are ignored.
309
310 The file consists of sections and variables. A section begins with the
311 name of the section in square brackets and continues until the next
312 section begins. Section names are not case sensitive. Only alphanumeric
313 characters, - and . are allowed in section names. Each variable must
314 belong to some section, which means that there must be section header
315 before first setting of a variable.
316
317 Sections can be further divided into subsections. To begin a subsection
318 put its name in double quotes, separated by space from the section
319 name, in the section header, like in example below:
320
321
322
323 [section "subsection"]
324
325
326 Subsection names can contain any characters except newline (doublequote
327 " and backslash have to be escaped as \" and \\, respectively) and are
328 case sensitive. Section header cannot span multiple lines. Variables
329 may belong directly to a section or to a given subsection. You can have
330 [section] if you have [section "subsection"], but you don´t need to.
331
332 There is also (case insensitive) alternative [section.subsection]
333 syntax. In this syntax subsection names follow the same restrictions as
334 for section name.
335
336 All the other lines are recognized as setting variables, in the form
337 name = value. If there is no equal sign on the line, the entire line is
338 taken as name and the variable is recognized as boolean "true". The
339 variable names are case-insensitive and only alphanumeric characters
340 and - are allowed. There can be more than one value for a given
341 variable; we say then that variable is multivalued.
342
343 Leading and trailing whitespace in a variable value is discarded.
344 Internal whitespace within a variable value is retained verbatim.
345
346 The values following the equals sign in variable assign are all either
347 a string, an integer, or a boolean. Boolean values may be given as
348 yes/no, 0/1 or true/false. Case is not significant in boolean values,
349 when converting value to the canonical form using --bool type
350 specifier; git-config will ensure that the output is "true" or "false".
351
352 String values may be entirely or partially enclosed in double quotes.
353 You need to enclose variable value in double quotes if you want to
354 preserve leading or trailing whitespace, or if variable value contains
355 beginning of comment characters (if it contains # or ;). Double quote "
356 and backslash \ characters in variable value must be escaped: use \"
357 for " and \\ for \.
358
359 The following escape sequences (beside \" and \\) are recognized: \n
360 for newline character (NL), \t for horizontal tabulation (HT, TAB) and
361 \b for backspace (BS). No other char escape sequence, nor octal char
362 sequences are valid.
363
364 Variable value ending in a \ is continued on the next line in the
365 customary UNIX fashion.
366
367 Some variables may require special value format.
368
369 Example
370 # Core variables
371 [core]
372 ; Don´t trust file modes
373 filemode = false
374
375 # Our diff algorithm
376 [diff]
377 external = "/usr/local/bin/gnu-diff -u"
378 renames = true
379
380 [branch "devel"]
381 remote = origin
382 merge = refs/heads/devel
383
384 # Proxy settings
385 [core]
386 gitProxy="ssh" for "kernel.org"
387 gitProxy=default-proxy ; for the rest
388
389 Variables
390 Note that this list is non-comprehensive and not necessarily complete.
391 For command-specific variables, you will find a more detailed
392 description in the appropriate manual page. You will find a description
393 of non-core porcelain configuration variables in the respective
394 porcelain documentation.
395
396 core.fileMode
397 If false, the executable bit differences between the index and the
398 working copy are ignored; useful on broken filesystems like FAT.
399 See git-update-index(1). True by default.
400
401 core.quotepath
402 The commands that output paths (e.g. ls-files, diff), when not
403 given the -z option, will quote "unusual" characters in the
404 pathname by enclosing the pathname in a double-quote pair and with
405 backslashes the same way strings in C source code are quoted. If
406 this variable is set to false, the bytes higher than 0x80 are not
407 quoted but output as verbatim. Note that double quote, backslash
408 and control characters are always quoted without -z regardless of
409 the setting of this variable.
410
411 core.autocrlf
412 If true, makes git convert CRLF at the end of lines in text files
413 to LF when reading from the filesystem, and convert in reverse when
414 writing to the filesystem. The variable can be set to input, in
415 which case the conversion happens only while reading from the
416 filesystem but files are written out with LF at the end of lines.
417 Currently, which paths to consider "text" (i.e. be subjected to the
418 autocrlf mechanism) is decided purely based on the contents.
419
420 core.symlinks
421 If false, symbolic links are checked out as small plain files that
422 contain the link text. git-update-index(1) and git-add(1) will not
423 change the recorded type to regular file. Useful on filesystems
424 like FAT that do not support symbolic links. True by default.
425
426 core.gitProxy
427 A "proxy command" to execute (as command host port) instead of
428 establishing direct connection to the remote server when using the
429 git protocol for fetching. If the variable value is in the "COMMAND
430 for DOMAIN" format, the command is applied only on hostnames ending
431 with the specified domain string. This variable may be set multiple
432 times and is matched in the given order; the first match wins.
433
434 Can be overridden by the GIT_PROXY_COMMAND environment variable
435 (which always applies universally, without the special "for"
436 handling).
437
438 core.ignoreStat
439 The working copy files are assumed to stay unchanged until you mark
440 them otherwise manually - Git will not detect the file changes by
441 lstat() calls. This is useful on systems where those are very slow,
442 such as Microsoft Windows. See git-update-index(1). False by
443 default.
444
445 core.preferSymlinkRefs
446 Instead of the default "symref" format for HEAD and other symbolic
447 reference files, use symbolic links. This is sometimes needed to
448 work with old scripts that expect HEAD to be a symbolic link.
449
450 core.bare
451 If true this repository is assumed to be bare and has no working
452 directory associated with it. If this is the case a number of
453 commands that require a working directory will be disabled, such as
454 git-add(1) or git-merge(1).
455
456 This setting is automatically guessed by git-clone(1) or git-
457 init(1) when the repository was created. By default a repository
458 that ends in "/.git" is assumed to be not bare (bare = false),
459 while all other repositories are assumed to be bare (bare = true).
460
461 core.worktree
462 Set the path to the working tree. The value will not be used in
463 combination with repositories found automatically in a .git
464 directory (i.e. $GIT_DIR is not set). This can be overriden by the
465 GIT_WORK_TREE environment variable and the --work-tree command line
466 option.
467
468 core.logAllRefUpdates
469 Enable the reflog. Updates to a ref <ref> is logged to the file
470 "$GIT_DIR/logs/<ref>", by appending the new and old SHA1, the
471 date/time and the reason of the update, but only when the file
472 exists. If this configuration variable is set to true, missing
473 "$GIT_DIR/logs/<ref>" file is automatically created for branch
474 heads.
475
476 This information can be used to determine what commit was the tip
477 of a branch "2 days ago".
478
479 This value is true by default in a repository that has a working
480 directory associated with it, and false by default in a bare
481 repository.
482
483 core.repositoryFormatVersion
484 Internal variable identifying the repository format and layout
485 version.
486
487 core.sharedRepository
488 When group (or true), the repository is made shareable between
489 several users in a group (making sure all the files and objects are
490 group-writable). When all (or world or everybody), the repository
491 will be readable by all users, additionally to being
492 group-shareable. When umask (or false), git will use permissions
493 reported by umask(2). See git-init(1). False by default.
494
495 core.warnAmbiguousRefs
496 If true, git will warn you if the ref name you passed it is
497 ambiguous and might match multiple refs in the .git/refs/ tree.
498 True by default.
499
500 core.compression
501 An integer -1..9, indicating a default compression level. -1 is the
502 zlib default. 0 means no compression, and 1..9 are various
503 speed/size tradeoffs, 9 being slowest.
504
505 core.loosecompression
506 An integer -1..9, indicating the compression level for objects that
507 are not in a pack file. -1 is the zlib default. 0 means no
508 compression, and 1..9 are various speed/size tradeoffs, 9 being
509 slowest. If not set, defaults to core.compression. If that is not
510 set, defaults to 0 (best speed).
511
512 core.packedGitWindowSize
513 Number of bytes of a pack file to map into memory in a single
514 mapping operation. Larger window sizes may allow your system to
515 process a smaller number of large pack files more quickly. Smaller
516 window sizes will negatively affect performance due to increased
517 calls to the operating system´s memory manager, but may improve
518 performance when accessing a large number of large pack files.
519
520 Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
521 MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
522 be reasonable for all users/operating systems. You probably do not
523 need to adjust this value.
524
525 Common unit suffixes of k, m, or g are supported.
526
527 core.packedGitLimit
528 Maximum number of bytes to map simultaneously into memory from pack
529 files. If Git needs to access more than this many bytes at once to
530 complete an operation it will unmap existing regions to reclaim
531 virtual address space within the process.
532
533 Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit
534 platforms. This should be reasonable for all users/operating
535 systems, except on the largest projects. You probably do not need
536 to adjust this value.
537
538 Common unit suffixes of k, m, or g are supported.
539
540 core.deltaBaseCacheLimit
541 Maximum number of bytes to reserve for caching base objects that
542 multiple deltafied objects reference. By storing the entire
543 decompressed base objects in a cache Git is able to avoid unpacking
544 and decompressing frequently used base objects multiple times.
545
546 Default is 16 MiB on all platforms. This should be reasonable for
547 all users/operating systems, except on the largest projects. You
548 probably do not need to adjust this value.
549
550 Common unit suffixes of k, m, or g are supported.
551
552 core.excludesfile
553 In addition to .gitignore (per-directory) and .git/info/exclude,
554 git looks into this file for patterns of files which are not meant
555 to be tracked. See gitignore(5).
556
557 core.editor
558 Commands such as commit and tag that lets you edit messages by
559 launching an editor uses the value of this variable when it is set,
560 and the environment variable GIT_EDITOR is not set. The order of
561 preference is GIT_EDITOR environment, core.editor, VISUAL and
562 EDITOR environment variables and then finally vi.
563
564 core.pager
565 The command that git will use to paginate output. Can be overridden
566 with the GIT_PAGER environment variable.
567
568 alias.*
569 Command aliases for the git(1) command wrapper - e.g. after
570 defining "alias.last = cat-file commit HEAD", the invocation "git
571 last" is equivalent to "git cat-file commit HEAD". To avoid
572 confusion and troubles with script usage, aliases that hide
573 existing git commands are ignored. Arguments are split by spaces,
574 the usual shell quoting and escaping is supported. quote pair and a
575 backslash can be used to quote them.
576
577 If the alias expansion is prefixed with an exclamation point, it
578 will be treated as a shell command. For example, defining
579 "alias.new = !gitk --all --not ORIG_HEAD", the invocation "git new"
580 is equivalent to running the shell command "gitk --all --not
581 ORIG_HEAD".
582
583 apply.whitespace
584 Tells git-apply how to handle whitespaces, in the same way as the
585 --whitespace option. See git-apply(1).
586
587 branch.autosetupmerge
588 Tells git-branch and git-checkout to setup new branches so that
589 git-pull(1) will appropriately merge from that remote branch. Note
590 that even if this option is not set, this behavior can be chosen
591 per-branch using the --track and --no-track options. This option
592 defaults to false.
593
594 branch.<name>.remote
595 When in branch <name>, it tells git fetch which remote to fetch. If
596 this option is not given, git fetch defaults to remote "origin".
597
598 branch.<name>.merge
599 When in branch <name>, it tells git fetch the default refspec to be
600 marked for merging in FETCH_HEAD. The value has exactly to match a
601 remote part of one of the refspecs which are fetched from the
602 remote given by "branch.<name>.remote". The merge information is
603 used by git pull (which at first calls git fetch) to lookup the
604 default branch for merging. Without this option, git pull defaults
605 to merge the first refspec fetched. Specify multiple values to get
606 an octopus merge. If you wish to setup git pull so that it merges
607 into <name> from another branch in the local repository, you can
608 point branch.<name>.merge to the desired branch, and use the
609 special setting . (a period) for branch.<name>.remote.
610
611 clean.requireForce
612 A boolean to make git-clean do nothing unless given -f or -n.
613 Defaults to false.
614
615 color.branch
616 A boolean to enable/disable color in the output of git-branch(1).
617 May be set to true (or always), false (or never) or auto, in which
618 case colors are used only when the output is to a terminal.
619 Defaults to false.
620
621 color.branch.<slot>
622 Use customized color for branch coloration. <slot> is one of
623 current (the current branch), local (a local branch), remote (a
624 tracking branch in refs/remotes/), plain (other refs).
625
626 The value for these configuration variables is a list of colors (at
627 most two) and attributes (at most one), separated by spaces. The
628 colors accepted are normal, black, red, green, yellow, blue,
629 magenta, cyan and white; the attributes are bold, dim, ul, blink
630 and reverse. The first color given is the foreground; the second is
631 the background. The position of the attribute, if any, doesn´t
632 matter.
633
634 color.diff
635 When true (or always), always use colors in patch. When false (or
636 never), never. When set to auto, use colors only when the output is
637 to the terminal.
638
639 color.diff.<slot>
640 Use customized color for diff colorization. <slot> specifies which
641 part of the patch to use the specified color, and is one of plain
642 (context text), meta (metainformation), frag (hunk header), old
643 (removed lines), new (added lines), commit (commit headers), or
644 whitespace (highlighting dubious whitespace). The values of these
645 variables may be specified as in color.branch.<slot>.
646
647 color.pager
648 A boolean to enable/disable colored output when the pager is in use
649 (default is true).
650
651 color.status
652 A boolean to enable/disable color in the output of git-status(1).
653 May be set to true (or always), false (or never) or auto, in which
654 case colors are used only when the output is to a terminal.
655 Defaults to false.
656
657 color.status.<slot>
658 Use customized color for status colorization. <slot> is one of
659 header (the header text of the status message), added or updated
660 (files which are added but not committed), changed (files which are
661 changed but not added in the index), or untracked (files which are
662 not tracked by git). The values of these variables may be specified
663 as in color.branch.<slot>.
664
665 commit.template
666 Specify a file to use as the template for new commit messages.
667
668 diff.autorefreshindex
669 When using git diff to compare with work tree files, do not
670 consider stat-only change as changed. Instead, silently run git
671 update-index --refresh to update the cached stat information for
672 paths whose contents in the work tree match the contents in the
673 index. This option defaults to true. Note that this affects only
674 git diff Porcelain, and not lower level diff commands, such as git
675 diff-files.
676
677 diff.renameLimit
678 The number of files to consider when performing the copy/rename
679 detection; equivalent to the git diff option -l.
680
681 diff.renames
682 Tells git to detect renames. If set to any boolean value, it will
683 enable basic rename detection. If set to "copies" or "copy", it
684 will detect copies, as well.
685
686 fetch.unpackLimit
687 If the number of objects fetched over the git native transfer is
688 below this limit, then the objects will be unpacked into loose
689 object files. However if the number of received objects equals or
690 exceeds this limit then the received pack will be stored as a pack,
691 after adding any missing delta bases. Storing the pack from a push
692 can make the push operation complete faster, especially on slow
693 filesystems.
694
695 format.headers
696 Additional email headers to include in a patch to be submitted by
697 mail. See git-format-patch(1).
698
699 format.suffix
700 The default for format-patch is to output files with the suffix
701 .patch. Use this variable to change that suffix (make sure to
702 include the dot if you want it).
703
704 gc.aggressiveWindow
705 The window size parameter used in the delta compression algorithm
706 used by git gc --aggressive. This defaults to 10.
707
708 gc.packrefs
709 git gc does not run git pack-refs in a bare repository by default
710 so that older dumb-transport clients can still fetch from the
711 repository. Setting this to true lets git gc to run git pack-refs.
712 Setting this to false tells git gc never to run git pack-refs. The
713 default setting is notbare. Enable it only when you know you do not
714 have to support such clients. The default setting will change to
715 true at some stage, and setting this to false will continue to
716 prevent git pack-refs from being run from git gc.
717
718 gc.reflogexpire
719 git reflog expire removes reflog entries older than this time;
720 defaults to 90 days.
721
722 gc.reflogexpireunreachable
723 git reflog expire removes reflog entries older than this time and
724 are not reachable from the current tip; defaults to 30 days.
725
726 gc.rerereresolved
727 Records of conflicted merge you resolved earlier are kept for this
728 many days when git rerere gc is run. The default is 60 days. See
729 git-rerere(1).
730
731 gc.rerereunresolved
732 Records of conflicted merge you have not resolved are kept for this
733 many days when git rerere gc is run. The default is 15 days. See
734 git-rerere(1).
735
736 rerere.enabled
737 Activate recording of resolved conflicts, so that identical
738 conflict hunks can be resolved automatically, should they be
739 encountered again. See git-rerere(1).
740
741 gitcvs.enabled
742 Whether the CVS server interface is enabled for this repository.
743 See git-cvsserver(1).
744
745 gitcvs.logfile
746 Path to a log file where the CVS server interface well... logs
747 various stuff. See git-cvsserver(1).
748
749 gitcvs.allbinary
750 If true, all files are sent to the client in mode -kb. This causes
751 the client to treat all files as binary files which suppresses any
752 newline munging it otherwise might do. A work-around for the fact
753 that there is no way yet to set single files to mode -kb.
754
755 gitcvs.dbname
756 Database used by git-cvsserver to cache revision information
757 derived from the git repository. The exact meaning depends on the
758 used database driver, for SQLite (which is the default driver) this
759 is a filename. Supports variable substitution (see git-cvsserver(1)
760 for details). May not contain semicolons (;). Default:
761 %Ggitcvs.%m.sqlite
762
763 gitcvs.dbdriver
764 Used Perl DBI driver. You can specify any available driver for this
765 here, but it might not work. git-cvsserver is tested with
766 DBD::SQLite, reported to work with DBD::Pg, and reported not to
767 work with DBD::mysql. Experimental feature. May not contain double
768 colons (:). Default: SQLite. See git-cvsserver(1).
769
770 gitcvs.dbuser, gitcvs.dbpass
771 Database user and password. Only useful if setting gitcvs.dbdriver,
772 since SQLite has no concept of database users and/or passwords.
773 gitcvs.dbuser supports variable substitution (see git-cvsserver(1)
774 for details).
775 All gitcvs variables except for gitcvs.allbinary can also be specified
776 as gitcvs.<access_method>.<varname> (where access_method is one of
777 "ext" and "pserver") to make them apply only for the given access
778 method.
779
780 http.sslVerify
781 Whether to verify the SSL certificate when fetching or pushing over
782 HTTPS. Can be overridden by the GIT_SSL_NO_VERIFY environment
783 variable.
784
785 http.sslCert
786 File containing the SSL certificate when fetching or pushing over
787 HTTPS. Can be overridden by the GIT_SSL_CERT environment variable.
788
789 http.sslKey
790 File containing the SSL private key when fetching or pushing over
791 HTTPS. Can be overridden by the GIT_SSL_KEY environment variable.
792
793 http.sslCAInfo
794 File containing the certificates to verify the peer with when
795 fetching or pushing over HTTPS. Can be overridden by the
796 GIT_SSL_CAINFO environment variable.
797
798 http.sslCAPath
799 Path containing files with the CA certificates to verify the peer
800 with when fetching or pushing over HTTPS. Can be overridden by the
801 GIT_SSL_CAPATH environment variable.
802
803 http.maxRequests
804 How many HTTP requests to launch in parallel. Can be overridden by
805 the GIT_HTTP_MAX_REQUESTS environment variable. Default is 5.
806
807 http.lowSpeedLimit, http.lowSpeedTime
808 If the HTTP transfer speed is less than http.lowSpeedLimit for
809 longer than http.lowSpeedTime seconds, the transfer is aborted. Can
810 be overridden by the GIT_HTTP_LOW_SPEED_LIMIT and
811 GIT_HTTP_LOW_SPEED_TIME environment variables.
812
813 http.noEPSV
814 A boolean which disables using of EPSV ftp command by curl. This
815 can helpful with some "poor" ftp servers which don´t support EPSV
816 mode. Can be overridden by the GIT_CURL_FTP_NO_EPSV environment
817 variable. Default is false (curl will use EPSV).
818
819 i18n.commitEncoding
820 Character encoding the commit messages are stored in; git itself
821 does not care per se, but this information is necessary e.g. when
822 importing commits from emails or in the gitk graphical history
823 browser (and possibly at other places in the future or in other
824 porcelains). See e.g. git-mailinfo(1). Defaults to utf-8.
825
826 i18n.logOutputEncoding
827 Character encoding the commit messages are converted to when
828 running git-log and friends.
829
830 log.showroot
831 If true, the initial commit will be shown as a big creation event.
832 This is equivalent to a diff against an empty tree. Tools like git-
833 log(1) or git-whatchanged(1), which normally hide the root commit
834 will now show it. True by default.
835
836 merge.summary
837 Whether to include summaries of merged commits in newly created
838 merge commit messages. False by default.
839
840 merge.tool
841 Controls which merge resolution program is used by git-
842 mergetool(l). Valid values are: "kdiff3", "tkdiff", "meld",
843 "xxdiff", "emerge", "vimdiff", "gvimdiff", and "opendiff".
844
845 merge.verbosity
846 Controls the amount of output shown by the recursive merge
847 strategy. Level 0 outputs nothing except a final error message if
848 conflicts were detected. Level 1 outputs only conflicts, 2 outputs
849 conflicts and file changes. Level 5 and above outputs debugging
850 information. The default is level 2. Can be overriden by
851 GIT_MERGE_VERBOSITY environment variable.
852
853 merge.<driver>.name
854 Defines a human readable name for a custom low-level merge driver.
855 See gitattributes(5) for details.
856
857 merge.<driver>.driver
858 Defines the command that implements a custom low-level merge
859 driver. See gitattributes(5) for details.
860
861 merge.<driver>.recursive
862 Names a low-level merge driver to be used when performing an
863 internal merge between common ancestors. See gitattributes(5) for
864 details.
865
866 pack.window
867 The size of the window used by git-pack-objects(1) when no window
868 size is given on the command line. Defaults to 10.
869
870 pack.depth
871 The maximum delta depth used by git-pack-objects(1) when no maximum
872 depth is given on the command line. Defaults to 50.
873
874 pack.windowMemory
875 The window memory size limit used by git-pack-objects(1) when no
876 limit is given on the command line. The value can be suffixed with
877 "k", "m", or "g". Defaults to 0, meaning no limit.
878
879 pack.compression
880 An integer -1..9, indicating the compression level for objects in a
881 pack file. -1 is the zlib default. 0 means no compression, and 1..9
882 are various speed/size tradeoffs, 9 being slowest. If not set,
883 defaults to core.compression. If that is not set, defaults to -1.
884
885 pack.deltaCacheSize
886 The maximum memory in bytes used for caching deltas in git-pack-
887 objects(1). A value of 0 means no limit. Defaults to 0.
888
889 pack.deltaCacheLimit
890 The maxium size of a delta, that is cached in git-pack-objects(1).
891 Defaults to 1000.
892
893 pull.octopus
894 The default merge strategy to use when pulling multiple branches at
895 once.
896
897 pull.twohead
898 The default merge strategy to use when pulling a single branch.
899
900 remote.<name>.url
901 The URL of a remote repository. See git-fetch(1) or git-push(1).
902
903 remote.<name>.fetch
904 The default set of "refspec" for git-fetch(1). See git-fetch(1).
905
906 remote.<name>.push
907 The default set of "refspec" for git-push(1). See git-push(1).
908
909 remote.<name>.skipDefaultUpdate
910 If true, this remote will be skipped by default when updating using
911 the remote subcommand of git-remote(1).
912
913 remote.<name>.receivepack
914 The default program to execute on the remote side when pushing. See
915 option --exec of git-push(1).
916
917 remote.<name>.uploadpack
918 The default program to execute on the remote side when fetching.
919 See option --exec of git-fetch-pack(1).
920
921 remote.<name>.tagopt
922 Setting this value to --no-tags disables automatic tag following
923 when fetching from remote <name>
924
925 remotes.<group>
926 The list of remotes which are fetched by "git remote update
927 <group>". See git-remote(1).
928
929 repack.usedeltabaseoffset
930 Allow git-repack(1) to create packs that uses delta-base offset.
931 Defaults to false.
932
933 show.difftree
934 The default git-diff-tree(1) arguments to be used for git-show(1).
935
936 showbranch.default
937 The default set of branches for git-show-branch(1). See git-show-
938 branch(1).
939
940 tar.umask
941 This variable can be used to restrict the permission bits of tar
942 archive entries. The default is 0002, which turns off the world
943 write bit. The special value "user" indicates that the archiving
944 user´s umask will be used instead. See umask(2) and git-archive(1).
945
946 user.email
947 Your email address to be recorded in any newly created commits. Can
948 be overridden by the GIT_AUTHOR_EMAIL, GIT_COMMITTER_EMAIL, and
949 EMAIL environment variables. See git-commit-tree(1).
950
951 user.name
952 Your full name to be recorded in any newly created commits. Can be
953 overridden by the GIT_AUTHOR_NAME and GIT_COMMITTER_NAME
954 environment variables. See git-commit-tree(1).
955
956 user.signingkey
957 If git-tag(1) is not selecting the key you want it to automatically
958 when creating a signed tag, you can override the default selection
959 with this variable. This option is passed unchanged to gpg´s
960 --local-user parameter, so you may specify a key using any method
961 that gpg supports.
962
963 whatchanged.difftree
964 The default git-diff-tree(1) arguments to be used for git-
965 whatchanged(1).
966
967 imap
968 The configuration variables in the imap section are described in
969 git-imap-send(1).
970
971 receive.unpackLimit
972 If the number of objects received in a push is below this limit
973 then the objects will be unpacked into loose object files. However
974 if the number of received objects equals or exceeds this limit then
975 the received pack will be stored as a pack, after adding any
976 missing delta bases. Storing the pack from a push can make the push
977 operation complete faster, especially on slow filesystems.
978
979 receive.denyNonFastForwards
980 If set to true, git-receive-pack will deny a ref update which is
981 not a fast forward. Use this to prevent such an update via a push,
982 even if that push is forced. This configuration variable is set
983 when initializing a shared repository.
984
985 transfer.unpackLimit
986 When fetch.unpackLimit or receive.unpackLimit are not set, the
987 value of this variable is used instead.
988
990 Written by Johannes Schindelin <Johannes.Schindelin@gmx.de>
991
993 Documentation by Johannes Schindelin, Petr Baudis and the git-list
994 <git@vger.kernel.org>.
995
997 Part of the git(7) suite
998
999
1000
1001
1002Git 1.5.3.3 10/09/2007 GIT-CONFIG(1)