1GIT-CONFIG(1)                     Git Manual                     GIT-CONFIG(1)
2
3
4

NAME

6       git-config - Get and set repository or global options
7

SYNOPSIS

9           git-config [<file-option>] [type] [-z|--null] name [value [value_regex]]
10           git-config [<file-option>] [type] --add name value
11           git-config [<file-option>] [type] --replace-all name [value [value_regex]]
12           git-config [<file-option>] [type] [-z|--null] --get name [value_regex]
13           git-config [<file-option>] [type] [-z|--null] --get-all name [value_regex]
14           git-config [<file-option>] [type] [-z|--null] --get-regexp name_regex [value_regex]
15           git-config [<file-option>] --unset name [value_regex]
16           git-config [<file-option>] --unset-all name [value_regex]
17           git-config [<file-option>] --rename-section old_name new_name
18           git-config [<file-option>] --remove-section name
19           git-config [<file-option>] [-z|--null] -l | --list
20

DESCRIPTION

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

OPTIONS

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

FILES

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

ENVIRONMENT

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

EXAMPLES

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

CONFIGURATION FILE

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

AUTHOR

990       Written by Johannes Schindelin <Johannes.Schindelin@gmx.de>
991

DOCUMENTATION

993       Documentation by Johannes Schindelin, Petr Baudis and the git-list
994       <git@vger.kernel.org>.
995

GIT

997       Part of the git(7) suite
998
999
1000
1001
1002Git 1.5.3.3                       10/09/2007                     GIT-CONFIG(1)
Impressum