Code

ee1c35e8eb952967980884d521d12a76622f38f4
[git.git] / Documentation / config.txt
1 CONFIGURATION FILE
2 ------------------
4 The git configuration file contains a number of variables that affect
5 the git command's behavior. `.git/config` file for each repository
6 is used to store the information for that repository, and
7 `$HOME/.gitconfig` is used to store per user information to give
8 fallback values for `.git/config` file. The file `/etc/gitconfig`
9 can be used to store system-wide defaults.
11 They can be used by both the git plumbing
12 and the porcelains. The variables are divided into sections, where
13 in the fully qualified variable name the variable itself is the last
14 dot-separated segment and the section name is everything before the last
15 dot. The variable names are case-insensitive and only alphanumeric
16 characters are allowed. Some variables may appear multiple times.
18 Syntax
19 ~~~~~~
21 The syntax is fairly flexible and permissive; whitespaces are mostly
22 ignored.  The '#' and ';' characters begin comments to the end of line,
23 blank lines are ignored.
25 The file consists of sections and variables.  A section begins with
26 the name of the section in square brackets and continues until the next
27 section begins.  Section names are not case sensitive.  Only alphanumeric
28 characters, '`-`' and '`.`' are allowed in section names.  Each variable
29 must belong to some section, which means that there must be section
30 header before first setting of a variable.
32 Sections can be further divided into subsections.  To begin a subsection
33 put its name in double quotes, separated by space from the section name,
34 in the section header, like in example below:
36 --------
37         [section "subsection"]
39 --------
41 Subsection names can contain any characters except newline (doublequote
42 '`"`' and backslash have to be escaped as '`\"`' and '`\\`',
43 respectively) and are case sensitive.  Section header cannot span multiple
44 lines.  Variables may belong directly to a section or to a given subsection.
45 You can have `[section]` if you have `[section "subsection"]`, but you
46 don't need to.
48 There is also (case insensitive) alternative `[section.subsection]` syntax.
49 In this syntax subsection names follow the same restrictions as for section
50 name.
52 All the other lines are recognized as setting variables, in the form
53 'name = value'.  If there is no equal sign on the line, the entire line
54 is taken as 'name' and the variable is recognized as boolean "true".
55 The variable names are case-insensitive and only alphanumeric
56 characters and '`-`' are allowed.  There can be more than one value
57 for a given variable; we say then that variable is multivalued.
59 Leading and trailing whitespace in a variable value is discarded.
60 Internal whitespace within a variable value is retained verbatim.
62 The values following the equals sign in variable assign are all either
63 a string, an integer, or a boolean.  Boolean values may be given as yes/no,
64 0/1 or true/false.  Case is not significant in boolean values, when
65 converting value to the canonical form using '--bool' type specifier;
66 `git-config` will ensure that the output is "true" or "false".
68 String values may be entirely or partially enclosed in double quotes.
69 You need to enclose variable value in double quotes if you want to
70 preserve leading or trailing whitespace, or if variable value contains
71 beginning of comment characters (if it contains '#' or ';').
72 Double quote '`"`' and backslash '`\`' characters in variable value must
73 be escaped: use '`\"`' for '`"`' and '`\\`' for '`\`'.
75 The following escape sequences (beside '`\"`' and '`\\`') are recognized:
76 '`\n`' for newline character (NL), '`\t`' for horizontal tabulation (HT, TAB)
77 and '`\b`' for backspace (BS).  No other char escape sequence, nor octal
78 char sequences are valid.
80 Variable value ending in a '`\`' is continued on the next line in the
81 customary UNIX fashion.
83 Some variables may require special value format.
85 Example
86 ~~~~~~~
88         # Core variables
89         [core]
90                 ; Don't trust file modes
91                 filemode = false
93         # Our diff algorithm
94         [diff]
95                 external = "/usr/local/bin/gnu-diff -u"
96                 renames = true
98         [branch "devel"]
99                 remote = origin
100                 merge = refs/heads/devel
102         # Proxy settings
103         [core]
104                 gitProxy="ssh" for "ssh://kernel.org/"
105                 gitProxy=default-proxy ; for the rest
107 Variables
108 ~~~~~~~~~
110 Note that this list is non-comprehensive and not necessarily complete.
111 For command-specific variables, you will find a more detailed description
112 in the appropriate manual page. You will find a description of non-core
113 porcelain configuration variables in the respective porcelain documentation.
115 core.fileMode::
116         If false, the executable bit differences between the index and
117         the working copy are ignored; useful on broken filesystems like FAT.
118         See gitlink:git-update-index[1]. True by default.
120 core.autocrlf::
121         If true, makes git convert `CRLF` at the end of lines in text files to
122         `LF` when reading from the filesystem, and convert in reverse when
123         writing to the filesystem.  The variable can be set to
124         'input', in which case the conversion happens only while
125         reading from the filesystem but files are written out with
126         `LF` at the end of lines.  Currently, which paths to consider
127         "text" (i.e. be subjected to the autocrlf mechanism) is
128         decided purely based on the contents.
130 core.symlinks::
131         If false, symbolic links are checked out as small plain files that
132         contain the link text. gitlink:git-update-index[1] and
133         gitlink:git-add[1] will not change the recorded type to regular
134         file. Useful on filesystems like FAT that do not support
135         symbolic links. True by default.
137 core.gitProxy::
138         A "proxy command" to execute (as 'command host port') instead
139         of establishing direct connection to the remote server when
140         using the git protocol for fetching. If the variable value is
141         in the "COMMAND for DOMAIN" format, the command is applied only
142         on hostnames ending with the specified domain string. This variable
143         may be set multiple times and is matched in the given order;
144         the first match wins.
146 Can be overridden by the 'GIT_PROXY_COMMAND' environment variable
147 (which always applies universally, without the special "for"
148 handling).
150 core.ignoreStat::
151         The working copy files are assumed to stay unchanged until you
152         mark them otherwise manually - Git will not detect the file changes
153         by lstat() calls. This is useful on systems where those are very
154         slow, such as Microsoft Windows.  See gitlink:git-update-index[1].
155         False by default.
157 core.preferSymlinkRefs::
158         Instead of the default "symref" format for HEAD
159         and other symbolic reference files, use symbolic links.
160         This is sometimes needed to work with old scripts that
161         expect HEAD to be a symbolic link.
163 core.bare::
164         If true this repository is assumed to be 'bare' and has no
165         working directory associated with it.  If this is the case a
166         number of commands that require a working directory will be
167         disabled, such as gitlink:git-add[1] or gitlink:git-merge[1].
169 This setting is automatically guessed by gitlink:git-clone[1] or
170 gitlink:git-init[1] when the repository was created.  By default a
171 repository that ends in "/.git" is assumed to be not bare (bare =
172 false), while all other repositories are assumed to be bare (bare
173 = true).
175 core.logAllRefUpdates::
176         Updates to a ref <ref> is logged to the file
177         "$GIT_DIR/logs/<ref>", by appending the new and old
178         SHA1, the date/time and the reason of the update, but
179         only when the file exists.  If this configuration
180         variable is set to true, missing "$GIT_DIR/logs/<ref>"
181         file is automatically created for branch heads.
183 This information can be used to determine what commit
184 was the tip of a branch "2 days ago".
186 This value is true by default in a repository that has
187 a working directory associated with it, and false by
188 default in a bare repository.
190 core.repositoryFormatVersion::
191         Internal variable identifying the repository format and layout
192         version.
194 core.sharedRepository::
195         When 'group' (or 'true'), the repository is made shareable between
196         several users in a group (making sure all the files and objects are
197         group-writable). When 'all' (or 'world' or 'everybody'), the
198         repository will be readable by all users, additionally to being
199         group-shareable. When 'umask' (or 'false'), git will use permissions
200         reported by umask(2). See gitlink:git-init[1]. False by default.
202 core.warnAmbiguousRefs::
203         If true, git will warn you if the ref name you passed it is ambiguous
204         and might match multiple refs in the .git/refs/ tree. True by default.
206 core.compression::
207         An integer -1..9, indicating a default compression level.
208         -1 is the zlib default. 0 means no compression,
209         and 1..9 are various speed/size tradeoffs, 9 being slowest.
211 core.loosecompression::
212         An integer -1..9, indicating the compression level for objects that
213         are not in a pack file. -1 is the zlib default. 0 means no
214         compression, and 1..9 are various speed/size tradeoffs, 9 being
215         slowest.  If not set,  defaults to core.compression.  If that is
216         not set,  defaults to 0 (best speed).
218 core.packedGitWindowSize::
219         Number of bytes of a pack file to map into memory in a
220         single mapping operation.  Larger window sizes may allow
221         your system to process a smaller number of large pack files
222         more quickly.  Smaller window sizes will negatively affect
223         performance due to increased calls to the operating system's
224         memory manager, but may improve performance when accessing
225         a large number of large pack files.
227 Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
228 MiB on 32 bit platforms and 1 GiB on 64 bit platforms.  This should
229 be reasonable for all users/operating systems.  You probably do
230 not need to adjust this value.
232 Common unit suffixes of 'k', 'm', or 'g' are supported.
234 core.packedGitLimit::
235         Maximum number of bytes to map simultaneously into memory
236         from pack files.  If Git needs to access more than this many
237         bytes at once to complete an operation it will unmap existing
238         regions to reclaim virtual address space within the process.
240 Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.
241 This should be reasonable for all users/operating systems, except on
242 the largest projects.  You probably do not need to adjust this value.
244 Common unit suffixes of 'k', 'm', or 'g' are supported.
246 core.deltaBaseCacheLimit::
247         Maximum number of bytes to reserve for caching base objects
248         that multiple deltafied objects reference.  By storing the
249         entire decompressed base objects in a cache Git is able
250         to avoid unpacking and decompressing frequently used base
251         objects multiple times.
253 Default is 16 MiB on all platforms.  This should be reasonable
254 for all users/operating systems, except on the largest projects.
255 You probably do not need to adjust this value.
257 Common unit suffixes of 'k', 'm', or 'g' are supported.
259 alias.*::
260         Command aliases for the gitlink:git[1] command wrapper - e.g.
261         after defining "alias.last = cat-file commit HEAD", the invocation
262         "git last" is equivalent to "git cat-file commit HEAD". To avoid
263         confusion and troubles with script usage, aliases that
264         hide existing git commands are ignored. Arguments are split by
265         spaces, the usual shell quoting and escaping is supported.
266         quote pair and a backslash can be used to quote them.
268         If the alias expansion is prefixed with an exclamation point,
269         it will be treated as a shell command.  For example, defining
270         "alias.new = !gitk --all --not ORIG_HEAD", the invocation
271         "git new" is equivalent to running the shell command
272         "gitk --all --not ORIG_HEAD".
274 apply.whitespace::
275         Tells `git-apply` how to handle whitespaces, in the same way
276         as the '--whitespace' option. See gitlink:git-apply[1].
278 branch.<name>.remote::
279         When in branch <name>, it tells `git fetch` which remote to fetch.
280         If this option is not given, `git fetch` defaults to remote "origin".
282 branch.<name>.merge::
283         When in branch <name>, it tells `git fetch` the default refspec to
284         be marked for merging in FETCH_HEAD. The value has exactly to match
285         a remote part of one of the refspecs which are fetched from the remote
286         given by "branch.<name>.remote".
287         The merge information is used by `git pull` (which at first calls
288         `git fetch`) to lookup the default branch for merging. Without
289         this option, `git pull` defaults to merge the first refspec fetched.
290         Specify multiple values to get an octopus merge.
291         If you wish to setup `git pull` so that it merges into <name> from
292         another branch in the local repository, you can point
293         branch.<name>.merge to the desired branch, and use the special setting
294         `.` (a period) for branch.<name>.remote.
296 clean.requireForce::
297         A boolean to make git-clean do nothing unless given -f or -n.  Defaults
298         to false.
300 color.branch::
301         A boolean to enable/disable color in the output of
302         gitlink:git-branch[1]. May be set to `true` (or `always`),
303         `false` (or `never`) or `auto`, in which case colors are used
304         only when the output is to a terminal. Defaults to false.
306 color.branch.<slot>::
307         Use customized color for branch coloration. `<slot>` is one of
308         `current` (the current branch), `local` (a local branch),
309         `remote` (a tracking branch in refs/remotes/), `plain` (other
310         refs).
312 The value for these configuration variables is a list of colors (at most
313 two) and attributes (at most one), separated by spaces.  The colors
314 accepted are `normal`, `black`, `red`, `green`, `yellow`, `blue`,
315 `magenta`, `cyan` and `white`; the attributes are `bold`, `dim`, `ul`,
316 `blink` and `reverse`.  The first color given is the foreground; the
317 second is the background.  The position of the attribute, if any,
318 doesn't matter.
320 color.diff::
321         When true (or `always`), always use colors in patch.
322         When false (or `never`), never.  When set to `auto`, use
323         colors only when the output is to the terminal.
325 color.diff.<slot>::
326         Use customized color for diff colorization.  `<slot>` specifies
327         which part of the patch to use the specified color, and is one
328         of `plain` (context text), `meta` (metainformation), `frag`
329         (hunk header), `old` (removed lines), `new` (added lines),
330         `commit` (commit headers), or `whitespace` (highlighting dubious
331         whitespace).  The values of these variables may be specified as
332         in color.branch.<slot>.
334 color.pager::
335         A boolean to enable/disable colored output when the pager is in
336         use (default is true).
338 color.status::
339         A boolean to enable/disable color in the output of
340         gitlink:git-status[1]. May be set to `true` (or `always`),
341         `false` (or `never`) or `auto`, in which case colors are used
342         only when the output is to a terminal. Defaults to false.
344 color.status.<slot>::
345         Use customized color for status colorization. `<slot>` is
346         one of `header` (the header text of the status message),
347         `added` or `updated` (files which are added but not committed),
348         `changed` (files which are changed but not added in the index),
349         or `untracked` (files which are not tracked by git). The values of
350         these variables may be specified as in color.branch.<slot>.
352 diff.renameLimit::
353         The number of files to consider when performing the copy/rename
354         detection; equivalent to the git diff option '-l'.
356 diff.renames::
357         Tells git to detect renames.  If set to any boolean value, it
358         will enable basic rename detection.  If set to "copies" or
359         "copy", it will detect copies, as well.
361 fetch.unpackLimit::
362         If the number of objects fetched over the git native
363         transfer is below this
364         limit, then the objects will be unpacked into loose object
365         files. However if the number of received objects equals or
366         exceeds this limit then the received pack will be stored as
367         a pack, after adding any missing delta bases.  Storing the
368         pack from a push can make the push operation complete faster,
369         especially on slow filesystems.
371 format.headers::
372         Additional email headers to include in a patch to be submitted
373         by mail.  See gitlink:git-format-patch[1].
375 format.suffix::
376         The default for format-patch is to output files with the suffix
377         `.patch`. Use this variable to change that suffix (make sure to
378         include the dot if you want it).
380 gc.aggressiveWindow::
381         The window size parameter used in the delta compression
382         algorithm used by 'git gc --aggressive'.  This defaults
383         to 10.
385 gc.packrefs::
386         `git gc` does not run `git pack-refs` in a bare repository by
387         default so that older dumb-transport clients can still fetch
388         from the repository.  Setting this to `true` lets `git
389         gc` to run `git pack-refs`.  Setting this to `false` tells
390         `git gc` never to run `git pack-refs`. The default setting is
391         `notbare`. Enable it only when you know you do not have to
392         support such clients.  The default setting will change to `true`
393         at some stage, and setting this to `false` will continue to
394         prevent `git pack-refs` from being run from `git gc`.
396 gc.reflogexpire::
397         `git reflog expire` removes reflog entries older than
398         this time; defaults to 90 days.
400 gc.reflogexpireunreachable::
401         `git reflog expire` removes reflog entries older than
402         this time and are not reachable from the current tip;
403         defaults to 30 days.
405 gc.rerereresolved::
406         Records of conflicted merge you resolved earlier are
407         kept for this many days when `git rerere gc` is run.
408         The default is 60 days.  See gitlink:git-rerere[1].
410 gc.rerereunresolved::
411         Records of conflicted merge you have not resolved are
412         kept for this many days when `git rerere gc` is run.
413         The default is 15 days.  See gitlink:git-rerere[1].
415 gitcvs.enabled::
416         Whether the cvs server interface is enabled for this repository.
417         See gitlink:git-cvsserver[1].
419 gitcvs.logfile::
420         Path to a log file where the cvs server interface well... logs
421         various stuff. See gitlink:git-cvsserver[1].
423 gitcvs.allbinary::
424         If true, all files are sent to the client in mode '-kb'. This
425         causes the client to treat all files as binary files which suppresses
426         any newline munging it otherwise might do. A work-around for the
427         fact that there is no way yet to set single files to mode '-kb'.
429 gitcvs.dbname::
430         Database used by git-cvsserver to cache revision information
431         derived from the git repository. The exact meaning depends on the
432         used database driver, for SQLite (which is the default driver) this
433         is a filename. Supports variable substitution (see
434         gitlink:git-cvsserver[1] for details). May not contain semicolons (`;`).
435         Default: '%Ggitcvs.%m.sqlite'
437 gitcvs.dbdriver::
438         Used Perl DBI driver. You can specify any available driver
439         for this here, but it might not work. git-cvsserver is tested
440         with 'DBD::SQLite', reported to work with 'DBD::Pg', and
441         reported *not* to work with 'DBD::mysql'. Experimental feature.
442         May not contain double colons (`:`). Default: 'SQLite'.
443         See gitlink:git-cvsserver[1].
445 gitcvs.dbuser, gitcvs.dbpass::
446         Database user and password. Only useful if setting 'gitcvs.dbdriver',
447         since SQLite has no concept of database users and/or passwords.
448         'gitcvs.dbuser' supports variable substitution (see
449         gitlink:git-cvsserver[1] for details).
451 All gitcvs variables except for 'gitcvs.allbinary' can also specifed
452 as 'gitcvs.<access_method>.<varname>' (where 'access_method' is one
453 of "ext" and "pserver") to make them apply only for the given access
454 method.
456 http.sslVerify::
457         Whether to verify the SSL certificate when fetching or pushing
458         over HTTPS. Can be overridden by the 'GIT_SSL_NO_VERIFY' environment
459         variable.
461 http.sslCert::
462         File containing the SSL certificate when fetching or pushing
463         over HTTPS. Can be overridden by the 'GIT_SSL_CERT' environment
464         variable.
466 http.sslKey::
467         File containing the SSL private key when fetching or pushing
468         over HTTPS. Can be overridden by the 'GIT_SSL_KEY' environment
469         variable.
471 http.sslCAInfo::
472         File containing the certificates to verify the peer with when
473         fetching or pushing over HTTPS. Can be overridden by the
474         'GIT_SSL_CAINFO' environment variable.
476 http.sslCAPath::
477         Path containing files with the CA certificates to verify the peer
478         with when fetching or pushing over HTTPS. Can be overridden
479         by the 'GIT_SSL_CAPATH' environment variable.
481 http.maxRequests::
482         How many HTTP requests to launch in parallel. Can be overridden
483         by the 'GIT_HTTP_MAX_REQUESTS' environment variable. Default is 5.
485 http.lowSpeedLimit, http.lowSpeedTime::
486         If the HTTP transfer speed is less than 'http.lowSpeedLimit'
487         for longer than 'http.lowSpeedTime' seconds, the transfer is aborted.
488         Can be overridden by the 'GIT_HTTP_LOW_SPEED_LIMIT' and
489         'GIT_HTTP_LOW_SPEED_TIME' environment variables.
491 http.noEPSV::
492         A boolean which disables using of EPSV ftp command by curl.
493         This can helpful with some "poor" ftp servers which don't
494         support EPSV mode. Can be overridden by the 'GIT_CURL_FTP_NO_EPSV'
495         environment variable. Default is false (curl will use EPSV).
497 i18n.commitEncoding::
498         Character encoding the commit messages are stored in; git itself
499         does not care per se, but this information is necessary e.g. when
500         importing commits from emails or in the gitk graphical history
501         browser (and possibly at other places in the future or in other
502         porcelains). See e.g. gitlink:git-mailinfo[1]. Defaults to 'utf-8'.
504 i18n.logOutputEncoding::
505         Character encoding the commit messages are converted to when
506         running `git-log` and friends.
508 log.showroot::
509         If true, the initial commit will be shown as a big creation event.
510         This is equivalent to a diff against an empty tree.
511         Tools like gitlink:git-log[1] or gitlink:git-whatchanged[1], which
512         normally hide the root commit will now show it. True by default.
514 merge.summary::
515         Whether to include summaries of merged commits in newly created
516         merge commit messages. False by default.
518 merge.tool::
519         Controls which merge resolution program is used by
520         gitlink:git-mergetool[l].  Valid values are: "kdiff3", "tkdiff",
521         "meld", "xxdiff", "emerge", "vimdiff", and "opendiff"
523 merge.verbosity::
524         Controls the amount of output shown by the recursive merge
525         strategy.  Level 0 outputs nothing except a final error
526         message if conflicts were detected. Level 1 outputs only
527         conflicts, 2 outputs conflicts and file changes.  Level 5 and
528         above outputs debugging information.  The default is level 2.
530 merge.<driver>.name::
531         Defines a human readable name for a custom low-level
532         merge driver.  See gitlink:gitattributes[5] for details.
534 merge.<driver>.driver::
535         Defines the command that implements a custom low-level
536         merge driver.  See gitlink:gitattributes[5] for details.
538 merge.<driver>.recursive::
539         Names a low-level merge driver to be used when
540         performing an internal merge between common ancestors.
541         See gitlink:gitattributes[5] for details.
543 pack.window::
544         The size of the window used by gitlink:git-pack-objects[1] when no
545         window size is given on the command line. Defaults to 10.
547 pack.depth::
548         The maximum delta depth used by gitlink:git-pack-objects[1] when no
549         maximum depth is given on the command line. Defaults to 50.
551 pack.compression::
552         An integer -1..9, indicating the compression level for objects
553         in a pack file. -1 is the zlib default. 0 means no
554         compression, and 1..9 are various speed/size tradeoffs, 9 being
555         slowest.  If not set,  defaults to core.compression.  If that is
556         not set,  defaults to -1.
558 pull.octopus::
559         The default merge strategy to use when pulling multiple branches
560         at once.
562 pull.twohead::
563         The default merge strategy to use when pulling a single branch.
565 remote.<name>.url::
566         The URL of a remote repository.  See gitlink:git-fetch[1] or
567         gitlink:git-push[1].
569 remote.<name>.fetch::
570         The default set of "refspec" for gitlink:git-fetch[1]. See
571         gitlink:git-fetch[1].
573 remote.<name>.push::
574         The default set of "refspec" for gitlink:git-push[1]. See
575         gitlink:git-push[1].
577 remote.<name>.skipDefaultUpdate::
578         If true, this remote will be skipped by default when updating
579         using the remote subcommand of gitlink:git-remote[1].
581 remote.<name>.receivepack::
582         The default program to execute on the remote side when pushing.  See
583         option \--exec of gitlink:git-push[1].
585 remote.<name>.uploadpack::
586         The default program to execute on the remote side when fetching.  See
587         option \--exec of gitlink:git-fetch-pack[1].
589 remote.<name>.tagopt::
590         Setting this value to --no-tags disables automatic tag following when fetching
591         from remote <name>
593 remotes.<group>::
594         The list of remotes which are fetched by "git remote update
595         <group>".  See gitlink:git-remote[1].
597 repack.usedeltabaseoffset::
598         Allow gitlink:git-repack[1] to create packs that uses
599         delta-base offset.  Defaults to false.
601 show.difftree::
602         The default gitlink:git-diff-tree[1] arguments to be used
603         for gitlink:git-show[1].
605 showbranch.default::
606         The default set of branches for gitlink:git-show-branch[1].
607         See gitlink:git-show-branch[1].
609 tar.umask::
610         By default, gitlink:git-tar-tree[1] sets file and directories modes
611         to 0666 or 0777. While this is both useful and acceptable for projects
612         such as the Linux Kernel, it might be excessive for other projects.
613         With this variable, it becomes possible to tell
614         gitlink:git-tar-tree[1] to apply a specific umask to the modes above.
615         The special value "user" indicates that the user's current umask will
616         be used. This should be enough for most projects, as it will lead to
617         the same permissions as gitlink:git-checkout[1] would use. The default
618         value remains 0, which means world read-write.
620 user.email::
621         Your email address to be recorded in any newly created commits.
622         Can be overridden by the 'GIT_AUTHOR_EMAIL', 'GIT_COMMITTER_EMAIL', and
623         'EMAIL' environment variables.  See gitlink:git-commit-tree[1].
625 user.name::
626         Your full name to be recorded in any newly created commits.
627         Can be overridden by the 'GIT_AUTHOR_NAME' and 'GIT_COMMITTER_NAME'
628         environment variables.  See gitlink:git-commit-tree[1].
630 user.signingkey::
631         If gitlink:git-tag[1] is not selecting the key you want it to
632         automatically when creating a signed tag, you can override the
633         default selection with this variable.  This option is passed
634         unchanged to gpg's --local-user parameter, so you may specify a key
635         using any method that gpg supports.
637 whatchanged.difftree::
638         The default gitlink:git-diff-tree[1] arguments to be used
639         for gitlink:git-whatchanged[1].
641 imap::
642         The configuration variables in the 'imap' section are described
643         in gitlink:git-imap-send[1].
645 receive.unpackLimit::
646         If the number of objects received in a push is below this
647         limit then the objects will be unpacked into loose object
648         files. However if the number of received objects equals or
649         exceeds this limit then the received pack will be stored as
650         a pack, after adding any missing delta bases.  Storing the
651         pack from a push can make the push operation complete faster,
652         especially on slow filesystems.
654 receive.denyNonFastForwards::
655         If set to true, git-receive-pack will deny a ref update which is
656         not a fast forward. Use this to prevent such an update via a push,
657         even if that push is forced. This configuration variable is
658         set when initializing a shared repository.
660 transfer.unpackLimit::
661         When `fetch.unpackLimit` or `receive.unpackLimit` are
662         not set, the value of this variable is used instead.