blob: ab26963d61877a2f8e03a3532ace5b31bc68738e [file] [log] [blame]
Junio C Hamano07824ce2006-04-25 07:36:541CONFIGURATION FILE
2------------------
3
Junio C Hamano076ffcc2013-02-06 05:13:214The Git configuration file contains a number of variables that affect
5the Git commands' behavior. The `.git/config` file in each repository
Junio C Hamanof4581102009-04-25 08:29:596is used to store the configuration for that repository, and
7`$HOME/.gitconfig` is used to store a per-user configuration as
8fallback values for the `.git/config` file. The file `/etc/gitconfig`
9can be used to store a system-wide default configuration.
Junio C Hamano8f76dc62007-01-17 07:24:2510
Junio C Hamano076ffcc2013-02-06 05:13:2111The configuration variables are used by both the Git plumbing
Junio C Hamanof4581102009-04-25 08:29:5912and the porcelains. The variables are divided into sections, wherein
13the fully qualified variable name of the variable itself is the last
Junio C Hamano07824ce2006-04-25 07:36:5414dot-separated segment and the section name is everything before the last
Junio C Hamano81d540a2012-03-02 19:52:4715dot. The variable names are case-insensitive, allow only alphanumeric
16characters and `-`, and must start with an alphabetic character. Some
17variables may appear multiple times.
Junio C Hamano07824ce2006-04-25 07:36:5418
Junio C Hamanobee172f2007-01-23 08:44:1819Syntax
20~~~~~~
21
Junio C Hamano07824ce2006-04-25 07:36:5422The syntax is fairly flexible and permissive; whitespaces are mostly
Junio C Hamanobee172f2007-01-23 08:44:1823ignored. The '#' and ';' characters begin comments to the end of line,
24blank lines are ignored.
25
26The file consists of sections and variables. A section begins with
27the name of the section in square brackets and continues until the next
28section begins. Section names are not case sensitive. Only alphanumeric
Junio C Hamanoea82cff2009-03-18 01:54:4829characters, `-` and `.` are allowed in section names. Each variable
Junio C Hamanof4581102009-04-25 08:29:5930must belong to some section, which means that there must be a section
31header before the first setting of a variable.
Junio C Hamanobee172f2007-01-23 08:44:1832
33Sections can be further divided into subsections. To begin a subsection
34put its name in double quotes, separated by space from the section name,
Junio C Hamanof4581102009-04-25 08:29:5935in the section header, like in the example below:
Junio C Hamanobee172f2007-01-23 08:44:1836
37--------
38[section "subsection"]
39
40--------
41
Junio C Hamanof4581102009-04-25 08:29:5942Subsection names are case sensitive and can contain any characters except
43newline (doublequote `"` and backslash have to be escaped as `\"` and `\\`,
44respectively). Section headers cannot span multiple
Junio C Hamanobee172f2007-01-23 08:44:1845lines. Variables may belong directly to a section or to a given subsection.
46You can have `[section]` if you have `[section "subsection"]`, but you
47don't need to.
48
Junio C Hamano6231f822011-10-24 05:18:5249There is also a deprecated `[section.subsection]` syntax. With this
50syntax, the subsection name is converted to lower-case and is also
51compared case sensitively. These subsection names follow the same
52restrictions as section names.
Junio C Hamanobee172f2007-01-23 08:44:1853
Junio C Hamanoaa2cd762009-07-26 08:14:0154All the other lines (and the remainder of the line after the section
55header) are recognized as setting variables, in the form
Junio C Hamanobee172f2007-01-23 08:44:1856'name = value'. If there is no equal sign on the line, the entire line
57is taken as 'name' and the variable is recognized as boolean "true".
Junio C Hamano81d540a2012-03-02 19:52:4758The variable names are case-insensitive, allow only alphanumeric characters
59and `-`, and must start with an alphabetic character. There can be more
60than one value for a given variable; we say then that the variable is
61multivalued.
Junio C Hamanobee172f2007-01-23 08:44:1862
63Leading and trailing whitespace in a variable value is discarded.
64Internal whitespace within a variable value is retained verbatim.
65
66The values following the equals sign in variable assign are all either
67a string, an integer, or a boolean. Boolean values may be given as yes/no,
Junio C Hamano059bca52011-03-30 22:47:46681/0, true/false or on/off. Case is not significant in boolean values, when
Junio C Hamanobee172f2007-01-23 08:44:1869converting value to the canonical form using '--bool' type specifier;
Junio C Hamano1aa40d22010-01-21 17:46:4370'git config' will ensure that the output is "true" or "false".
Junio C Hamanobee172f2007-01-23 08:44:1871
72String values may be entirely or partially enclosed in double quotes.
Junio C Hamanof4581102009-04-25 08:29:5973You need to enclose variable values in double quotes if you want to
74preserve leading or trailing whitespace, or if the variable value contains
75comment characters (i.e. it contains '#' or ';').
76Double quote `"` and backslash `\` characters in variable values must
Junio C Hamanoea82cff2009-03-18 01:54:4877be escaped: use `\"` for `"` and `\\` for `\`.
Junio C Hamanobee172f2007-01-23 08:44:1878
Junio C Hamanoea82cff2009-03-18 01:54:4879The following escape sequences (beside `\"` and `\\`) are recognized:
80`\n` for newline character (NL), `\t` for horizontal tabulation (HT, TAB)
81and `\b` for backspace (BS). No other char escape sequence, nor octal
Junio C Hamanobee172f2007-01-23 08:44:1882char sequences are valid.
83
Junio C Hamanof4581102009-04-25 08:29:5984Variable values ending in a `\` are continued on the next line in the
Junio C Hamanobee172f2007-01-23 08:44:1885customary UNIX fashion.
86
Junio C Hamanof4581102009-04-25 08:29:5987Some variables may require a special value format.
Junio C Hamano07824ce2006-04-25 07:36:5488
Junio C Hamanoe0238c22012-02-23 22:45:5089Includes
90~~~~~~~~
91
92You can include one config file from another by setting the special
93`include.path` variable to the name of the file to be included. The
94included file is expanded immediately, as if its contents had been
95found at the location of the include directive. If the value of the
96`include.path` variable is a relative path, the path is considered to be
97relative to the configuration file in which the include directive was
Junio C Hamano22700fb2012-05-03 23:07:2598found. The value of `include.path` is subject to tilde expansion: `~/`
99is expanded to the value of `$HOME`, and `~user/` to the specified
Junio C Hamano4d61c4a2012-04-30 01:10:22100user's home directory. See below for examples.
Junio C Hamanoe0238c22012-02-23 22:45:50101
Junio C Hamano07824ce2006-04-25 07:36:54102Example
103~~~~~~~
104
105# Core variables
106[core]
107; Don't trust file modes
108filemode = false
109
110# Our diff algorithm
111[diff]
Junio C Hamano85c71572008-07-28 00:03:31112external = /usr/local/bin/diff-wrapper
Junio C Hamano07824ce2006-04-25 07:36:54113renames = true
114
Junio C Hamano52401ef2006-12-19 00:54:38115[branch "devel"]
116remote = origin
117merge = refs/heads/devel
118
Junio C Hamanobee172f2007-01-23 08:44:18119# Proxy settings
120[core]
Junio C Hamanoc71a8732007-08-04 00:27:26121gitProxy="ssh" for "kernel.org"
Junio C Hamanobee172f2007-01-23 08:44:18122gitProxy=default-proxy ; for the rest
Junio C Hamano52401ef2006-12-19 00:54:38123
Junio C Hamanoe0238c22012-02-23 22:45:50124[include]
125path = /path/to/foo.inc ; include by absolute path
126path = foo ; expand "foo" relative to the current file
Junio C Hamano4d61c4a2012-04-30 01:10:22127path = ~/foo ; expand "foo" in your $HOME directory
Junio C Hamanoe0238c22012-02-23 22:45:50128
Junio C Hamano07824ce2006-04-25 07:36:54129Variables
130~~~~~~~~~
131
132Note that this list is non-comprehensive and not necessarily complete.
Junio C Hamanof1d14802006-06-08 00:48:17133For command-specific variables, you will find a more detailed description
134in the appropriate manual page. You will find a description of non-core
Junio C Hamano07824ce2006-04-25 07:36:54135porcelain configuration variables in the respective porcelain documentation.
136
Junio C Hamano7df6dcf2009-09-13 09:51:17137advice.*::
Junio C Hamano0df92712011-12-21 22:30:44138These variables control various optional help messages designed to
139aid new users. All 'advice.*' variables default to 'true', and you
140can tell Git that you do not need help by setting these to 'false':
Junio C Hamano7df6dcf2009-09-13 09:51:17141+
142--
Junio C Hamanoabad6da2013-01-06 09:06:32143pushUpdateRejected::
Junio C Hamano0c1b64e2012-04-20 23:50:49144Set this variable to 'false' if you want to disable
Junio C Hamanoabad6da2013-01-06 09:06:32145'pushNonFFCurrent', 'pushNonFFDefault',
Junio C Hamano3f2ed6f2013-02-04 19:24:09146'pushNonFFMatching', 'pushAlreadyExists',
147'pushFetchFirst', and 'pushNeedsForce'
Junio C Hamanoabad6da2013-01-06 09:06:32148simultaneously.
Junio C Hamano0c1b64e2012-04-20 23:50:49149pushNonFFCurrent::
150Advice shown when linkgit:git-push[1] fails due to a
151non-fast-forward update to the current branch.
152pushNonFFDefault::
153Advice to set 'push.default' to 'upstream' or 'current'
154when you ran linkgit:git-push[1] and pushed 'matching
155refs' by default (i.e. you did not provide an explicit
156refspec, and no 'push.default' configuration was set)
157and it resulted in a non-fast-forward error.
158pushNonFFMatching::
159Advice shown when you ran linkgit:git-push[1] and pushed
160'matching refs' explicitly (i.e. you used ':', or
161specified a refspec that isn't your current branch) and
162it resulted in a non-fast-forward error.
Junio C Hamanoabad6da2013-01-06 09:06:32163pushAlreadyExists::
164Shown when linkgit:git-push[1] rejects an update that
165does not qualify for fast-forwarding (e.g., a tag.)
Junio C Hamano3f2ed6f2013-02-04 19:24:09166pushFetchFirst::
167Shown when linkgit:git-push[1] rejects an update that
168tries to overwrite a remote ref that points at an
169object we do not have.
170pushNeedsForce::
171Shown when linkgit:git-push[1] rejects an update that
172tries to overwrite a remote ref that points at an
Junio C Hamanoe6f28d02013-09-17 21:34:00173object that is not a commit-ish, or make the remote
174ref point at an object that is not a commit-ish.
Junio C Hamano7df6dcf2009-09-13 09:51:17175statusHints::
Junio C Hamano644936c2012-06-28 23:05:14176Show directions on how to proceed from the current
Junio C Hamano917cd4f2012-12-04 23:41:10177state in the output of linkgit:git-status[1], in
Junio C Hamano644936c2012-06-28 23:05:14178the template shown when writing commit messages in
Junio C Hamano917cd4f2012-12-04 23:41:10179linkgit:git-commit[1], and in the help message shown
180by linkgit:git-checkout[1] when switching branch.
Junio C Hamano5e7f1312013-03-21 22:49:01181statusUoption::
182Advise to consider using the `-u` option to linkgit:git-status[1]
183when the command takes more than 2 seconds to enumerate untracked
184files.
Junio C Hamano5706e0b2009-11-24 10:54:16185commitBeforeMerge::
186Advice shown when linkgit:git-merge[1] refuses to
Junio C Hamano619596a2010-08-18 22:15:35187merge to avoid overwriting local changes.
Junio C Hamanoa9701f02010-01-21 00:42:16188resolveConflict::
Junio C Hamano5dab5a92013-02-25 18:51:24189Advice shown by various commands when conflicts
Junio C Hamanoa9701f02010-01-21 00:42:16190prevent the operation from being performed.
Junio C Hamanoa9701f02010-01-21 00:42:16191implicitIdentity::
192Advice on how to set your identity configuration when
193your information is guessed from the system username and
Junio C Hamano0df92712011-12-21 22:30:44194domain name.
Junio C Hamano74a198f2010-02-22 00:13:31195detachedHead::
Junio C Hamano0df92712011-12-21 22:30:44196Advice shown when you used linkgit:git-checkout[1] to
Junio C Hamano74a198f2010-02-22 00:13:31197move to the detach HEAD state, to instruct how to create
Junio C Hamano0df92712011-12-21 22:30:44198a local branch after the fact.
Junio C Hamanobb300642012-07-22 21:09:14199amWorkDir::
200Advice that shows the location of the patch file when
201linkgit:git-am[1] fails to apply it.
Junio C Hamano8ab94942013-06-24 21:55:30202rmHints::
203In case of failure in the output of linkgit:git-rm[1],
204show directions on how to proceed from the current state.
Junio C Hamano7df6dcf2009-09-13 09:51:17205--
206
Junio C Hamano07824ce2006-04-25 07:36:54207core.fileMode::
208If false, the executable bit differences between the index and
Junio C Hamano8fb66e52011-10-05 20:59:51209the working tree are ignored; useful on broken filesystems like FAT.
Junio C Hamano9df0c662009-11-23 11:09:27210See linkgit:git-update-index[1].
211+
212The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
213will probe and set core.fileMode false if appropriate when the
214repository is created.
Junio C Hamano07824ce2006-04-25 07:36:54215
Junio C Hamano9df0c662009-11-23 11:09:27216core.ignorecase::
217If true, this option enables various workarounds to enable
Junio C Hamano076ffcc2013-02-06 05:13:21218Git to work better on filesystems that are not case sensitive,
Junio C Hamano9df0c662009-11-23 11:09:27219like FAT. For example, if a directory listing finds
Junio C Hamano076ffcc2013-02-06 05:13:21220"makefile" when Git expects "Makefile", Git will assume
Junio C Hamano9df0c662009-11-23 11:09:27221it is really the same file, and continue to remember it as
222"Makefile".
223+
224The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
225will probe and set core.ignorecase true if appropriate when the repository
226is created.
227
Junio C Hamanob61a7772012-07-13 23:34:48228core.precomposeunicode::
Junio C Hamano076ffcc2013-02-06 05:13:21229This option is only used by Mac OS implementation of Git.
230When core.precomposeunicode=true, Git reverts the unicode decomposition
Junio C Hamanob61a7772012-07-13 23:34:48231of filenames done by Mac OS. This is useful when sharing a repository
232between Mac OS and Linux or Windows.
Junio C Hamano076ffcc2013-02-06 05:13:21233(Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7).
234When false, file names are handled fully transparent by Git,
235which is backward compatible with older versions of Git.
Junio C Hamanob61a7772012-07-13 23:34:48236
Junio C Hamano90ccff32008-07-29 08:17:24237core.trustctime::
238If false, the ctime differences between the index and the
Junio C Hamano8fb66e52011-10-05 20:59:51239working tree are ignored; useful when the inode change time
Junio C Hamano90ccff32008-07-29 08:17:24240is regularly modified by something outside Git (file system
241crawlers and some backup systems).
242See linkgit:git-update-index[1]. True by default.
243
Junio C Hamano4cfed0c2013-01-30 17:58:54244core.checkstat::
245Determines which stat fields to match between the index
246and work tree. The user can set this to 'default' or
247'minimal'. Default (or explicitly 'default'), is to check
248all fields, including the sub-second part of mtime and ctime.
249
Junio C Hamanod526ba92007-07-02 00:17:42250core.quotepath::
Junio C Hamanoba4b9282008-07-06 05:20:31251The commands that output paths (e.g. 'ls-files',
252'diff'), when not given the `-z` option, will quote
Junio C Hamanod526ba92007-07-02 00:17:42253"unusual" characters in the pathname by enclosing the
254pathname in a double-quote pair and with backslashes the
255same way strings in C source code are quoted. If this
256variable is set to false, the bytes higher than 0x80 are
257not quoted but output as verbatim. Note that double
258quote, backslash and control characters are always
259quoted without `-z` regardless of the setting of this
260variable.
261
Junio C Hamanobb88cf42010-06-21 15:23:55262core.eol::
263Sets the line ending type to use in the working directory for
264files that have the `text` property set. Alternatives are
265'lf', 'crlf' and 'native', which uses the platform's native
266line ending. The default value is `native`. See
267linkgit:gitattributes[5] for more information on end-of-line
268conversion.
Junio C Hamanod9e0e5d2007-04-14 16:22:04269
Junio C Hamano26e590a2008-02-17 03:53:51270core.safecrlf::
Junio C Hamano076ffcc2013-02-06 05:13:21271If true, makes Git check if converting `CRLF` is reversible when
Junio C Hamanobb88cf42010-06-21 15:23:55272end-of-line conversion is active. Git will verify if a command
Junio C Hamano26e590a2008-02-17 03:53:51273modifies a file in the work tree either directly or indirectly.
274For example, committing a file followed by checking out the
275same file should yield the original file in the work tree. If
276this is not the case for the current setting of
Junio C Hamano076ffcc2013-02-06 05:13:21277`core.autocrlf`, Git will reject the file. The variable can
278be set to "warn", in which case Git will only warn about an
Junio C Hamano26e590a2008-02-17 03:53:51279irreversible conversion but continue the operation.
280+
281CRLF conversion bears a slight chance of corrupting data.
Junio C Hamano076ffcc2013-02-06 05:13:21282When it is enabled, Git will convert CRLF to LF during commit and LF to
Junio C Hamano26e590a2008-02-17 03:53:51283CRLF during checkout. A file that contains a mixture of LF and
Junio C Hamano076ffcc2013-02-06 05:13:21284CRLF before the commit cannot be recreated by Git. For text
Junio C Hamano26e590a2008-02-17 03:53:51285files this is the right thing to do: it corrects line endings
286such that we have only LF line endings in the repository.
287But for binary files that are accidentally classified as text the
288conversion can corrupt data.
289+
290If you recognize such corruption early you can easily fix it by
291setting the conversion type explicitly in .gitattributes. Right
292after committing you still have the original file in your work
293tree and this file is not yet corrupted. You can explicitly tell
Junio C Hamano076ffcc2013-02-06 05:13:21294Git that this file is binary and Git will handle the file
Junio C Hamano26e590a2008-02-17 03:53:51295appropriately.
296+
297Unfortunately, the desired effect of cleaning up text files with
298mixed line endings and the undesired effect of corrupting binary
299files cannot be distinguished. In both cases CRLFs are removed
300in an irreversible way. For text files this is the right thing
301to do because CRLFs are line endings, while for binary files
302converting CRLFs corrupts data.
303+
304Note, this safety check does not mean that a checkout will generate a
305file identical to the original file for a different setting of
Junio C Hamanobb88cf42010-06-21 15:23:55306`core.eol` and `core.autocrlf`, but only for the current one. For
307example, a text file with `LF` would be accepted with `core.eol=lf`
308and could later be checked out with `core.eol=crlf`, in which case the
Junio C Hamano26e590a2008-02-17 03:53:51309resulting file would contain `CRLF`, although the original file
310contained `LF`. However, in both work trees the line endings would be
311consistent, that is either all `LF` or all `CRLF`, but never mixed. A
312file with mixed line endings would be reported by the `core.safecrlf`
313mechanism.
314
Junio C Hamanobb88cf42010-06-21 15:23:55315core.autocrlf::
316Setting this variable to "true" is almost the same as setting
317the `text` attribute to "auto" on all files except that text
318files are not guaranteed to be normalized: files that contain
319`CRLF` in the repository will not be touched. Use this
320setting if you want to have `CRLF` line endings in your
321working directory even though the repository does not have
322normalized line endings. This variable can be set to 'input',
323in which case no output conversion is performed.
324
Junio C Hamanoaa83a7d2007-03-05 02:37:29325core.symlinks::
326If false, symbolic links are checked out as small plain files that
Junio C Hamano35738e82008-01-07 07:55:46327contain the link text. linkgit:git-update-index[1] and
328linkgit:git-add[1] will not change the recorded type to regular
Junio C Hamanoaa83a7d2007-03-05 02:37:29329file. Useful on filesystems like FAT that do not support
Junio C Hamano9df0c662009-11-23 11:09:27330symbolic links.
331+
332The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
333will probe and set core.symlinks false if appropriate when the repository
334is created.
Junio C Hamanoaa83a7d2007-03-05 02:37:29335
Junio C Hamano07824ce2006-04-25 07:36:54336core.gitProxy::
337A "proxy command" to execute (as 'command host port') instead
338of establishing direct connection to the remote server when
Junio C Hamano076ffcc2013-02-06 05:13:21339using the Git protocol for fetching. If the variable value is
Junio C Hamano07824ce2006-04-25 07:36:54340in the "COMMAND for DOMAIN" format, the command is applied only
341on hostnames ending with the specified domain string. This variable
342may be set multiple times and is matched in the given order;
343the first match wins.
Junio C Hamanof1d14802006-06-08 00:48:17344+
345Can be overridden by the 'GIT_PROXY_COMMAND' environment variable
346(which always applies universally, without the special "for"
347handling).
Junio C Hamanoea82cff2009-03-18 01:54:48348+
349The special string `none` can be used as the proxy command to
350specify that no proxy be used for a given domain pattern.
351This is useful for excluding servers inside a firewall from
352proxy use, while defaulting to a common proxy for external domains.
Junio C Hamano07824ce2006-04-25 07:36:54353
354core.ignoreStat::
Junio C Hamano054ea082008-06-01 08:26:34355If true, commands which modify both the working tree and the index
356will mark the updated paths with the "assume unchanged" bit in the
357index. These marked files are then assumed to stay unchanged in the
Junio C Hamano8fb66e52011-10-05 20:59:51358working tree, until you mark them otherwise manually - Git will not
Junio C Hamano054ea082008-06-01 08:26:34359detect the file changes by lstat() calls. This is useful on systems
360where those are very slow, such as Microsoft Windows.
361See linkgit:git-update-index[1].
Junio C Hamano07824ce2006-04-25 07:36:54362False by default.
363
Junio C Hamano88a3a072006-05-04 08:01:43364core.preferSymlinkRefs::
365Instead of the default "symref" format for HEAD
366and other symbolic reference files, use symbolic links.
367This is sometimes needed to work with old scripts that
368expect HEAD to be a symbolic link.
Junio C Hamano07824ce2006-04-25 07:36:54369
Junio C Hamano1025e752007-02-23 07:21:26370core.bare::
371If true this repository is assumed to be 'bare' and has no
372working directory associated with it. If this is the case a
373number of commands that require a working directory will be
Junio C Hamano35738e82008-01-07 07:55:46374disabled, such as linkgit:git-add[1] or linkgit:git-merge[1].
Junio C Hamano1025e752007-02-23 07:21:26375+
Junio C Hamano35738e82008-01-07 07:55:46376This setting is automatically guessed by linkgit:git-clone[1] or
377linkgit:git-init[1] when the repository was created. By default a
Junio C Hamano1025e752007-02-23 07:21:26378repository that ends in "/.git" is assumed to be not bare (bare =
379false), while all other repositories are assumed to be bare (bare
380= true).
381
Junio C Hamanod526ba92007-07-02 00:17:42382core.worktree::
Junio C Hamano80d58462011-01-24 22:52:52383Set the path to the root of the working tree.
Junio C Hamano764a6672007-10-23 01:23:31384This can be overridden by the GIT_WORK_TREE environment
Junio C Hamano80d58462011-01-24 22:52:52385variable and the '--work-tree' command line option.
Junio C Hamano5cd15182011-04-05 00:21:10386The value can be an absolute path or relative to the path to
Junio C Hamano80d58462011-01-24 22:52:52387the .git directory, which is either specified by --git-dir
388or GIT_DIR, or automatically discovered.
389If --git-dir or GIT_DIR is specified but none of
Junio C Hamano7d575a52008-04-30 08:45:27390--work-tree, GIT_WORK_TREE and core.worktree is specified,
Junio C Hamano80d58462011-01-24 22:52:52391the current working directory is regarded as the top level
Junio C Hamano3609b332010-12-29 01:34:52392of your working tree.
Junio C Hamano80d58462011-01-24 22:52:52393+
394Note that this variable is honored even when set in a configuration
395file in a ".git" subdirectory of a directory and its value differs
396from the latter directory (e.g. "/path/to/.git/config" has
397core.worktree set to "/different/path"), which is most likely a
Junio C Hamano076ffcc2013-02-06 05:13:21398misconfiguration. Running Git commands in the "/path/to" directory will
Junio C Hamano80d58462011-01-24 22:52:52399still use "/different/path" as the root of the work tree and can cause
400confusion unless you know what you are doing (e.g. you are creating a
401read-only snapshot of the same index to a location different from the
402repository's usual working tree).
Junio C Hamanod526ba92007-07-02 00:17:42403
Junio C Hamano341071d2006-06-04 07:24:48404core.logAllRefUpdates::
Junio C Hamanocae86272007-08-21 02:20:49405Enable the reflog. Updates to a ref <ref> is logged to the file
Junio C Hamanoa2ec14f2006-11-02 00:22:48406"$GIT_DIR/logs/<ref>", by appending the new and old
Junio C Hamanoe3f080d2013-04-22 02:27:13407SHA-1, the date/time and the reason of the update, but
Junio C Hamanoa2ec14f2006-11-02 00:22:48408only when the file exists. If this configuration
409variable is set to true, missing "$GIT_DIR/logs/<ref>"
Junio C Hamano15567bc2011-07-23 00:51:59410file is automatically created for branch heads (i.e. under
411refs/heads/), remote refs (i.e. under refs/remotes/),
412note refs (i.e. under refs/notes/), and the symbolic ref HEAD.
Junio C Hamano1caaf472006-12-31 08:29:35413+
414This information can be used to determine what commit
415was the tip of a branch "2 days ago".
416+
417This value is true by default in a repository that has
418a working directory associated with it, and false by
419default in a bare repository.
Junio C Hamano341071d2006-06-04 07:24:48420
Junio C Hamano07824ce2006-04-25 07:36:54421core.repositoryFormatVersion::
422Internal variable identifying the repository format and layout
423version.
424
425core.sharedRepository::
Junio C Hamano0ab78ae2006-08-09 01:00:42426When 'group' (or 'true'), the repository is made shareable between
427several users in a group (making sure all the files and objects are
428group-writable). When 'all' (or 'world' or 'everybody'), the
429repository will be readable by all users, additionally to being
Junio C Hamano076ffcc2013-02-06 05:13:21430group-shareable. When 'umask' (or 'false'), Git will use permissions
Junio C Hamano2f102bb2008-04-26 02:23:37431reported by umask(2). When '0xxx', where '0xxx' is an octal number,
432files in the repository will have this mode value. '0xxx' will override
Junio C Hamano83eded12009-04-20 08:18:00433user's umask value (whereas the other options will only override
434requested parts of the user's umask value). Examples: '0660' will make
435the repo read/write-able for the owner and group, but inaccessible to
436others (equivalent to 'group' unless umask is e.g. '0022'). '0640' is a
Junio C Hamano2f102bb2008-04-26 02:23:37437repository that is group-readable but not group-writable.
438See linkgit:git-init[1]. False by default.
Junio C Hamano07824ce2006-04-25 07:36:54439
440core.warnAmbiguousRefs::
Junio C Hamano076ffcc2013-02-06 05:13:21441If true, Git will warn you if the ref name you passed it is ambiguous
Junio C Hamano947ab822013-03-19 23:07:29442and might match multiple refs in the repository. True by default.
Junio C Hamano07824ce2006-04-25 07:36:54443
Junio C Hamano7ec15722006-07-07 02:03:59444core.compression::
Junio C Hamanof2ce2972007-05-20 19:12:09445An integer -1..9, indicating a default compression level.
446-1 is the zlib default. 0 means no compression,
447and 1..9 are various speed/size tradeoffs, 9 being slowest.
Junio C Hamano2e72a942007-11-21 08:54:42448If set, this provides a default to other compression variables,
449such as 'core.loosecompression' and 'pack.compression'.
Junio C Hamanoa126a3b2006-07-04 04:55:26450
Junio C Hamanof2ce2972007-05-20 19:12:09451core.loosecompression::
452An integer -1..9, indicating the compression level for objects that
453are not in a pack file. -1 is the zlib default. 0 means no
454compression, and 1..9 are various speed/size tradeoffs, 9 being
455slowest. If not set, defaults to core.compression. If that is
Junio C Hamano2e72a942007-11-21 08:54:42456not set, defaults to 1 (best speed).
Junio C Hamano28d9dfe2006-07-25 03:50:49457
Junio C Hamanofc4d38c2007-01-08 06:53:32458core.packedGitWindowSize::
459Number of bytes of a pack file to map into memory in a
460single mapping operation. Larger window sizes may allow
461your system to process a smaller number of large pack files
462more quickly. Smaller window sizes will negatively affect
463performance due to increased calls to the operating system's
464memory manager, but may improve performance when accessing
465a large number of large pack files.
466+
467Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
468MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
469be reasonable for all users/operating systems. You probably do
470not need to adjust this value.
471+
472Common unit suffixes of 'k', 'm', or 'g' are supported.
473
474core.packedGitLimit::
475Maximum number of bytes to map simultaneously into memory
476from pack files. If Git needs to access more than this many
477bytes at once to complete an operation it will unmap existing
478regions to reclaim virtual address space within the process.
479+
480Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.
481This should be reasonable for all users/operating systems, except on
482the largest projects. You probably do not need to adjust this value.
483+
484Common unit suffixes of 'k', 'm', or 'g' are supported.
485
Junio C Hamanob8c51282007-03-19 10:43:30486core.deltaBaseCacheLimit::
487Maximum number of bytes to reserve for caching base objects
Junio C Hamano619596a2010-08-18 22:15:35488that may be referenced by multiple deltified objects. By storing the
Junio C Hamanob8c51282007-03-19 10:43:30489entire decompressed base objects in a cache Git is able
490to avoid unpacking and decompressing frequently used base
491objects multiple times.
492+
493Default is 16 MiB on all platforms. This should be reasonable
494for all users/operating systems, except on the largest projects.
495You probably do not need to adjust this value.
496+
497Common unit suffixes of 'k', 'm', or 'g' are supported.
498
Junio C Hamano5c246f22010-02-03 07:34:53499core.bigFileThreshold::
500Files larger than this size are stored deflated, without
501attempting delta compression. Storing large files without
502delta compression avoids excessive memory usage, at the
503slight expense of increased disk usage.
504+
505Default is 512 MiB on all platforms. This should be reasonable
506for most projects as source code and other text files can still
507be delta compressed, but larger binary media files won't be.
508+
509Common unit suffixes of 'k', 'm', or 'g' are supported.
Junio C Hamano5c246f22010-02-03 07:34:53510
Junio C Hamano1d90cb02007-07-03 07:05:31511core.excludesfile::
Junio C Hamano5e284b42007-05-22 07:23:37512In addition to '.gitignore' (per-directory) and
Junio C Hamano076ffcc2013-02-06 05:13:21513'.git/info/exclude', Git looks into this file for patterns
Junio C Hamanob76a6862012-05-02 22:02:46514of files which are not meant to be tracked. "`~/`" is expanded
515to the value of `$HOME` and "`~user/`" to the specified user's
Junio C Hamano8edb4c72012-07-09 20:33:55516home directory. Its default value is $XDG_CONFIG_HOME/git/ignore.
517If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore
518is used instead. See linkgit:gitignore[5].
Junio C Hamano5e284b42007-05-22 07:23:37519
Junio C Hamano3fd7b262010-09-08 22:44:20520core.askpass::
521Some commands (e.g. svn and http interfaces) that interactively
522ask for a password can be told to use an external program given
523via the value of this variable. Can be overridden by the 'GIT_ASKPASS'
524environment variable. If not set, fall back to the value of the
525'SSH_ASKPASS' environment variable or, failing that, a simple password
526prompt. The external program shall be given a suitable prompt as
527command line argument and write the password on its STDOUT.
528
Junio C Hamano3b4609d2010-09-30 00:04:34529core.attributesfile::
530In addition to '.gitattributes' (per-directory) and
Junio C Hamano076ffcc2013-02-06 05:13:21531'.git/info/attributes', Git looks into this file for attributes
Junio C Hamano3b4609d2010-09-30 00:04:34532(see linkgit:gitattributes[5]). Path expansions are made the same
Junio C Hamano8edb4c72012-07-09 20:33:55533way as for `core.excludesfile`. Its default value is
534$XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not
535set or empty, $HOME/.config/git/attributes is used instead.
Junio C Hamano3b4609d2010-09-30 00:04:34536
Junio C Hamanof6002a92007-07-20 10:28:22537core.editor::
538Commands such as `commit` and `tag` that lets you edit
Junio C Hamanoa6387422007-08-25 03:54:27539messages by launching an editor uses the value of this
Junio C Hamanof6002a92007-07-20 10:28:22540variable when it is set, and the environment variable
Junio C Hamano3b70d3c2009-11-21 17:37:37541`GIT_EDITOR` is not set. See linkgit:git-var[1].
Junio C Hamanof6002a92007-07-20 10:28:22542
Junio C Hamano3f2ed6f2013-02-04 19:24:09543core.commentchar::
544Commands such as `commit` and `tag` that lets you edit
545messages consider a line that begins with this character
546commented, and removes them after the editor returns
547(default '#').
548
Junio C Hamano6231f822011-10-24 05:18:52549sequence.editor::
Junio C Hamano778a3412013-03-28 23:24:30550Text editor used by `git rebase -i` for editing the rebase instruction file.
Junio C Hamano6231f822011-10-24 05:18:52551The value is meant to be interpreted by the shell when it is used.
552It can be overridden by the `GIT_SEQUENCE_EDITOR` environment variable.
553When not configured the default commit message editor is used instead.
554
Junio C Hamano28d8ede2007-07-05 05:51:38555core.pager::
Junio C Hamano0e0e0d22013-09-12 23:25:03556Text viewer for use by Git commands (e.g., 'less'). The value
557is meant to be interpreted by the shell. The order of preference
558is the `$GIT_PAGER` environment variable, then `core.pager`
559configuration, then `$PAGER`, and then the default chosen at
560compile time (usually 'less').
561+
562When the `LESS` environment variable is unset, Git sets it to `FRSX`
563(if `LESS` environment variable is set, Git does not change it at
564all). If you want to selectively override Git's default setting
565for `LESS`, you can set `core.pager` to e.g. `less -+S`. This will
566be passed to the shell by Git, which will translate the final
567command to `LESS=FRSX less -+S`. The environment tells the command
568to set the `S` option to chop long lines but the command line
569resets it to the default to fold long lines.
Junio C Hamano28d8ede2007-07-05 05:51:38570
Junio C Hamano942b35e2007-12-09 10:19:33571core.whitespace::
572A comma separated list of common whitespace problems to
Junio C Hamano1aa40d22010-01-21 17:46:43573notice. 'git diff' will use `color.diff.whitespace` to
574highlight them, and 'git apply --whitespace=error' will
Junio C Hamano3db8b412008-07-26 06:45:59575consider them as errors. You can prefix `-` to disable
576any of them (e.g. `-trailing-space`):
Junio C Hamano942b35e2007-12-09 10:19:33577+
Junio C Hamanob71a22d2009-10-17 08:23:47578* `blank-at-eol` treats trailing whitespaces at the end of the line
Junio C Hamano942b35e2007-12-09 10:19:33579 as an error (enabled by default).
580* `space-before-tab` treats a space character that appears immediately
581 before a tab character in the initial indent part of the line as an
582 error (enabled by default).
Junio C Hamano281fd392012-09-17 23:57:41583* `indent-with-non-tab` treats a line that is indented with space
584 characters instead of the equivalent tabs as an error (not enabled by
585 default).
Junio C Hamanocb39aea2010-05-09 07:24:48586* `tab-in-indent` treats a tab character in the initial indent part of
587 the line as an error (not enabled by default).
Junio C Hamanob71a22d2009-10-17 08:23:47588* `blank-at-eof` treats blank lines added at the end of file as an error
589 (enabled by default).
590* `trailing-space` is a short-hand to cover both `blank-at-eol` and
591 `blank-at-eof`.
Junio C Hamano601f3e52008-02-25 08:40:42592* `cr-at-eol` treats a carriage-return at the end of line as
593 part of the line terminator, i.e. with it, `trailing-space`
594 does not trigger if the character before such a carriage-return
595 is not a whitespace (not enabled by default).
Junio C Hamanoeef01fe2010-12-13 08:31:58596* `tabwidth=<n>` tells how many character positions a tab occupies; this
Junio C Hamano076ffcc2013-02-06 05:13:21597 is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent`
Junio C Hamanoeef01fe2010-12-13 08:31:58598 errors. The default tab width is 8. Allowed values are 1 to 63.
Junio C Hamano942b35e2007-12-09 10:19:33599
Junio C Hamano9eb57532008-06-26 06:33:46600core.fsyncobjectfiles::
601This boolean will enable 'fsync()' when writing object files.
602+
603This is a total waste of time and effort on a filesystem that orders
604data writes properly, but can be useful for filesystems that do not use
605journalling (traditional UNIX filesystems) or that only journal metadata
606and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").
607
Junio C Hamano610d1762008-11-28 06:27:13608core.preloadindex::
609Enable parallel index preload for operations like 'git diff'
610+
611This can speed up operations like 'git diff' and 'git status' especially
612on filesystems like NFS that have weak caching semantics and thus
Junio C Hamano076ffcc2013-02-06 05:13:21613relatively high IO latencies. With this set to 'true', Git will do the
Junio C Hamano610d1762008-11-28 06:27:13614index comparison to the filesystem data in parallel, allowing
615overlapping IO's.
616
Junio C Hamanoa9499de2009-04-30 03:38:48617core.createObject::
618You can set this to 'link', in which case a hardlink followed by
619a delete of the source are used to make sure that object creation
620will not overwrite existing objects.
621+
622On some file system/operating system combinations, this is unreliable.
623Set this config setting to 'rename' there; However, This will remove the
624check that makes sure that existing object files will not get overwritten.
Junio C Hamanoe91ea772009-04-26 01:41:41625
Junio C Hamano3b70d3c2009-11-21 17:37:37626core.notesRef::
627When showing commit messages, also show notes which are stored in
Junio C Hamanoa574a092010-06-13 19:57:10628the given ref. The ref must be fully qualified. If the given
629ref does not exist, it is not an error but means that no
630notes should be printed.
Junio C Hamano3b70d3c2009-11-21 17:37:37631+
Junio C Hamanoa574a092010-06-13 19:57:10632This setting defaults to "refs/notes/commits", and it can be overridden by
633the 'GIT_NOTES_REF' environment variable. See linkgit:git-notes[1].
Junio C Hamano3b70d3c2009-11-21 17:37:37634
Junio C Hamano3c8d6702010-01-13 23:09:03635core.sparseCheckout::
636Enable "sparse checkout" feature. See section "Sparse checkout" in
637linkgit:git-read-tree[1] for more information.
638
Junio C Hamano6371b0e2011-03-23 23:36:21639core.abbrev::
640Set the length object names are abbreviated to. If unspecified,
641many commands abbreviate to 7 hexdigits, which may not be enough
642for abbreviated object names to stay unique for sufficiently long
643time.
644
Junio C Hamano3d141512009-06-01 01:22:40645add.ignore-errors::
Junio C Hamano60186642010-12-02 14:18:26646add.ignoreErrors::
Junio C Hamano1aa40d22010-01-21 17:46:43647Tells 'git add' to continue adding files when some files cannot be
Junio C Hamano3d141512009-06-01 01:22:40648added due to indexing errors. Equivalent to the '--ignore-errors'
Junio C Hamano076ffcc2013-02-06 05:13:21649option of linkgit:git-add[1]. Older versions of Git accept only
Junio C Hamano60186642010-12-02 14:18:26650`add.ignore-errors`, which does not follow the usual naming
Junio C Hamano076ffcc2013-02-06 05:13:21651convention for configuration variables. Newer versions of Git
Junio C Hamano60186642010-12-02 14:18:26652honor `add.ignoreErrors` as well.
Junio C Hamano3d141512009-06-01 01:22:40653
Junio C Hamano33db4372006-06-07 19:51:45654alias.*::
Junio C Hamano35738e82008-01-07 07:55:46655Command aliases for the linkgit:git[1] command wrapper - e.g.
Junio C Hamano33db4372006-06-07 19:51:45656after defining "alias.last = cat-file commit HEAD", the invocation
657"git last" is equivalent to "git cat-file commit HEAD". To avoid
Junio C Hamanof1d14802006-06-08 00:48:17658confusion and troubles with script usage, aliases that
Junio C Hamano076ffcc2013-02-06 05:13:21659hide existing Git commands are ignored. Arguments are split by
Junio C Hamanof1d14802006-06-08 00:48:17660spaces, the usual shell quoting and escaping is supported.
661quote pair and a backslash can be used to quote them.
Junio C Hamanodbb64592007-09-01 11:17:39662+
663If the alias expansion is prefixed with an exclamation point,
664it will be treated as a shell command. For example, defining
665"alias.new = !gitk --all --not ORIG_HEAD", the invocation
666"git new" is equivalent to running the shell command
Junio C Hamano48bc1ce2009-07-09 16:49:19667"gitk --all --not ORIG_HEAD". Note that shell commands will be
668executed from the top-level directory of a repository, which may
669not necessarily be the current directory.
Junio C Hamano5f2627d2011-05-06 20:23:48670'GIT_PREFIX' is set as returned by running 'git rev-parse --show-prefix'
671from the original current directory. See linkgit:git-rev-parse[1].
Junio C Hamano9cb74f22007-02-12 04:15:05672
Junio C Hamanocaa712a2010-03-11 01:17:35673am.keepcr::
674If true, git-am will call git-mailsplit for patches in mbox format
675with parameter '--keep-cr'. In this case git-mailsplit will
Junio C Hamano619596a2010-08-18 22:15:35676not remove `\r` from lines ending with `\r\n`. Can be overridden
Junio C Hamanocaa712a2010-03-11 01:17:35677by giving '--no-keep-cr' from the command line.
678See linkgit:git-am[1], linkgit:git-mailsplit[1].
679
Junio C Hamanofe24db02009-08-22 05:10:47680apply.ignorewhitespace::
Junio C Hamano1aa40d22010-01-21 17:46:43681When set to 'change', tells 'git apply' to ignore changes in
Junio C Hamanofe24db02009-08-22 05:10:47682whitespace, in the same way as the '--ignore-space-change'
683option.
Junio C Hamano1aa40d22010-01-21 17:46:43684When set to one of: no, none, never, false tells 'git apply' to
Junio C Hamanofe24db02009-08-22 05:10:47685respect all whitespace differences.
686See linkgit:git-apply[1].
687
Junio C Hamano07824ce2006-04-25 07:36:54688apply.whitespace::
Junio C Hamano1aa40d22010-01-21 17:46:43689Tells 'git apply' how to handle whitespaces, in the same way
Junio C Hamano35738e82008-01-07 07:55:46690as the '--whitespace' option. See linkgit:git-apply[1].
Junio C Hamano07824ce2006-04-25 07:36:54691
Junio C Hamano7fd84172007-05-24 07:00:32692branch.autosetupmerge::
Junio C Hamano1aa40d22010-01-21 17:46:43693Tells 'git branch' and 'git checkout' to set up new branches
Junio C Hamano24bc09a2008-02-28 00:27:44694so that linkgit:git-pull[1] will appropriately merge from the
695starting point branch. Note that even if this option is not set,
Junio C Hamano7fd84172007-05-24 07:00:32696this behavior can be chosen per-branch using the `--track`
Junio C Hamano24bc09a2008-02-28 00:27:44697and `--no-track` options. The valid settings are: `false` -- no
698automatic setup is done; `true` -- automatic setup is done when the
Junio C Hamano97bcb482010-11-25 03:16:07699starting point is a remote-tracking branch; `always` --
700automatic setup is done when the starting point is either a
701local branch or remote-tracking
Junio C Hamano24bc09a2008-02-28 00:27:44702branch. This option defaults to true.
Junio C Hamano7fd84172007-05-24 07:00:32703
Junio C Hamano869bb802008-05-12 00:29:47704branch.autosetuprebase::
Junio C Hamano1aa40d22010-01-21 17:46:43705When a new branch is created with 'git branch' or 'git checkout'
Junio C Hamano076ffcc2013-02-06 05:13:21706that tracks another branch, this variable tells Git to set
Junio C Hamano869bb802008-05-12 00:29:47707up pull to rebase instead of merge (see "branch.<name>.rebase").
708When `never`, rebase is never automatically set to true.
709When `local`, rebase is set to true for tracked branches of
710other local branches.
711When `remote`, rebase is set to true for tracked branches of
Junio C Hamano97bcb482010-11-25 03:16:07712remote-tracking branches.
Junio C Hamano869bb802008-05-12 00:29:47713When `always`, rebase will be set to true for all tracking
714branches.
715See "branch.autosetupmerge" for details on how to set up a
716branch to track another branch.
717This option defaults to never.
718
Junio C Hamano47c1e3c2006-09-25 04:45:55719branch.<name>.remote::
Junio C Hamano63b6fdb2013-04-07 23:37:13720When on branch <name>, it tells 'git fetch' and 'git push'
721which remote to fetch from/push to. The remote to push to
722may be overridden with `remote.pushdefault` (for all branches).
723The remote to push to, for the current branch, may be further
724overridden by `branch.<name>.pushremote`. If no remote is
725configured, or if you are not on any branch, it defaults to
726`origin` for fetching and `remote.pushdefault` for pushing.
Junio C Hamano238ce9c2013-10-23 21:56:38727Additionally, `.` (a period) is the current local repository
728(a dot-repository), see `branch.<name>.merge`'s final note below.
Junio C Hamano63b6fdb2013-04-07 23:37:13729
730branch.<name>.pushremote::
731When on branch <name>, it overrides `branch.<name>.remote` for
732pushing. It also overrides `remote.pushdefault` for pushing
733from branch <name>. When you pull from one place (e.g. your
734upstream) and push to another place (e.g. your own publishing
735repository), you would want to set `remote.pushdefault` to
736specify the remote to push to for all branches, and use this
737option to override it for a specific branch.
Junio C Hamano47c1e3c2006-09-25 04:45:55738
739branch.<name>.merge::
Junio C Hamano0706c802009-03-30 22:34:19740Defines, together with branch.<name>.remote, the upstream branch
Junio C Hamanob02377c2011-04-28 22:26:02741for the given branch. It tells 'git fetch'/'git pull'/'git rebase' which
Junio C Hamano1aa40d22010-01-21 17:46:43742branch to merge and can also affect 'git push' (see push.default).
743When in branch <name>, it tells 'git fetch' the default
Junio C Hamanoc2b47092007-10-25 06:50:31744refspec to be marked for merging in FETCH_HEAD. The value is
745handled like the remote part of a refspec, and must match a
746ref which is fetched from the remote given by
747"branch.<name>.remote".
Junio C Hamano1aa40d22010-01-21 17:46:43748The merge information is used by 'git pull' (which at first calls
749'git fetch') to lookup the default branch for merging. Without
750this option, 'git pull' defaults to merge the first refspec fetched.
Junio C Hamano96010b22006-12-09 21:15:46751Specify multiple values to get an octopus merge.
Junio C Hamano1aa40d22010-01-21 17:46:43752If you wish to setup 'git pull' so that it merges into <name> from
Junio C Hamano6e149c02007-03-16 10:21:07753another branch in the local repository, you can point
Junio C Hamano238ce9c2013-10-23 21:56:38754branch.<name>.merge to the desired branch, and use the relative path
755setting `.` (a period) for branch.<name>.remote.
Junio C Hamano47c1e3c2006-09-25 04:45:55756
Junio C Hamano1b50ce92007-10-03 12:05:53757branch.<name>.mergeoptions::
758Sets default options for merging into branch <name>. The syntax and
Junio C Hamanoc0e55e72009-10-10 00:56:29759supported options are the same as those of linkgit:git-merge[1], but
Junio C Hamano1b50ce92007-10-03 12:05:53760option values containing whitespace characters are currently not
761supported.
762
Junio C Hamano0c999702007-12-03 09:57:55763branch.<name>.rebase::
764When true, rebase the branch <name> on top of the fetched branch,
Junio C Hamano6d76d612008-05-09 05:46:08765instead of merging the default branch from the default remote when
Junio C Hamano515ab1d2011-12-09 23:41:20766"git pull" is run. See "pull.rebase" for doing this in a non
767branch-specific manner.
768+
Junio C Hamanocf4a1742013-09-11 22:57:50769When preserve, also pass `--preserve-merges` along to 'git rebase'
770so that locally committed merge commits will not be flattened
771by running 'git pull'.
772+
Junio C Hamano515ab1d2011-12-09 23:41:20773*NOTE*: this is a possibly dangerous operation; do *not* use
774it unless you understand the implications (see linkgit:git-rebase[1]
775for details).
Junio C Hamano0c999702007-12-03 09:57:55776
Junio C Hamano46247182013-01-09 20:50:28777branch.<name>.description::
778Branch description, can be edited with
779`git branch --edit-description`. Branch description is
780automatically added in the format-patch cover letter or
781request-pull summary.
782
Junio C Hamano8760ea62008-03-14 08:58:45783browser.<tool>.cmd::
784Specify the command to invoke the specified browser. The
785specified command is evaluated in shell with the URLs passed
Junio C Hamano360e3a12011-07-13 23:51:56786as arguments. (See linkgit:git-web{litdd}browse[1].)
Junio C Hamano8760ea62008-03-14 08:58:45787
Junio C Hamanoe35a6fc2008-01-29 09:46:27788browser.<tool>.path::
789Override the path for the given tool that may be used to
790browse HTML help (see '-w' option in linkgit:git-help[1]) or a
791working repository in gitweb (see linkgit:git-instaweb[1]).
792
Junio C Hamano47b9acd2007-04-24 07:34:34793clean.requireForce::
Junio C Hamanoe6f28d02013-09-17 21:34:00794A boolean to make git-clean do nothing unless given -f,
795-i or -n. Defaults to true.
Junio C Hamano47b9acd2007-04-24 07:34:34796
Junio C Hamanoeb692952007-01-03 22:02:12797color.branch::
798A boolean to enable/disable color in the output of
Junio C Hamano35738e82008-01-07 07:55:46799linkgit:git-branch[1]. May be set to `always`,
Junio C Hamano0fc8cd92007-12-06 03:26:21800`false` (or `never`) or `auto` (or `true`), in which case colors are used
Junio C Hamanoeb692952007-01-03 22:02:12801only when the output is to a terminal. Defaults to false.
802
803color.branch.<slot>::
804Use customized color for branch coloration. `<slot>` is one of
805`current` (the current branch), `local` (a local branch),
Junio C Hamano76927822013-04-19 21:26:57806`remote` (a remote-tracking branch in refs/remotes/),
807`upstream` (upstream tracking branch), `plain` (other
Junio C Hamano5a702332007-01-28 20:55:22808refs).
809+
810The value for these configuration variables is a list of colors (at most
811two) and attributes (at most one), separated by spaces. The colors
812accepted are `normal`, `black`, `red`, `green`, `yellow`, `blue`,
813`magenta`, `cyan` and `white`; the attributes are `bold`, `dim`, `ul`,
814`blink` and `reverse`. The first color given is the foreground; the
815second is the background. The position of the attribute, if any,
816doesn't matter.
Junio C Hamanoeb692952007-01-03 22:02:12817
Junio C Hamano3f403b02006-12-13 10:14:13818color.diff::
Junio C Hamano5f2627d2011-05-06 20:23:48819Whether to use ANSI escape sequences to add color to patches.
820If this is set to `always`, linkgit:git-diff[1],
821linkgit:git-log[1], and linkgit:git-show[1] will use color
822for all patches. If it is set to `true` or `auto`, those
823commands will only use color when output is to the terminal.
824Defaults to false.
825+
826This does not affect linkgit:git-format-patch[1] nor the
827'git-diff-{asterisk}' plumbing commands. Can be overridden on the
828command line with the `--color[=<when>]` option.
Junio C Hamano9ae1a062006-07-10 08:12:34829
Junio C Hamano3f403b02006-12-13 10:14:13830color.diff.<slot>::
Junio C Hamano5a702332007-01-28 20:55:22831Use customized color for diff colorization. `<slot>` specifies
832which part of the patch to use the specified color, and is one
833of `plain` (context text), `meta` (metainformation), `frag`
Junio C Hamano2bd8a742009-12-01 21:16:59834(hunk header), 'func' (function in hunk header), `old` (removed lines),
835`new` (added lines), `commit` (commit headers), or `whitespace`
836(highlighting whitespace errors). The values of these variables may be
837specified as in color.branch.<slot>.
Junio C Hamano9ae1a062006-07-10 08:12:34838
Junio C Hamano7d449522010-07-01 00:08:51839color.decorate.<slot>::
840Use customized color for 'git log --decorate' output. `<slot>` is one
841of `branch`, `remoteBranch`, `tag`, `stash` or `HEAD` for local
Junio C Hamano97bcb482010-11-25 03:16:07842branches, remote-tracking branches, tags, stash and HEAD, respectively.
Junio C Hamano7d449522010-07-01 00:08:51843
Junio C Hamanod257cff2009-03-18 05:27:16844color.grep::
845When set to `always`, always highlight matches. When `false` (or
846`never`), never. When set to `true` or `auto`, use color only
847when the output is written to the terminal. Defaults to `false`.
848
Junio C Hamano0299d922010-03-20 20:59:31849color.grep.<slot>::
850Use customized color for grep colorization. `<slot>` specifies which
851part of the line to use the specified color, and is one of
852+
853--
854`context`;;
855non-matching text in context lines (when using `-A`, `-B`, or `-C`)
856`filename`;;
857filename prefix (when not using `-h`)
858`function`;;
859function name lines (when using `-p`)
860`linenumber`;;
861line number prefix (when using `-n`)
862`match`;;
863matching text
864`selected`;;
865non-matching text in selected lines
866`separator`;;
867separators between fields on a line (`:`, `-`, and `=`)
868and between hunks (`--`)
869--
870+
871The values of these variables may be specified as in color.branch.<slot>.
Junio C Hamanod257cff2009-03-18 05:27:16872
Junio C Hamano00b8b632007-12-07 09:50:49873color.interactive::
Junio C Hamano35738e82008-01-07 07:55:46874When set to `always`, always use colors for interactive prompts
Junio C Hamano58f587a2013-07-22 19:20:59875and displays (such as those used by "git-add --interactive" and
876"git-clean --interactive"). When false (or `never`), never.
877When set to `true` or `auto`, use colors only when the output is
878to the terminal. Defaults to false.
Junio C Hamano00b8b632007-12-07 09:50:49879
880color.interactive.<slot>::
Junio C Hamano58f587a2013-07-22 19:20:59881Use customized color for 'git add --interactive' and 'git clean
882--interactive' output. `<slot>` may be `prompt`, `header`, `help`
883or `error`, for four distinct types of normal output from
884interactive commands. The values of these variables may be
885specified as in color.branch.<slot>.
Junio C Hamano00b8b632007-12-07 09:50:49886
Junio C Hamanoe7935c42006-12-13 21:32:17887color.pager::
888A boolean to enable/disable colored output when the pager is in
889use (default is true).
890
Junio C Hamano52ba2952009-05-18 17:43:02891color.showbranch::
892A boolean to enable/disable color in the output of
893linkgit:git-show-branch[1]. May be set to `always`,
894`false` (or `never`) or `auto` (or `true`), in which case colors are used
895only when the output is to a terminal. Defaults to false.
896
Junio C Hamanoe7935c42006-12-13 21:32:17897color.status::
898A boolean to enable/disable color in the output of
Junio C Hamano35738e82008-01-07 07:55:46899linkgit:git-status[1]. May be set to `always`,
Junio C Hamano0fc8cd92007-12-06 03:26:21900`false` (or `never`) or `auto` (or `true`), in which case colors are used
Junio C Hamanoe7935c42006-12-13 21:32:17901only when the output is to a terminal. Defaults to false.
902
903color.status.<slot>::
904Use customized color for status colorization. `<slot>` is
905one of `header` (the header text of the status message),
Junio C Hamano7d23f5e2006-12-16 07:44:04906`added` or `updated` (files which are added but not committed),
907`changed` (files which are changed but not added in the index),
Junio C Hamano076ffcc2013-02-06 05:13:21908`untracked` (files which are not tracked by Git),
Junio C Hamano0d75e872010-12-17 06:57:26909`branch` (the current branch), or
Junio C Hamanob713ff12008-05-24 01:12:30910`nobranch` (the color the 'no branch' warning is shown in, defaulting
911to red). The values of these variables may be specified as in
912color.branch.<slot>.
Junio C Hamanoe7935c42006-12-13 21:32:17913
Junio C Hamano83d46a22008-02-21 02:29:42914color.ui::
Junio C Hamano5f2627d2011-05-06 20:23:48915This variable determines the default value for variables such
916as `color.diff` and `color.grep` that control the use of color
917per command family. Its scope will expand as more commands learn
918configuration to set a default for the `--color` option. Set it
Junio C Hamanofa1d3492013-06-20 23:39:43919to `false` or `never` if you prefer Git commands not to use
920color unless enabled explicitly with some other configuration
921or the `--color` option. Set it to `always` if you want all
922output not intended for machine consumption to use color, to
923`true` or `auto` (this is the default since Git 1.8.4) if you
924want such output to use color when written to the terminal.
Junio C Hamano83d46a22008-02-21 02:29:42925
Junio C Hamano22700fb2012-05-03 23:07:25926column.ui::
927Specify whether supported commands should output in columns.
928This variable consists of a list of tokens separated by spaces
929or commas:
930+
Junio C Hamanoa1952302013-07-01 21:31:18931These options control when the feature should be enabled
932(defaults to 'never'):
933+
Junio C Hamano22700fb2012-05-03 23:07:25934--
935`always`;;
936always show in columns
937`never`;;
938never show in columns
939`auto`;;
940show in columns if the output is to the terminal
Junio C Hamanoa1952302013-07-01 21:31:18941--
942+
943These options control layout (defaults to 'column'). Setting any
944of these implies 'always' if none of 'always', 'never', or 'auto' are
945specified.
946+
947--
Junio C Hamano22700fb2012-05-03 23:07:25948`column`;;
Junio C Hamanoa1952302013-07-01 21:31:18949fill columns before rows
Junio C Hamano22700fb2012-05-03 23:07:25950`row`;;
951fill rows before columns
952`plain`;;
953show in one column
Junio C Hamanoa1952302013-07-01 21:31:18954--
955+
956Finally, these options can be combined with a layout option (defaults
957to 'nodense'):
958+
959--
Junio C Hamano22700fb2012-05-03 23:07:25960`dense`;;
961make unequal size columns to utilize more space
962`nodense`;;
963make equal size columns
964--
Junio C Hamano22700fb2012-05-03 23:07:25965
966column.branch::
967Specify whether to output branch listing in `git branch` in columns.
968See `column.ui` for details.
969
Junio C Hamano58f587a2013-07-22 19:20:59970column.clean::
971Specify the layout when list items in `git clean -i`, which always
972shows files and directories in columns. See `column.ui` for details.
973
Junio C Hamano22700fb2012-05-03 23:07:25974column.status::
975Specify whether to output untracked files in `git status` in columns.
976See `column.ui` for details.
977
978column.tag::
979Specify whether to output tag listing in `git tag` in columns.
980See `column.ui` for details.
981
Junio C Hamanoce836cc2013-01-21 02:01:53982commit.cleanup::
983This setting overrides the default of the `--cleanup` option in
984`git commit`. See linkgit:git-commit[1] for details. Changing the
985default can be useful when you always want to keep lines that begin
986with comment character `#` in your log message, in which case you
987would do `git config commit.cleanup whitespace` (note that you will
988have to remove the help lines that begin with `#` in the commit log
989template yourself, if you do this).
990
Junio C Hamanod0d892c2010-01-24 20:06:29991commit.status::
Junio C Hamano6ce6b6c2010-01-18 01:25:50992A boolean to enable/disable inclusion of status information in the
993commit message template when using an editor to prepare the commit
994message. Defaults to true.
995
Junio C Hamano4653c6f2008-11-26 22:50:20996commit.template::
997Specify a file to use as the template for new commit messages.
Junio C Hamanob76a6862012-05-02 22:02:46998"`~/`" is expanded to the value of `$HOME` and "`~user/`" to the
Junio C Hamanobf984de2009-11-23 06:11:19999specified user's home directory.
Junio C Hamano4653c6f2008-11-26 22:50:201000
Junio C Hamano0df92712011-12-21 22:30:441001credential.helper::
1002Specify an external helper to be called when a username or
1003password credential is needed; the helper may consult external
1004storage to avoid prompting the user for the credentials. See
1005linkgit:gitcredentials[7] for details.
1006
1007credential.useHttpPath::
1008When acquiring credentials, consider the "path" component of an http
1009or https URL to be important. Defaults to false. See
1010linkgit:gitcredentials[7] for more information.
1011
1012credential.username::
1013If no username is set for a network authentication, use this username
1014by default. See credential.<context>.* below, and
1015linkgit:gitcredentials[7].
1016
1017credential.<url>.*::
1018Any of the credential.* options above can be applied selectively to
1019some credentials. For example "credential.https://example.com.username"
1020would set the default username only for https connections to
1021example.com. See linkgit:gitcredentials[7] for details on how URLs are
1022matched.
1023
Junio C Hamano209ebe82011-04-27 21:09:591024include::diff-config.txt[]
Junio C Hamano3bd66e92009-04-18 06:17:561025
1026difftool.<tool>.path::
1027Override the path for the given tool. This is useful in case
1028your tool is not in the PATH.
1029
1030difftool.<tool>.cmd::
1031Specify the command to invoke the specified diff tool.
1032The specified command is evaluated in shell with the following
1033variables available: 'LOCAL' is set to the name of the temporary
1034file containing the contents of the diff pre-image and 'REMOTE'
1035is set to the name of the temporary file containing the contents
1036of the diff post-image.
1037
1038difftool.prompt::
1039Prompt before each invocation of the diff tool.
1040
Junio C Hamano0d75e872010-12-17 06:57:261041fetch.recurseSubmodules::
Junio C Hamano5cd15182011-04-05 00:21:101042This option can be either set to a boolean value or to 'on-demand'.
1043Setting it to a boolean changes the behavior of fetch and pull to
1044unconditionally recurse into submodules when set to true or to not
1045recurse at all when set to false. When set to 'on-demand' (the default
1046value), fetch and pull will only recurse into a populated submodule
1047when its superproject retrieves a commit that updates the submodule's
1048reference.
Junio C Hamano0d75e872010-12-17 06:57:261049
Junio C Hamano8fb66e52011-10-05 20:59:511050fetch.fsckObjects::
1051If it is set to true, git-fetch-pack will check all fetched
1052objects. It will abort in the case of a malformed object or a
1053broken link. The result of an abort are only dangling objects.
1054Defaults to false. If not set, the value of `transfer.fsckObjects`
1055is used instead.
1056
Junio C Hamano54ea8d32007-01-25 07:59:481057fetch.unpackLimit::
Junio C Hamano076ffcc2013-02-06 05:13:211058If the number of objects fetched over the Git native
Junio C Hamano54ea8d32007-01-25 07:59:481059transfer is below this
1060limit, then the objects will be unpacked into loose object
1061files. However if the number of received objects equals or
1062exceeds this limit then the received pack will be stored as
1063a pack, after adding any missing delta bases. Storing the
1064pack from a push can make the push operation complete faster,
Junio C Hamanoe77b0152008-01-12 06:44:171065especially on slow filesystems. If not set, the value of
1066`transfer.unpackLimit` is used instead.
Junio C Hamano54ea8d32007-01-25 07:59:481067
Junio C Hamano8eac2682013-09-09 22:35:201068fetch.prune::
1069If true, fetch will automatically behave as if the `--prune`
1070option was given on the command line. See also `remote.<name>.prune`.
1071
Junio C Hamanof4581102009-04-25 08:29:591072format.attach::
1073Enable multipart/mixed attachments as the default for
1074'format-patch'. The value can also be a double quoted string
1075which will enable attachments as the default and set the
1076value as the boundary. See the --attach option in
1077linkgit:git-format-patch[1].
1078
Junio C Hamano8c5802d2007-11-15 00:13:361079format.numbered::
Junio C Hamano7d06a8a2008-10-20 05:42:331080A boolean which can enable or disable sequence numbers in patch
1081subjects. It defaults to "auto" which enables it only if there
1082is more than one patch. It can be enabled or disabled for all
1083messages by setting it to "true" or "false". See --numbered
1084option in linkgit:git-format-patch[1].
Junio C Hamano8c5802d2007-11-15 00:13:361085
Junio C Hamano07824ce2006-04-25 07:36:541086format.headers::
1087Additional email headers to include in a patch to be submitted
Junio C Hamano35738e82008-01-07 07:55:461088by mail. See linkgit:git-format-patch[1].
Junio C Hamano07824ce2006-04-25 07:36:541089
Junio C Hamano70664a02010-07-13 22:48:051090format.to::
Junio C Hamanof4581102009-04-25 08:29:591091format.cc::
Junio C Hamano70664a02010-07-13 22:48:051092Additional recipients to include in a patch to be submitted
1093by mail. See the --to and --cc options in
1094linkgit:git-format-patch[1].
Junio C Hamanof4581102009-04-25 08:29:591095
1096format.subjectprefix::
1097The default for format-patch is to output files with the '[PATCH]'
1098subject prefix. Use this variable to change that prefix.
1099
Junio C Hamano89a57342010-06-22 23:22:551100format.signature::
1101The default for format-patch is to output a signature containing
Junio C Hamano076ffcc2013-02-06 05:13:211102the Git version number. Use this variable to change that default.
Junio C Hamano89a57342010-06-22 23:22:551103Set this variable to the empty string ("") to suppress
1104signature generation.
1105
Junio C Hamanod4c8e112007-03-04 10:32:381106format.suffix::
1107The default for format-patch is to output files with the suffix
1108`.patch`. Use this variable to change that suffix (make sure to
1109include the dot if you want it).
1110
Junio C Hamano86bcccc2008-03-08 09:33:551111format.pretty::
1112The default pretty format for log/show/whatchanged command,
1113See linkgit:git-log[1], linkgit:git-show[1],
1114linkgit:git-whatchanged[1].
1115
Junio C Hamanoea6a7642009-03-11 23:56:191116format.thread::
Junio C Hamano1aa40d22010-01-21 17:46:431117The default threading style for 'git format-patch'. Can be
Junio C Hamanob141a922010-01-10 19:55:141118a boolean value, or `shallow` or `deep`. `shallow` threading
1119makes every mail a reply to the head of the series,
Junio C Hamanoea6a7642009-03-11 23:56:191120where the head is chosen from the cover letter, the
Junio C Hamanob76a6862012-05-02 22:02:461121`--in-reply-to`, and the first patch mail, in this order.
Junio C Hamanof4581102009-04-25 08:29:591122`deep` threading makes every mail a reply to the previous one.
Junio C Hamanoea6a7642009-03-11 23:56:191123A true boolean value is the same as `shallow`, and a false
1124value disables threading.
1125
Junio C Hamano5f9a6f02009-04-06 08:26:561126format.signoff::
Junio C Hamano804a9742013-04-28 23:10:311127A boolean value which lets you enable the `-s/--signoff` option of
1128format-patch by default. *Note:* Adding the Signed-off-by: line to a
1129patch should be a conscious act and means that you certify you have
1130the rights to submit this work under the same open source license.
1131Please see the 'SubmittingPatches' document for further discussion.
Junio C Hamano5f9a6f02009-04-06 08:26:561132
Junio C Hamanoea3b7522013-04-18 19:37:531133format.coverLetter::
1134A boolean that controls whether to generate a cover-letter when
1135format-patch is invoked, but in addition can be set to "auto", to
1136generate a cover-letter only when there's more than one patch.
1137
Junio C Hamano209ebe82011-04-27 21:09:591138filter.<driver>.clean::
1139The command which is used to convert the content of a worktree
1140file to a blob upon checkin. See linkgit:gitattributes[5] for
1141details.
1142
1143filter.<driver>.smudge::
1144The command which is used to convert the content of a blob
1145object to a worktree file upon checkout. See
1146linkgit:gitattributes[5] for details.
1147
Junio C Hamanof2ce2972007-05-20 19:12:091148gc.aggressiveWindow::
1149The window size parameter used in the delta compression
Junio C Hamano1aa40d22010-01-21 17:46:431150algorithm used by 'git gc --aggressive'. This defaults
Junio C Hamanob04bb3f2010-04-14 14:07:361151to 250.
Junio C Hamanof2ce2972007-05-20 19:12:091152
Junio C Hamano1b50ce92007-10-03 12:05:531153gc.auto::
1154When there are approximately more than this many loose
1155objects in the repository, `git gc --auto` will pack them.
1156Some Porcelain commands use this command to perform a
Junio C Hamanoe77b0152008-01-12 06:44:171157light-weight garbage collection from time to time. The
1158default value is 6700. Setting this to 0 disables it.
Junio C Hamano1b50ce92007-10-03 12:05:531159
1160gc.autopacklimit::
1161When there are more than this many packs that are not
1162marked with `*.keep` file in the repository, `git gc
Junio C Hamanoe77b0152008-01-12 06:44:171163--auto` consolidates them into one larger pack. The
Junio C Hamano25c0b702008-03-23 09:41:371164default value is 50. Setting this to 0 disables it.
Junio C Hamano1b50ce92007-10-03 12:05:531165
Junio C Hamano9d52e572007-02-13 23:48:201166gc.packrefs::
Junio C Hamanob141a922010-01-10 19:55:141167Running `git pack-refs` in a repository renders it
1168unclonable by Git versions prior to 1.5.1.2 over dumb
1169transports such as HTTP. This variable determines whether
Junio C Hamanocdd1c332010-12-20 10:08:001170'git gc' runs `git pack-refs`. This can be set to `notbare`
Junio C Hamanob141a922010-01-10 19:55:141171to enable it within all non-bare repos or it can be set to a
1172boolean value. The default is `true`.
Junio C Hamano9d52e572007-02-13 23:48:201173
Junio C Hamano09a926d2008-03-13 07:55:291174gc.pruneexpire::
Junio C Hamano1aa40d22010-01-21 17:46:431175When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'.
Junio C Hamanoa3148f52009-01-14 08:49:571176Override the grace period with this config variable. The value
1177"now" may be used to disable this grace period and always prune
1178unreachable objects immediately.
Junio C Hamano09a926d2008-03-13 07:55:291179
Junio C Hamano74640642006-12-27 10:59:551180gc.reflogexpire::
Junio C Hamanocc7636a2010-05-21 14:57:531181gc.<pattern>.reflogexpire::
Junio C Hamano1aa40d22010-01-21 17:46:431182'git reflog expire' removes reflog entries older than
Junio C Hamanocc7636a2010-05-21 14:57:531183this time; defaults to 90 days. With "<pattern>" (e.g.
1184"refs/stash") in the middle the setting applies only to
1185the refs that match the <pattern>.
Junio C Hamano74640642006-12-27 10:59:551186
1187gc.reflogexpireunreachable::
Junio C Hamanocc7636a2010-05-21 14:57:531188gc.<ref>.reflogexpireunreachable::
Junio C Hamano1aa40d22010-01-21 17:46:431189'git reflog expire' removes reflog entries older than
Junio C Hamano74640642006-12-27 10:59:551190this time and are not reachable from the current tip;
Junio C Hamanocc7636a2010-05-21 14:57:531191defaults to 30 days. With "<pattern>" (e.g. "refs/stash")
1192in the middle, the setting applies only to the refs that
1193match the <pattern>.
Junio C Hamano74640642006-12-27 10:59:551194
1195gc.rerereresolved::
1196Records of conflicted merge you resolved earlier are
Junio C Hamano1aa40d22010-01-21 17:46:431197kept for this many days when 'git rerere gc' is run.
Junio C Hamano35738e82008-01-07 07:55:461198The default is 60 days. See linkgit:git-rerere[1].
Junio C Hamano74640642006-12-27 10:59:551199
1200gc.rerereunresolved::
1201Records of conflicted merge you have not resolved are
Junio C Hamano1aa40d22010-01-21 17:46:431202kept for this many days when 'git rerere gc' is run.
Junio C Hamano35738e82008-01-07 07:55:461203The default is 15 days. See linkgit:git-rerere[1].
Junio C Hamano74640642006-12-27 10:59:551204
Junio C Hamanoa3148f52009-01-14 08:49:571205gitcvs.commitmsgannotation::
1206Append this string to each commit message. Set to empty string
1207to disable this feature. Defaults to "via git-CVS emulator".
1208
Junio C Hamano07824ce2006-04-25 07:36:541209gitcvs.enabled::
Junio C Hamanoa6387422007-08-25 03:54:271210Whether the CVS server interface is enabled for this repository.
Junio C Hamano35738e82008-01-07 07:55:461211See linkgit:git-cvsserver[1].
Junio C Hamano07824ce2006-04-25 07:36:541212
1213gitcvs.logfile::
Junio C Hamanoa6387422007-08-25 03:54:271214Path to a log file where the CVS server interface well... logs
Junio C Hamano35738e82008-01-07 07:55:461215various stuff. See linkgit:git-cvsserver[1].
Junio C Hamano07824ce2006-04-25 07:36:541216
Junio C Hamano17bd2272008-09-01 06:11:171217gitcvs.usecrlfattr::
Junio C Hamanobb88cf42010-06-21 15:23:551218If true, the server will look up the end-of-line conversion
1219attributes for files to determine the '-k' modes to use. If
Junio C Hamano076ffcc2013-02-06 05:13:211220the attributes force Git to treat a file as text,
Junio C Hamano619596a2010-08-18 22:15:351221the '-k' mode will be left blank so CVS clients will
Junio C Hamanobb88cf42010-06-21 15:23:551222treat it as text. If they suppress text conversion, the file
Junio C Hamanocb1c44f2008-08-06 06:19:331223will be set with '-kb' mode, which suppresses any newline munging
Junio C Hamanobb88cf42010-06-21 15:23:551224the client might otherwise do. If the attributes do not allow
1225the file type to be determined, then 'gitcvs.allbinary' is
1226used. See linkgit:gitattributes[5].
Junio C Hamanodfccbb02008-05-26 01:16:141227
Junio C Hamanod9e0e5d2007-04-14 16:22:041228gitcvs.allbinary::
Junio C Hamanodfccbb02008-05-26 01:16:141229This is used if 'gitcvs.usecrlfattr' does not resolve
1230the correct '-kb' mode to use. If true, all
1231unresolved files are sent to the client in
1232mode '-kb'. This causes the client to treat them
1233as binary files, which suppresses any newline munging it
1234otherwise might do. Alternatively, if it is set to "guess",
1235then the contents of the file are examined to decide if
1236it is binary, similar to 'core.autocrlf'.
Junio C Hamanoa2ad99e2007-04-18 09:57:041237
1238gitcvs.dbname::
1239Database used by git-cvsserver to cache revision information
Junio C Hamano076ffcc2013-02-06 05:13:211240derived from the Git repository. The exact meaning depends on the
Junio C Hamanoa2ad99e2007-04-18 09:57:041241used database driver, for SQLite (which is the default driver) this
1242is a filename. Supports variable substitution (see
Junio C Hamano35738e82008-01-07 07:55:461243linkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).
Junio C Hamanoa2ad99e2007-04-18 09:57:041244Default: '%Ggitcvs.%m.sqlite'
1245
1246gitcvs.dbdriver::
1247Used Perl DBI driver. You can specify any available driver
Junio C Hamano804a9742013-04-28 23:10:311248for this here, but it might not work. git-cvsserver is tested
Junio C Hamanoa2ad99e2007-04-18 09:57:041249with 'DBD::SQLite', reported to work with 'DBD::Pg', and
1250reported *not* to work with 'DBD::mysql'. Experimental feature.
1251May not contain double colons (`:`). Default: 'SQLite'.
Junio C Hamano35738e82008-01-07 07:55:461252See linkgit:git-cvsserver[1].
Junio C Hamanod9e0e5d2007-04-14 16:22:041253
Junio C Hamanoa2ad99e2007-04-18 09:57:041254gitcvs.dbuser, gitcvs.dbpass::
1255Database user and password. Only useful if setting 'gitcvs.dbdriver',
1256since SQLite has no concept of database users and/or passwords.
1257'gitcvs.dbuser' supports variable substitution (see
Junio C Hamano35738e82008-01-07 07:55:461258linkgit:git-cvsserver[1] for details).
Junio C Hamanoa2ad99e2007-04-18 09:57:041259
Junio C Hamanoa74efce2008-04-02 08:39:081260gitcvs.dbTableNamePrefix::
1261Database table name prefix. Prepended to the names of any
1262database tables used, allowing a single database to be used
1263for several repositories. Supports variable substitution (see
1264linkgit:git-cvsserver[1] for details). Any non-alphabetic
1265characters will be replaced with underscores.
1266
Junio C Hamanodfccbb02008-05-26 01:16:141267All gitcvs variables except for 'gitcvs.usecrlfattr' and
1268'gitcvs.allbinary' can also be specified as
1269'gitcvs.<access_method>.<varname>' (where 'access_method'
Junio C Hamanoa6387422007-08-25 03:54:271270is one of "ext" and "pserver") to make them apply only for the given
1271access method.
Junio C Hamanoa2ad99e2007-04-18 09:57:041272
Junio C Hamano11821ed2011-10-19 18:42:091273gitweb.category::
1274gitweb.description::
1275gitweb.owner::
1276gitweb.url::
1277See linkgit:gitweb[1] for description.
1278
1279gitweb.avatar::
1280gitweb.blame::
1281gitweb.grep::
1282gitweb.highlight::
1283gitweb.patches::
1284gitweb.pickaxe::
1285gitweb.remote_heads::
1286gitweb.showsizes::
1287gitweb.snapshot::
1288See linkgit:gitweb.conf[5] for description.
1289
Junio C Hamanoa03ac862011-04-02 04:32:291290grep.lineNumber::
1291If set to true, enable '-n' option by default.
1292
Junio C Hamanoa00504d2012-08-27 21:11:231293grep.patternType::
1294Set the default matching behavior. Using a value of 'basic', 'extended',
1295'fixed', or 'perl' will enable the '--basic-regexp', '--extended-regexp',
1296'--fixed-strings', or '--perl-regexp' option accordingly, while the
1297value 'default' will return to the default matching behavior.
1298
Junio C Hamanoa03ac862011-04-02 04:32:291299grep.extendedRegexp::
Junio C Hamanoa00504d2012-08-27 21:11:231300If set to true, enable '--extended-regexp' option by default. This
1301option is ignored when the 'grep.patternType' option is set to a value
1302other than 'default'.
Junio C Hamanoa03ac862011-04-02 04:32:291303
Junio C Hamano4fd24422012-01-06 21:52:431304gpg.program::
1305Use this custom program instead of "gpg" found on $PATH when
1306making or verifying a PGP signature. The program must support the
1307same command line interface as GPG, namely, to verify a detached
1308signature, "gpg --verify $file - <$signature" is run, and the
1309program is expected to signal a good signature by exiting with
1310code 0, and to generate an ascii-armored detached signature, the
1311standard input of "gpg -bsau $key" is fed with the contents to be
1312signed, and the program is expected to send the result to its
1313standard output.
1314
Junio C Hamano6d76d612008-05-09 05:46:081315gui.commitmsgwidth::
1316Defines how wide the commit message window is in the
1317linkgit:git-gui[1]. "75" is the default.
1318
1319gui.diffcontext::
1320Specifies how many context lines should be used in calls to diff
1321made by the linkgit:git-gui[1]. The default is "5".
1322
Junio C Hamanod3452a02008-11-15 08:07:551323gui.encoding::
1324Specifies the default encoding to use for displaying of
1325file contents in linkgit:git-gui[1] and linkgit:gitk[1].
1326It can be overridden by setting the 'encoding' attribute
1327for relevant files (see linkgit:gitattributes[5]).
1328If this option is not set, the tools default to the
1329locale encoding.
1330
Junio C Hamano6d76d612008-05-09 05:46:081331gui.matchtrackingbranch::
1332Determines if new branches created with linkgit:git-gui[1] should
1333default to tracking remote branches with matching names or
1334not. Default: "false".
1335
1336gui.newbranchtemplate::
1337Is used as suggested name when creating new branches using the
1338linkgit:git-gui[1].
1339
1340gui.pruneduringfetch::
Junio C Hamano97bcb482010-11-25 03:16:071341"true" if linkgit:git-gui[1] should prune remote-tracking branches when
Junio C Hamano6d76d612008-05-09 05:46:081342performing a fetch. The default value is "false".
1343
1344gui.trustmtime::
1345Determines if linkgit:git-gui[1] should trust the file modification
1346timestamp or not. By default the timestamps are not trusted.
1347
1348gui.spellingdictionary::
1349Specifies the dictionary used for spell checking commit messages in
1350the linkgit:git-gui[1]. When set to "none" spell checking is turned
1351off.
1352
Junio C Hamanod3452a02008-11-15 08:07:551353gui.fastcopyblame::
Junio C Hamano1aa40d22010-01-21 17:46:431354If true, 'git gui blame' uses `-C` instead of `-C -C` for original
Junio C Hamanod3452a02008-11-15 08:07:551355location detection. It makes blame significantly faster on huge
1356repositories at the expense of less thorough copy detection.
1357
1358gui.copyblamethreshold::
Junio C Hamano610d1762008-11-28 06:27:131359Specifies the threshold to use in 'git gui blame' original location
Junio C Hamanod3452a02008-11-15 08:07:551360detection, measured in alphanumeric characters. See the
1361linkgit:git-blame[1] manual for more information on copy detection.
1362
1363gui.blamehistoryctx::
1364Specifies the radius of history context in days to show in
1365linkgit:gitk[1] for the selected commit, when the `Show History
1366Context` menu item is invoked from 'git gui blame'. If this
1367variable is set to zero, the whole history is shown.
1368
Junio C Hamano92d312a2008-12-15 07:22:201369guitool.<name>.cmd::
1370Specifies the shell command line to execute when the corresponding item
1371of the linkgit:git-gui[1] `Tools` menu is invoked. This option is
1372mandatory for every tool. The command is executed from the root of
1373the working directory, and in the environment it receives the name of
1374the tool as 'GIT_GUITOOL', the name of the currently selected file as
1375'FILENAME', and the name of the current branch as 'CUR_BRANCH' (if
1376the head is detached, 'CUR_BRANCH' is empty).
1377
1378guitool.<name>.needsfile::
1379Run the tool only if a diff is selected in the GUI. It guarantees
1380that 'FILENAME' is not empty.
1381
1382guitool.<name>.noconsole::
1383Run the command silently, without creating a window to display its
1384output.
1385
1386guitool.<name>.norescan::
1387Don't rescan the working directory for changes after the tool
1388finishes execution.
1389
1390guitool.<name>.confirm::
1391Show a confirmation dialog before actually running the tool.
1392
1393guitool.<name>.argprompt::
1394Request a string argument from the user, and pass it to the tool
1395through the 'ARGS' environment variable. Since requesting an
1396argument implies confirmation, the 'confirm' option has no effect
1397if this is enabled. If the option is set to 'true', 'yes', or '1',
1398the dialog uses a built-in generic prompt; otherwise the exact
1399value of the variable is used.
1400
1401guitool.<name>.revprompt::
1402Request a single valid revision from the user, and set the
1403'REVISION' environment variable. In other aspects this option
1404is similar to 'argprompt', and can be used together with it.
1405
1406guitool.<name>.revunmerged::
1407Show only unmerged branches in the 'revprompt' subdialog.
1408This is useful for tools similar to merge or rebase, but not
1409for things like checkout or reset.
1410
1411guitool.<name>.title::
1412Specifies the title to use for the prompt dialog. The default
1413is the tool name.
1414
1415guitool.<name>.prompt::
1416Specifies the general prompt string to display at the top of
1417the dialog, before subsections for 'argprompt' and 'revprompt'.
1418The default value includes the actual command.
1419
Junio C Hamano4e272312008-01-08 09:13:211420help.browser::
1421Specify the browser that will be used to display help in the
1422'web' format. See linkgit:git-help[1].
1423
1424help.format::
1425Override the default help format used by linkgit:git-help[1].
1426Values 'man', 'info', 'web' and 'html' are supported. 'man' is
1427the default. 'web' and 'html' are the same.
1428
Junio C Hamanof24b8062008-09-09 01:34:391429help.autocorrect::
1430Automatically correct and execute mistyped commands after
1431waiting for the given number of deciseconds (0.1 sec). If more
1432than one command can be deduced from the entered text, nothing
1433will be executed. If the value of this option is negative,
1434the corrected command will be executed immediately. If the
1435value is 0 - the command will be just shown but not executed.
1436This is the default.
1437
Junio C Hamano5dd5fae2013-01-18 21:06:491438help.htmlpath::
1439Specify the path where the HTML documentation resides. File system paths
1440and URLs are supported. HTML pages will be prefixed with this path when
1441help is displayed in the 'web' format. This defaults to the documentation
1442path of your Git installation.
1443
Junio C Hamano58256872007-12-04 08:31:131444http.proxy::
Junio C Hamano3dd93922012-03-05 07:49:111445Override the HTTP proxy, normally configured using the 'http_proxy',
1446'https_proxy', and 'all_proxy' environment variables (see
1447`curl(1)`). This can be overridden on a per-remote basis; see
1448remote.<name>.proxy
Junio C Hamano58256872007-12-04 08:31:131449
Junio C Hamano4c4b0122011-06-30 01:19:321450http.cookiefile::
1451File containing previously stored cookie lines which should be used
Junio C Hamano076ffcc2013-02-06 05:13:211452in the Git http session, if they match the server. The file format
Junio C Hamano4c4b0122011-06-30 01:19:321453of the file to read cookies from should be plain HTTP headers or
1454the Netscape/Mozilla cookie file format (see linkgit:curl[1]).
1455NOTE that the file specified with http.cookiefile is only used as
Junio C Hamano8eac2682013-09-09 22:35:201456input unless http.saveCookies is set.
1457
1458http.savecookies::
1459If set, store cookies received during requests to the file specified by
1460http.cookiefile. Has no effect if http.cookiefile is unset.
Junio C Hamano4c4b0122011-06-30 01:19:321461
Junio C Hamano07824ce2006-04-25 07:36:541462http.sslVerify::
1463Whether to verify the SSL certificate when fetching or pushing
Junio C Hamano33db4372006-06-07 19:51:451464over HTTPS. Can be overridden by the 'GIT_SSL_NO_VERIFY' environment
Junio C Hamano07824ce2006-04-25 07:36:541465variable.
1466
1467http.sslCert::
1468File containing the SSL certificate when fetching or pushing
Junio C Hamano33db4372006-06-07 19:51:451469over HTTPS. Can be overridden by the 'GIT_SSL_CERT' environment
Junio C Hamano07824ce2006-04-25 07:36:541470variable.
1471
1472http.sslKey::
1473File containing the SSL private key when fetching or pushing
Junio C Hamano341071d2006-06-04 07:24:481474over HTTPS. Can be overridden by the 'GIT_SSL_KEY' environment
Junio C Hamano07824ce2006-04-25 07:36:541475variable.
1476
Junio C Hamano48bc1ce2009-07-09 16:49:191477http.sslCertPasswordProtected::
Junio C Hamano076ffcc2013-02-06 05:13:211478Enable Git's password prompt for the SSL certificate. Otherwise
Junio C Hamano48bc1ce2009-07-09 16:49:191479OpenSSL will prompt the user, possibly many times, if the
1480certificate or private key is encrypted. Can be overridden by the
1481'GIT_SSL_CERT_PASSWORD_PROTECTED' environment variable.
1482
Junio C Hamano07824ce2006-04-25 07:36:541483http.sslCAInfo::
1484File containing the certificates to verify the peer with when
Junio C Hamano341071d2006-06-04 07:24:481485fetching or pushing over HTTPS. Can be overridden by the
Junio C Hamano07824ce2006-04-25 07:36:541486'GIT_SSL_CAINFO' environment variable.
1487
1488http.sslCAPath::
1489Path containing files with the CA certificates to verify the peer
Junio C Hamano33db4372006-06-07 19:51:451490with when fetching or pushing over HTTPS. Can be overridden
Junio C Hamano07824ce2006-04-25 07:36:541491by the 'GIT_SSL_CAPATH' environment variable.
1492
Junio C Hamano76927822013-04-19 21:26:571493http.sslTry::
1494Attempt to use AUTH SSL/TLS and encrypted data transfers
1495when connecting via regular FTP protocol. This might be needed
1496if the FTP server requires it for security reasons or you wish
1497to connect securely whenever remote FTP server supports it.
1498Default is false since it might trigger certificate verification
1499errors on misconfigured servers.
1500
Junio C Hamano07824ce2006-04-25 07:36:541501http.maxRequests::
Junio C Hamano341071d2006-06-04 07:24:481502How many HTTP requests to launch in parallel. Can be overridden
Junio C Hamano07824ce2006-04-25 07:36:541503by the 'GIT_HTTP_MAX_REQUESTS' environment variable. Default is 5.
1504
Junio C Hamanob141a922010-01-10 19:55:141505http.minSessions::
1506The number of curl sessions (counted across slots) to be kept across
1507requests. They will not be ended with curl_easy_cleanup() until
1508http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this
1509value will be capped at 1. Defaults to 1.
1510
Junio C Hamano3b70d3c2009-11-21 17:37:371511http.postBuffer::
1512Maximum size in bytes of the buffer used by smart HTTP
1513transports when POSTing data to the remote system.
1514For requests larger than this buffer size, HTTP/1.1 and
1515Transfer-Encoding: chunked is used to avoid creating a
1516massive pack file locally. Default is 1 MiB, which is
1517sufficient for most requests.
1518
Junio C Hamano07824ce2006-04-25 07:36:541519http.lowSpeedLimit, http.lowSpeedTime::
1520If the HTTP transfer speed is less than 'http.lowSpeedLimit'
1521for longer than 'http.lowSpeedTime' seconds, the transfer is aborted.
Junio C Hamano341071d2006-06-04 07:24:481522Can be overridden by the 'GIT_HTTP_LOW_SPEED_LIMIT' and
Junio C Hamano07824ce2006-04-25 07:36:541523'GIT_HTTP_LOW_SPEED_TIME' environment variables.
1524
Junio C Hamanof1dcdfe2006-09-29 08:10:511525http.noEPSV::
1526A boolean which disables using of EPSV ftp command by curl.
Junio C Hamanod9e0e5d2007-04-14 16:22:041527This can helpful with some "poor" ftp servers which don't
Junio C Hamanof1dcdfe2006-09-29 08:10:511528support EPSV mode. Can be overridden by the 'GIT_CURL_FTP_NO_EPSV'
1529environment variable. Default is false (curl will use EPSV).
1530
Junio C Hamano53ba6d02010-08-22 07:25:121531http.useragent::
1532The HTTP USER_AGENT string presented to an HTTP server. The default
Junio C Hamano076ffcc2013-02-06 05:13:211533value represents the version of the client Git such as git/1.7.1.
Junio C Hamano53ba6d02010-08-22 07:25:121534This option allows you to override this value to a more common value
1535such as Mozilla/4.0. This may be necessary, for instance, if
1536connecting through a firewall that restricts HTTP connections to a set
1537of common USER_AGENT strings (but not including those like git/1.7.1).
1538Can be overridden by the 'GIT_HTTP_USER_AGENT' environment variable.
1539
Junio C Hamano8eac2682013-09-09 22:35:201540http.<url>.*::
1541Any of the http.* options above can be applied selectively to some urls.
1542For a config key to match a URL, each element of the config key is
1543compared to that of the URL, in the following order:
1544+
1545--
1546. Scheme (e.g., `https` in `https://example.com/`). This field
1547 must match exactly between the config key and the URL.
1548
1549. Host/domain name (e.g., `example.com` in `https://example.com/`).
1550 This field must match exactly between the config key and the URL.
1551
1552. Port number (e.g., `8080` in `http://example.com:8080/`).
1553 This field must match exactly between the config key and the URL.
1554 Omitted port numbers are automatically converted to the correct
1555 default for the scheme before matching.
1556
1557. Path (e.g., `repo.git` in `https://example.com/repo.git`). The
1558 path field of the config key must match the path field of the URL
1559 either exactly or as a prefix of slash-delimited path elements. This means
1560 a config key with path `foo/` matches URL path `foo/bar`. A prefix can only
1561 match on a slash (`/`) boundary. Longer matches take precedence (so a config
1562 key with path `foo/bar` is a better match to URL path `foo/bar` than a config
1563 key with just path `foo/`).
1564
1565. User name (e.g., `user` in `https://user@example.com/repo.git`). If
1566 the config key has a user name it must match the user name in the
1567 URL exactly. If the config key does not have a user name, that
1568 config key will match a URL with any user name (including none),
1569 but at a lower precedence than a config key with a user name.
1570--
1571+
1572The list above is ordered by decreasing precedence; a URL that matches
1573a config key's path is preferred to one that matches its user name. For example,
1574if the URL is `https://user@example.com/foo/bar` a config key match of
1575`https://example.com/foo` will be preferred over a config key match of
1576`https://user@example.com`.
1577+
1578All URLs are normalized before attempting any matching (the password part,
1579if embedded in the URL, is always ignored for matching purposes) so that
1580equivalent urls that are simply spelled differently will match properly.
1581Environment variable settings always override any matches. The urls that are
1582matched against are those given directly to Git commands. This means any URLs
1583visited as a result of a redirection do not participate in matching.
1584
Junio C Hamano07824ce2006-04-25 07:36:541585i18n.commitEncoding::
Junio C Hamano076ffcc2013-02-06 05:13:211586Character encoding the commit messages are stored in; Git itself
Junio C Hamano07824ce2006-04-25 07:36:541587does not care per se, but this information is necessary e.g. when
1588importing commits from emails or in the gitk graphical history
1589browser (and possibly at other places in the future or in other
Junio C Hamano35738e82008-01-07 07:55:461590porcelains). See e.g. linkgit:git-mailinfo[1]. Defaults to 'utf-8'.
Junio C Hamano07824ce2006-04-25 07:36:541591
Junio C Hamano51f92e22006-12-29 05:18:281592i18n.logOutputEncoding::
1593Character encoding the commit messages are converted to when
Junio C Hamano1aa40d22010-01-21 17:46:431594running 'git log' and friends.
Junio C Hamano51f92e22006-12-29 05:18:281595
Junio C Hamano4653c6f2008-11-26 22:50:201596imap::
1597The configuration variables in the 'imap' section are described
1598in linkgit:git-imap-send[1].
1599
Junio C Hamanocaa712a2010-03-11 01:17:351600init.templatedir::
1601Specify the directory from which templates will be copied.
1602(See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)
1603
Junio C Hamano4e272312008-01-08 09:13:211604instaweb.browser::
1605Specify the program that will be used to browse your working
1606repository in gitweb. See linkgit:git-instaweb[1].
1607
1608instaweb.httpd::
1609The HTTP daemon command-line to start gitweb on your working
1610repository. See linkgit:git-instaweb[1].
1611
1612instaweb.local::
1613If true the web server started by linkgit:git-instaweb[1] will
1614be bound to the local IP (127.0.0.1).
1615
1616instaweb.modulepath::
Junio C Hamano619596a2010-08-18 22:15:351617The default module path for linkgit:git-instaweb[1] to use
1618instead of /usr/lib/apache2/modules. Only used if httpd
1619is Apache.
Junio C Hamano4e272312008-01-08 09:13:211620
1621instaweb.port::
1622The port number to bind the gitweb httpd to. See
1623linkgit:git-instaweb[1].
1624
Junio C Hamanoe5bf6c12009-02-07 21:43:101625interactive.singlekey::
Junio C Hamano27a128b2009-08-13 01:23:001626In interactive commands, allow the user to provide one-letter
Junio C Hamanoe5bf6c12009-02-07 21:43:101627input with a single key (i.e., without hitting enter).
Junio C Hamanob76a6862012-05-02 22:02:461628Currently this is used by the `--patch` mode of
Junio C Hamano3d050d62011-05-17 06:43:341629linkgit:git-add[1], linkgit:git-checkout[1], linkgit:git-commit[1],
1630linkgit:git-reset[1], and linkgit:git-stash[1]. Note that this
1631setting is silently ignored if portable keystroke input
1632is not available.
Junio C Hamanoe5bf6c12009-02-07 21:43:101633
Junio C Hamanof93530e2011-05-25 23:59:591634log.abbrevCommit::
1635If true, makes linkgit:git-log[1], linkgit:git-show[1], and
Junio C Hamanob76a6862012-05-02 22:02:461636linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may
1637override this option with `--no-abbrev-commit`.
Junio C Hamanof93530e2011-05-25 23:59:591638
Junio C Hamanob713ff12008-05-24 01:12:301639log.date::
Junio C Hamano2db3e752010-09-03 21:33:061640Set the default date-time mode for the 'log' command.
1641Setting a value for log.date is similar to using 'git log''s
Junio C Hamanob76a6862012-05-02 22:02:461642`--date` option. Possible values are `relative`, `local`,
Junio C Hamano2db3e752010-09-03 21:33:061643`default`, `iso`, `rfc`, and `short`; see linkgit:git-log[1]
1644for details.
Junio C Hamanob713ff12008-05-24 01:12:301645
Junio C Hamanocb39aea2010-05-09 07:24:481646log.decorate::
1647Print out the ref names of any commits that are shown by the log
1648command. If 'short' is specified, the ref name prefixes 'refs/heads/',
1649'refs/tags/' and 'refs/remotes/' will not be printed. If 'full' is
1650specified, the full ref name (including prefix) will be printed.
1651This is the same as the log commands '--decorate' option.
1652
Junio C Hamanofe9acab2006-11-24 12:10:551653log.showroot::
1654If true, the initial commit will be shown as a big creation event.
1655This is equivalent to a diff against an empty tree.
Junio C Hamano35738e82008-01-07 07:55:461656Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
Junio C Hamanofe9acab2006-11-24 12:10:551657normally hide the root commit will now show it. True by default.
1658
Junio C Hamanoce836cc2013-01-21 02:01:531659log.mailmap::
1660If true, makes linkgit:git-log[1], linkgit:git-show[1], and
1661linkgit:git-whatchanged[1] assume `--use-mailmap`.
1662
Junio C Hamano8bc410e2009-02-15 10:38:191663mailmap.file::
1664The location of an augmenting mailmap file. The default
1665mailmap, located in the root of the repository, is loaded
1666first, then the mailmap file pointed to by this variable.
1667The location of the mailmap file may be in a repository
1668subdirectory, or somewhere outside of the repository itself.
1669See linkgit:git-shortlog[1] and linkgit:git-blame[1].
1670
Junio C Hamanoabad6da2013-01-06 09:06:321671mailmap.blob::
1672Like `mailmap.file`, but consider the value as a reference to a
1673blob in the repository. If both `mailmap.file` and
1674`mailmap.blob` are given, both are parsed, with entries from
1675`mailmap.file` taking precedence. In a bare repository, this
1676defaults to `HEAD:.mailmap`. In a non-bare repository, it
1677defaults to empty.
1678
Junio C Hamano8b588d52008-03-15 09:48:371679man.viewer::
1680Specify the programs that may be used to display help in the
1681'man' format. See linkgit:git-help[1].
1682
Junio C Hamano6d76d612008-05-09 05:46:081683man.<tool>.cmd::
1684Specify the command to invoke the specified man viewer. The
1685specified command is evaluated in shell with the man page
1686passed as argument. (See linkgit:git-help[1].)
Junio C Hamano103ad7f2007-03-14 11:19:261687
Junio C Hamano6d76d612008-05-09 05:46:081688man.<tool>.path::
1689Override the path for the given tool that may be used to
1690display help in the 'man' format. See linkgit:git-help[1].
Junio C Hamanoe90436a2007-04-22 07:22:131691
Junio C Hamano4653c6f2008-11-26 22:50:201692include::merge-config.txt[]
Junio C Hamanoa476efa2008-10-10 15:31:421693
Junio C Hamano1fbbbc12007-12-18 07:01:271694mergetool.<tool>.path::
1695Override the path for the given tool. This is useful in case
1696your tool is not in the PATH.
1697
Junio C Hamano86bcccc2008-03-08 09:33:551698mergetool.<tool>.cmd::
1699Specify the command to invoke the specified merge tool. The
1700specified command is evaluated in shell with the following
1701variables available: 'BASE' is the name of a temporary file
1702containing the common base of the files to be merged, if available;
1703'LOCAL' is the name of a temporary file containing the contents of
1704the file on the current branch; 'REMOTE' is the name of a temporary
1705file containing the contents of the file from the branch being
1706merged; 'MERGED' contains the name of the file to which the merge
1707tool should write the results of a successful merge.
1708
1709mergetool.<tool>.trustExitCode::
1710For a custom merge command, specify whether the exit code of
1711the merge command can be used to determine whether the merge was
1712successful. If this is not set to true then the merge target file
1713timestamp is checked and the merge assumed to have been successful
1714if the file has been updated, otherwise the user is prompted to
1715indicate the success of the merge.
1716
1717mergetool.keepBackup::
1718After performing a merge, the original file with conflict markers
1719can be saved as a file with a `.orig` extension. If this variable
1720is set to `false` then this file is not preserved. Defaults to
1721`true` (i.e. keep the backup files).
1722
Junio C Hamano10b7a342009-01-01 22:05:171723mergetool.keepTemporaries::
Junio C Hamano076ffcc2013-02-06 05:13:211724When invoking a custom merge tool, Git uses a set of temporary
Junio C Hamano10b7a342009-01-01 22:05:171725files to pass to the tool. If the tool returns an error and this
1726variable is set to `true`, then these temporary files will be
1727preserved, otherwise they will be removed after the tool has
1728exited. Defaults to `false`.
1729
1730mergetool.prompt::
1731Prompt before each invocation of the merge resolution program.
1732
Junio C Hamano31667362010-03-25 00:38:531733notes.displayRef::
1734The (fully qualified) refname from which to show notes when
1735showing commit messages. The value of this variable can be set
1736to a glob, in which case notes from all matching refs will be
1737shown. You may also specify this configuration variable
1738several times. A warning will be issued for refs that do not
1739exist, but a glob that does not match any refs is silently
1740ignored.
1741+
1742This setting can be overridden with the `GIT_NOTES_DISPLAY_REF`
1743environment variable, which must be a colon separated list of refs or
1744globs.
1745+
1746The effective value of "core.notesRef" (possibly overridden by
1747GIT_NOTES_REF) is also implicitly added to the list of refs to be
1748displayed.
1749
1750notes.rewrite.<command>::
1751When rewriting commits with <command> (currently `amend` or
Junio C Hamano076ffcc2013-02-06 05:13:211752`rebase`) and this variable is set to `true`, Git
Junio C Hamano31667362010-03-25 00:38:531753automatically copies your notes from the original to the
1754rewritten commit. Defaults to `true`, but see
1755"notes.rewriteRef" below.
Junio C Hamano31667362010-03-25 00:38:531756
1757notes.rewriteMode::
1758When copying notes during a rewrite (see the
1759"notes.rewrite.<command>" option), determines what to do if
1760the target commit already has a note. Must be one of
1761`overwrite`, `concatenate`, or `ignore`. Defaults to
1762`concatenate`.
1763+
1764This setting can be overridden with the `GIT_NOTES_REWRITE_MODE`
1765environment variable.
1766
1767notes.rewriteRef::
1768When copying notes during a rewrite, specifies the (fully
1769qualified) ref whose notes should be copied. The ref may be a
1770glob, in which case notes in all matching refs will be copied.
1771You may also specify this configuration several times.
1772+
1773Does not have a default value; you must configure this variable to
Junio C Hamano8fb66e52011-10-05 20:59:511774enable note rewriting. Set it to `refs/notes/commits` to enable
1775rewriting for the default commit notes.
Junio C Hamano2b3ee5d2010-05-08 05:41:181776+
1777This setting can be overridden with the `GIT_NOTES_REWRITE_REF`
1778environment variable, which must be a colon separated list of refs or
1779globs.
Junio C Hamano31667362010-03-25 00:38:531780
Junio C Hamano75cc4c92006-07-24 08:25:031781pack.window::
Junio C Hamano35738e82008-01-07 07:55:461782The size of the window used by linkgit:git-pack-objects[1] when no
Junio C Hamano75cc4c92006-07-24 08:25:031783window size is given on the command line. Defaults to 10.
1784
Junio C Hamano91d44c52007-05-09 07:16:071785pack.depth::
Junio C Hamano35738e82008-01-07 07:55:461786The maximum delta depth used by linkgit:git-pack-objects[1] when no
Junio C Hamano91d44c52007-05-09 07:16:071787maximum depth is given on the command line. Defaults to 50.
1788
Junio C Hamano235d53f2007-07-13 00:25:151789pack.windowMemory::
Junio C Hamano35738e82008-01-07 07:55:461790The window memory size limit used by linkgit:git-pack-objects[1]
Junio C Hamano235d53f2007-07-13 00:25:151791when no limit is given on the command line. The value can be
1792suffixed with "k", "m", or "g". Defaults to 0, meaning no
1793limit.
1794
Junio C Hamanof2ce2972007-05-20 19:12:091795pack.compression::
1796An integer -1..9, indicating the compression level for objects
1797in a pack file. -1 is the zlib default. 0 means no
1798compression, and 1..9 are various speed/size tradeoffs, 9 being
1799slowest. If not set, defaults to core.compression. If that is
Junio C Hamano2e72a942007-11-21 08:54:421800not set, defaults to -1, the zlib default, which is "a default
1801compromise between speed and compression (currently equivalent
1802to level 6)."
Junio C Hamano657fd8a2010-10-07 00:01:241803+
1804Note that changing the compression level will not automatically recompress
1805all existing objects. You can force recompression by passing the -F option
1806to linkgit:git-repack[1].
Junio C Hamanof2ce2972007-05-20 19:12:091807
Junio C Hamano679d22d2007-06-02 21:13:441808pack.deltaCacheSize::
Junio C Hamanoa6387422007-08-25 03:54:271809The maximum memory in bytes used for caching deltas in
Junio C Hamano9f883862009-08-11 06:23:521810linkgit:git-pack-objects[1] before writing them out to a pack.
1811This cache is used to speed up the writing object phase by not
1812having to recompute the final delta result once the best match
1813for all objects is found. Repacking large repositories on machines
1814which are tight with memory might be badly impacted by this though,
1815especially if this cache pushes the system into swapping.
1816A value of 0 means no limit. The smallest size of 1 byte may be
1817used to virtually disable this cache. Defaults to 256 MiB.
Junio C Hamano679d22d2007-06-02 21:13:441818
1819pack.deltaCacheLimit::
Junio C Hamano58155b42007-09-15 07:46:141820The maximum size of a delta, that is cached in
Junio C Hamano9f883862009-08-11 06:23:521821linkgit:git-pack-objects[1]. This cache is used to speed up the
1822writing object phase by not having to recompute the final delta
1823result once the best match for all objects is found. Defaults to 1000.
Junio C Hamano679d22d2007-06-02 21:13:441824
Junio C Hamano58155b42007-09-15 07:46:141825pack.threads::
1826Specifies the number of threads to spawn when searching for best
Junio C Hamano35738e82008-01-07 07:55:461827delta matches. This requires that linkgit:git-pack-objects[1]
Junio C Hamano58155b42007-09-15 07:46:141828be compiled with pthreads otherwise this option is ignored with a
1829warning. This is meant to reduce packing time on multiprocessor
1830machines. The required amount of memory for the delta search window
1831is however multiplied by the number of threads.
Junio C Hamano076ffcc2013-02-06 05:13:211832Specifying 0 will cause Git to auto-detect the number of CPU's
Junio C Hamano24bc09a2008-02-28 00:27:441833and set the number of threads accordingly.
Junio C Hamano58155b42007-09-15 07:46:141834
Junio C Hamanod814b6d2007-11-04 11:13:491835pack.indexVersion::
1836Specify the default pack index version. Valid values are 1 for
1837legacy pack index used by Git versions prior to 1.5.2, and 2 for
1838the new pack index with capabilities for packs larger than 4 GB
1839as well as proper protection against the repacking of corrupted
Junio C Hamanofce7c7e2008-07-02 03:06:381840packs. Version 2 is the default. Note that version 2 is enforced
1841and this config option ignored whenever the corresponding pack is
1842larger than 2 GB.
1843+
Junio C Hamano076ffcc2013-02-06 05:13:211844If you have an old Git that does not understand the version 2 `*.idx` file,
Junio C Hamanofce7c7e2008-07-02 03:06:381845cloning or fetching over a non native protocol (e.g. "http" and "rsync")
Junio C Hamanob76a6862012-05-02 22:02:461846that will copy both `*.pack` file and corresponding `*.idx` file from the
Junio C Hamanofce7c7e2008-07-02 03:06:381847other side may give you a repository that cannot be accessed with your
Junio C Hamano076ffcc2013-02-06 05:13:211848older version of Git. If the `*.pack` file is smaller than 2 GB, however,
Junio C Hamanofce7c7e2008-07-02 03:06:381849you can use linkgit:git-index-pack[1] on the *.pack file to regenerate
Junio C Hamanob76a6862012-05-02 22:02:461850the `*.idx` file.
Junio C Hamanod814b6d2007-11-04 11:13:491851
Junio C Hamano09a926d2008-03-13 07:55:291852pack.packSizeLimit::
Junio C Hamano4d979582010-02-04 06:27:291853The maximum size of a pack. This setting only affects
1854packing to a file when repacking, i.e. the git:// protocol
Junio C Hamanob76a6862012-05-02 22:02:461855is unaffected. It can be overridden by the `--max-pack-size`
Junio C Hamano4d979582010-02-04 06:27:291856option of linkgit:git-repack[1]. The minimum size allowed is
1857limited to 1 MiB. The default is unlimited.
1858Common unit suffixes of 'k', 'm', or 'g' are
1859supported.
Junio C Hamano49dccaf2008-02-10 10:48:011860
Junio C Hamano9e96a1a2008-08-16 10:23:181861pager.<cmd>::
Junio C Hamano788eeba2010-12-08 22:50:431862If the value is boolean, turns on or off pagination of the
Junio C Hamano076ffcc2013-02-06 05:13:211863output of a particular Git subcommand when writing to a tty.
Junio C Hamano788eeba2010-12-08 22:50:431864Otherwise, turns on pagination for the subcommand using the
Junio C Hamanob76a6862012-05-02 22:02:461865pager specified by the value of `pager.<cmd>`. If `--paginate`
1866or `--no-pager` is specified on the command line, it takes
Junio C Hamano788eeba2010-12-08 22:50:431867precedence over this option. To disable pagination for all
1868commands, set `core.pager` or `GIT_PAGER` to `cat`.
Junio C Hamano9e96a1a2008-08-16 10:23:181869
Junio C Hamanoa574a092010-06-13 19:57:101870pretty.<name>::
1871Alias for a --pretty= format string, as specified in
1872linkgit:git-log[1]. Any aliases defined here can be used just
1873as the built-in pretty formats could. For example,
Junio C Hamanob76a6862012-05-02 22:02:461874running `git config pretty.changelog "format:* %H %s"`
Junio C Hamanoa574a092010-06-13 19:57:101875would cause the invocation `git log --pretty=changelog`
Junio C Hamanob76a6862012-05-02 22:02:461876to be equivalent to running `git log "--pretty=format:* %H %s"`.
Junio C Hamanoa574a092010-06-13 19:57:101877Note that an alias with the same name as a built-in format
1878will be silently ignored.
1879
Junio C Hamano515ab1d2011-12-09 23:41:201880pull.rebase::
1881When true, rebase branches on top of the fetched branch, instead
1882of merging the default branch from the default remote when "git
1883pull" is run. See "branch.<name>.rebase" for setting this on a
1884per-branch basis.
1885+
Junio C Hamanocf4a1742013-09-11 22:57:501886When preserve, also pass `--preserve-merges` along to 'git rebase'
1887so that locally committed merge commits will not be flattened
1888by running 'git pull'.
1889+
Junio C Hamano515ab1d2011-12-09 23:41:201890*NOTE*: this is a possibly dangerous operation; do *not* use
1891it unless you understand the implications (see linkgit:git-rebase[1]
1892for details).
1893
Junio C Hamano07824ce2006-04-25 07:36:541894pull.octopus::
1895The default merge strategy to use when pulling multiple branches
1896at once.
1897
1898pull.twohead::
1899The default merge strategy to use when pulling a single branch.
1900
Junio C Hamano1de75722009-03-26 08:39:381901push.default::
Junio C Hamano58655592013-07-11 20:52:331902Defines the action `git push` should take if no refspec is
1903explicitly given. Different values are well-suited for
1904specific workflows; for instance, in a purely central workflow
1905(i.e. the fetch source is equal to the push destination),
1906`upstream` is probably what you want. Possible values are:
Junio C Hamano1de75722009-03-26 08:39:381907+
Junio C Hamanobcaa8bc2012-07-03 22:17:201908--
Junio C Hamano58655592013-07-11 20:52:331909
1910* `nothing` - do not push anything (error out) unless a refspec is
1911 explicitly given. This is primarily meant for people who want to
1912 avoid mistakes by always being explicit.
1913
1914* `current` - push the current branch to update a branch with the same
1915 name on the receiving end. Works in both central and non-central
1916 workflows.
1917
1918* `upstream` - push the current branch back to the branch whose
1919 changes are usually integrated into the current branch (which is
1920 called `@{upstream}`). This mode only makes sense if you are
1921 pushing to the same repository you would normally pull from
1922 (i.e. central workflow).
1923
1924* `simple` - in centralized workflow, work like `upstream` with an
1925 added safety to refuse to push if the upstream branch's name is
1926 different from the local one.
Junio C Hamanobcaa8bc2012-07-03 22:17:201927+
Junio C Hamano58655592013-07-11 20:52:331928When pushing to a remote that is different from the remote you normally
1929pull from, work as `current`. This is the safest option and is suited
1930for beginners.
1931+
1932This mode will become the default in Git 2.0.
1933
1934* `matching` - push all branches having the same name on both ends.
1935 This makes the repository you are pushing to remember the set of
1936 branches that will be pushed out (e.g. if you always push 'maint'
1937 and 'master' there and no other branches, the repository you push
1938 to will have these two branches, and your local 'maint' and
1939 'master' will be pushed there).
1940+
1941To use this mode effectively, you have to make sure _all_ the
1942branches you would push out are ready to be pushed out before
1943running 'git push', as the whole point of this mode is to allow you
1944to push all of the branches in one go. If you usually finish work
1945on only one branch and push out the result, while other branches are
1946unfinished, this mode is not for you. Also this mode is not
1947suitable for pushing into a shared central repository, as other
1948people may add new branches there, or update the tip of existing
1949branches outside your control.
1950+
1951This is currently the default, but Git 2.0 will change the default
1952to `simple`.
1953
1954--
Junio C Hamano1de75722009-03-26 08:39:381955
Junio C Hamanoea6a7642009-03-11 23:56:191956rebase.stat::
1957Whether to show a diffstat of what changed upstream since the last
1958rebase. False by default.
1959
Junio C Hamano075ae872010-09-01 18:43:071960rebase.autosquash::
1961If set to true enable '--autosquash' option by default.
1962
Junio C Hamanof1f5a7b2013-06-11 22:23:521963rebase.autostash::
1964When set to true, automatically create a temporary stash
1965before the operation begins, and apply it after the operation
1966ends. This means that you can run rebase on a dirty worktree.
1967However, use with care: the final stash application after a
1968successful rebase might result in non-trivial conflicts.
1969Defaults to false.
1970
Junio C Hamano621e1232009-10-26 05:16:471971receive.autogc::
1972By default, git-receive-pack will run "git-gc --auto" after
1973receiving data from git-push and updating refs. You can stop
1974it by setting this variable to false.
1975
Junio C Hamano4653c6f2008-11-26 22:50:201976receive.fsckObjects::
1977If it is set to true, git-receive-pack will check all received
1978objects. It will abort in the case of a malformed object or a
1979broken link. The result of an abort are only dangling objects.
Junio C Hamano8fb66e52011-10-05 20:59:511980Defaults to false. If not set, the value of `transfer.fsckObjects`
1981is used instead.
Junio C Hamano4653c6f2008-11-26 22:50:201982
1983receive.unpackLimit::
1984If the number of objects received in a push is below this
1985limit then the objects will be unpacked into loose object
1986files. However if the number of received objects equals or
1987exceeds this limit then the received pack will be stored as
1988a pack, after adding any missing delta bases. Storing the
1989pack from a push can make the push operation complete faster,
1990especially on slow filesystems. If not set, the value of
1991`transfer.unpackLimit` is used instead.
1992
1993receive.denyDeletes::
1994If set to true, git-receive-pack will deny a ref update that deletes
1995the ref. Use this to prevent such a ref deletion via a push.
1996
Junio C Hamanob4448a82010-07-26 09:02:321997receive.denyDeleteCurrent::
1998If set to true, git-receive-pack will deny a ref update that
1999deletes the currently checked out branch of a non-bare repository.
2000
Junio C Hamano4653c6f2008-11-26 22:50:202001receive.denyCurrentBranch::
Junio C Hamanoe97d5772010-05-19 08:13:582002If set to true or "refuse", git-receive-pack will deny a ref update
Junio C Hamano4653c6f2008-11-26 22:50:202003to the currently checked out branch of a non-bare repository.
2004Such a push is potentially dangerous because it brings the HEAD
2005out of sync with the index and working tree. If set to "warn",
2006print a warning of such a push to stderr, but allow the push to
2007proceed. If set to false or "ignore", allow such pushes with no
Junio C Hamanoafb395b2010-03-17 22:16:152008message. Defaults to "refuse".
Junio C Hamano4653c6f2008-11-26 22:50:202009
2010receive.denyNonFastForwards::
2011If set to true, git-receive-pack will deny a ref update which is
Junio C Hamano3f680f32009-11-16 02:10:542012not a fast-forward. Use this to prevent such an update via a push,
Junio C Hamano4653c6f2008-11-26 22:50:202013even if that push is forced. This configuration variable is
2014set when initializing a shared repository.
2015
Junio C Hamano80ad00d2013-02-18 00:19:032016receive.hiderefs::
2017String(s) `receive-pack` uses to decide which refs to omit
2018from its initial advertisement. Use more than one
2019definitions to specify multiple prefix strings. A ref that
2020are under the hierarchies listed on the value of this
2021variable is excluded, and is hidden when responding to `git
2022push`, and an attempt to update or delete a hidden ref by
2023`git push` is rejected.
2024
Junio C Hamano621e1232009-10-26 05:16:472025receive.updateserverinfo::
2026If set to true, git-receive-pack will run git-update-server-info
2027after receiving data from git-push and updating refs.
2028
Junio C Hamano63b6fdb2013-04-07 23:37:132029remote.pushdefault::
2030The remote to push to by default. Overrides
2031`branch.<name>.remote` for all branches, and is overridden by
2032`branch.<name>.pushremote` for specific branches.
2033
Junio C Hamano249572f2006-10-24 05:44:082034remote.<name>.url::
Junio C Hamano35738e82008-01-07 07:55:462035The URL of a remote repository. See linkgit:git-fetch[1] or
2036linkgit:git-push[1].
Junio C Hamano249572f2006-10-24 05:44:082037
Junio C Hamano0e88f3e2009-06-21 08:03:252038remote.<name>.pushurl::
2039The push URL of a remote repository. See linkgit:git-push[1].
2040
Junio C Hamano58256872007-12-04 08:31:132041remote.<name>.proxy::
2042For remotes that require curl (http, https and ftp), the URL to
2043the proxy to use for that remote. Set to the empty string to
2044disable proxying for that remote.
2045
Junio C Hamano249572f2006-10-24 05:44:082046remote.<name>.fetch::
Junio C Hamano35738e82008-01-07 07:55:462047The default set of "refspec" for linkgit:git-fetch[1]. See
2048linkgit:git-fetch[1].
Junio C Hamano249572f2006-10-24 05:44:082049
2050remote.<name>.push::
Junio C Hamano35738e82008-01-07 07:55:462051The default set of "refspec" for linkgit:git-push[1]. See
2052linkgit:git-push[1].
Junio C Hamano249572f2006-10-24 05:44:082053
Junio C Hamano47d68a52008-05-06 06:35:402054remote.<name>.mirror::
2055If true, pushing to this remote will automatically behave
Junio C Hamanob76a6862012-05-02 22:02:462056as if the `--mirror` option was given on the command line.
Junio C Hamano47d68a52008-05-06 06:35:402057
Junio C Hamano118d2772007-02-21 20:24:102058remote.<name>.skipDefaultUpdate::
2059If true, this remote will be skipped by default when updating
Junio C Hamano9df0c662009-11-23 11:09:272060using linkgit:git-fetch[1] or the `update` subcommand of
2061linkgit:git-remote[1].
2062
2063remote.<name>.skipFetchAll::
2064If true, this remote will be skipped by default when updating
2065using linkgit:git-fetch[1] or the `update` subcommand of
2066linkgit:git-remote[1].
Junio C Hamano118d2772007-02-21 20:24:102067
Junio C Hamano4ad294b2007-01-20 02:22:502068remote.<name>.receivepack::
Junio C Hamano54ea8d32007-01-25 07:59:482069The default program to execute on the remote side when pushing. See
Junio C Hamano86bcccc2008-03-08 09:33:552070option \--receive-pack of linkgit:git-push[1].
Junio C Hamano4ad294b2007-01-20 02:22:502071
Junio C Hamano54ea8d32007-01-25 07:59:482072remote.<name>.uploadpack::
2073The default program to execute on the remote side when fetching. See
Junio C Hamano86bcccc2008-03-08 09:33:552074option \--upload-pack of linkgit:git-fetch-pack[1].
Junio C Hamano54ea8d32007-01-25 07:59:482075
Junio C Hamano17dde0e2007-02-26 09:50:212076remote.<name>.tagopt::
Junio C Hamano86bcccc2008-03-08 09:33:552077Setting this value to \--no-tags disables automatic tag following when
Junio C Hamanocc7636a2010-05-21 14:57:532078fetching from remote <name>. Setting it to \--tags will fetch every
2079tag from remote <name>, even if they are not reachable from remote
Junio C Hamano075ae872010-09-01 18:43:072080branch heads. Passing these flags directly to linkgit:git-fetch[1] can
2081override this setting. See options \--tags and \--no-tags of
2082linkgit:git-fetch[1].
Junio C Hamano17dde0e2007-02-26 09:50:212083
Junio C Hamano096dde22009-12-26 23:14:112084remote.<name>.vcs::
Junio C Hamano076ffcc2013-02-06 05:13:212085Setting this to a value <vcs> will cause Git to interact with
Junio C Hamano096dde22009-12-26 23:14:112086the remote with the git-remote-<vcs> helper.
2087
Junio C Hamano8eac2682013-09-09 22:35:202088remote.<name>.prune::
2089When set to true, fetching from this remote by default will also
2090remove any remote-tracking branches which no longer exist on the
2091remote (as if the `--prune` option was give on the command line).
2092Overrides `fetch.prune` settings, if any.
2093
Junio C Hamano118d2772007-02-21 20:24:102094remotes.<group>::
2095The list of remotes which are fetched by "git remote update
Junio C Hamano35738e82008-01-07 07:55:462096<group>". See linkgit:git-remote[1].
Junio C Hamano118d2772007-02-21 20:24:102097
Junio C Hamano77b7e902006-10-23 07:18:502098repack.usedeltabaseoffset::
Junio C Hamanofce7c7e2008-07-02 03:06:382099By default, linkgit:git-repack[1] creates packs that use
2100delta-base offset. If you need to share your repository with
Junio C Hamano076ffcc2013-02-06 05:13:212101Git older than version 1.4.4, either directly or via a dumb
Junio C Hamanofce7c7e2008-07-02 03:06:382102protocol such as http, then you need to set this option to
Junio C Hamano076ffcc2013-02-06 05:13:212103"false" and repack. Access from old Git versions over the
Junio C Hamanofce7c7e2008-07-02 03:06:382104native protocol are unaffected by this option.
Junio C Hamano77b7e902006-10-23 07:18:502105
Junio C Hamano4653c6f2008-11-26 22:50:202106rerere.autoupdate::
2107When set to true, `git-rerere` updates the index with the
2108resulting contents after it cleanly resolves conflicts using
2109previously recorded resolution. Defaults to false.
2110
2111rerere.enabled::
2112Activate recording of resolved conflicts, so that identical
Junio C Hamano4fd24422012-01-06 21:52:432113conflict hunks can be resolved automatically, should they be
2114encountered again. By default, linkgit:git-rerere[1] is
2115enabled if there is an `rr-cache` directory under the
Junio C Hamano864ba892012-01-13 17:42:052116`$GIT_DIR`, e.g. if "rerere" was previously used in the
2117repository.
Junio C Hamano4653c6f2008-11-26 22:50:202118
Junio C Hamano1bbd0f42009-07-23 06:20:292119sendemail.identity::
2120A configuration identity. When given, causes values in the
2121'sendemail.<identity>' subsection to take precedence over
2122values in the 'sendemail' section. The default identity is
2123the value of 'sendemail.identity'.
2124
2125sendemail.smtpencryption::
2126See linkgit:git-send-email[1] for description. Note that this
2127setting is not subject to the 'identity' mechanism.
2128
2129sendemail.smtpssl::
2130Deprecated alias for 'sendemail.smtpencryption = ssl'.
2131
Junio C Hamano58f587a2013-07-22 19:20:592132sendemail.smtpsslcertpath::
2133Path to ca-certificates (either a directory or a single file).
2134Set it to an empty string to disable certificate verification.
2135
Junio C Hamano1bbd0f42009-07-23 06:20:292136sendemail.<identity>.*::
2137Identity-specific versions of the 'sendemail.*' parameters
2138found below, taking precedence over those when the this
2139identity is selected, through command-line or
2140'sendemail.identity'.
2141
2142sendemail.aliasesfile::
2143sendemail.aliasfiletype::
Junio C Hamanoea3b7522013-04-18 19:37:532144sendemail.annotate::
Junio C Hamano1bbd0f42009-07-23 06:20:292145sendemail.bcc::
2146sendemail.cc::
2147sendemail.cccmd::
2148sendemail.chainreplyto::
2149sendemail.confirm::
2150sendemail.envelopesender::
2151sendemail.from::
2152sendemail.multiedit::
2153sendemail.signedoffbycc::
2154sendemail.smtppass::
2155sendemail.suppresscc::
2156sendemail.suppressfrom::
2157sendemail.to::
Junio C Hamanocb39aea2010-05-09 07:24:482158sendemail.smtpdomain::
Junio C Hamano1bbd0f42009-07-23 06:20:292159sendemail.smtpserver::
2160sendemail.smtpserverport::
Junio C Hamano39c7a692010-10-27 06:08:542161sendemail.smtpserveroption::
Junio C Hamano1bbd0f42009-07-23 06:20:292162sendemail.smtpuser::
2163sendemail.thread::
2164sendemail.validate::
2165See linkgit:git-send-email[1] for description.
2166
2167sendemail.signedoffcc::
2168Deprecated alias for 'sendemail.signedoffbycc'.
2169
Junio C Hamano07824ce2006-04-25 07:36:542170showbranch.default::
Junio C Hamano35738e82008-01-07 07:55:462171The default set of branches for linkgit:git-show-branch[1].
2172See linkgit:git-show-branch[1].
Junio C Hamano07824ce2006-04-25 07:36:542173
Junio C Hamano942b35e2007-12-09 10:19:332174status.relativePaths::
Junio C Hamano35738e82008-01-07 07:55:462175By default, linkgit:git-status[1] shows paths relative to the
Junio C Hamano942b35e2007-12-09 10:19:332176current directory. Setting this variable to `false` shows paths
Junio C Hamano076ffcc2013-02-06 05:13:212177relative to the repository root (this was the default for Git
Junio C Hamano942b35e2007-12-09 10:19:332178prior to v1.5.4).
2179
Junio C Hamano58655592013-07-11 20:52:332180status.short::
2181Set to true to enable --short by default in linkgit:git-status[1].
2182The option --no-short takes precedence over this variable.
2183
2184status.branch::
2185Set to true to enable --branch by default in linkgit:git-status[1].
2186The option --no-branch takes precedence over this variable.
2187
Junio C Hamano79f4c7c2013-09-20 21:03:372188status.displayCommentPrefix::
2189If set to true, linkgit:git-status[1] will insert a comment
2190prefix before each output line (starting with
2191`core.commentChar`, i.e. `#` by default). This was the
2192behavior of linkgit:git-status[1] in Git 1.8.4 and previous.
2193Defaults to false.
2194
Junio C Hamano4224f992008-06-23 07:14:082195status.showUntrackedFiles::
2196By default, linkgit:git-status[1] and linkgit:git-commit[1] show
2197files which are not currently tracked by Git. Directories which
2198contain only untracked files, are shown with the directory name
2199only. Showing untracked files means that Git needs to lstat() all
2200all the files in the whole repository, which might be slow on some
2201systems. So, this variable controls how the commands displays
2202the untracked files. Possible values are:
2203+
2204--
Junio C Hamano7f9fa862010-10-19 23:51:142205* `no` - Show no untracked files.
2206* `normal` - Show untracked files and directories.
2207* `all` - Show also individual files in untracked directories.
Junio C Hamano4224f992008-06-23 07:14:082208--
2209+
2210If this variable is not specified, it defaults to 'normal'.
2211This variable can be overridden with the -u|--untracked-files option
2212of linkgit:git-status[1] and linkgit:git-commit[1].
2213
Junio C Hamanob671fb52010-06-01 05:06:142214status.submodulesummary::
2215Defaults to false.
2216If this is set to a non zero number or true (identical to -1 or an
2217unlimited number), the submodule summary will be enabled and a
2218summary of commits for modified submodules will be shown (see
Junio C Hamano369e3402013-10-15 18:40:252219--summary-limit option of linkgit:git-submodule[1]). Please note
2220that the summary output command will be suppressed for all
2221submodules when `diff.ignoreSubmodules` is set to 'all' or only
2222for those submodules where `submodule.<name>.ignore=all`. To
2223also view the summary for ignored submodules you can either use
2224the --ignore-submodules=dirty command line option or the 'git
2225submodule summary' command, which shows a similar output but does
2226not honor these settings.
Junio C Hamanob671fb52010-06-01 05:06:142227
Junio C Hamano78e3a782010-07-15 22:24:452228submodule.<name>.path::
2229submodule.<name>.url::
2230submodule.<name>.update::
2231The path within this project, URL, and the updating strategy
2232for a submodule. These variables are initially populated
2233by 'git submodule init'; edit them to override the
2234URL and other values found in the `.gitmodules` file. See
2235linkgit:git-submodule[1] and linkgit:gitmodules[5] for details.
2236
Junio C Hamanoabad6da2013-01-06 09:06:322237submodule.<name>.branch::
2238The remote branch name for a submodule, used by `git submodule
2239update --remote`. Set this option to override the value found in
2240the `.gitmodules` file. See linkgit:git-submodule[1] and
2241linkgit:gitmodules[5] for details.
2242
Junio C Hamano0d75e872010-12-17 06:57:262243submodule.<name>.fetchRecurseSubmodules::
Junio C Hamano5cd15182011-04-05 00:21:102244This option can be used to control recursive fetching of this
Junio C Hamano7165bf72011-01-04 22:06:182245submodule. It can be overridden by using the --[no-]recurse-submodules
Junio C Hamano0d75e872010-12-17 06:57:262246command line option to "git fetch" and "git pull".
2247This setting will override that from in the linkgit:gitmodules[5]
2248file.
2249
Junio C Hamano619596a2010-08-18 22:15:352250submodule.<name>.ignore::
2251Defines under what circumstances "git status" and the diff family show
2252a submodule as modified. When set to "all", it will never be considered
2253modified, "dirty" will ignore all changes to the submodules work tree and
2254takes only differences between the HEAD of the submodule and the commit
2255recorded in the superproject into account. "untracked" will additionally
2256let submodules with modified tracked files in their work tree show up.
2257Using "none" (the default when this option is not set) also shows
2258submodules that have untracked files in their work tree as changed.
2259This setting overrides any setting made in .gitmodules for this submodule,
Junio C Hamanode9745c2010-08-23 17:10:182260both settings can be overridden on the command line by using the
Junio C Hamano369e3402013-10-15 18:40:252261"--ignore-submodules" option. The 'git submodule' commands are not
2262affected by this setting.
Junio C Hamano619596a2010-08-18 22:15:352263
Junio C Hamano75cc4c92006-07-24 08:25:032264tar.umask::
Junio C Hamanobdebabb2007-08-23 00:25:092265This variable can be used to restrict the permission bits of
2266tar archive entries. The default is 0002, which turns off the
2267world write bit. The special value "user" indicates that the
2268archiving user's umask will be used instead. See umask(2) and
Junio C Hamano35738e82008-01-07 07:55:462269linkgit:git-archive[1].
Junio C Hamano75cc4c92006-07-24 08:25:032270
Junio C Hamano8fb66e52011-10-05 20:59:512271transfer.fsckObjects::
2272When `fetch.fsckObjects` or `receive.fsckObjects` are
2273not set, the value of this variable is used instead.
2274Defaults to false.
2275
Junio C Hamano80ad00d2013-02-18 00:19:032276transfer.hiderefs::
2277This variable can be used to set both `receive.hiderefs`
2278and `uploadpack.hiderefs` at the same time to the same
2279values. See entries for these other variables.
2280
Junio C Hamano4653c6f2008-11-26 22:50:202281transfer.unpackLimit::
2282When `fetch.unpackLimit` or `receive.unpackLimit` are
2283not set, the value of this variable is used instead.
2284The default value is 100.
2285
Junio C Hamano80ad00d2013-02-18 00:19:032286uploadpack.hiderefs::
2287String(s) `upload-pack` uses to decide which refs to omit
2288from its initial advertisement. Use more than one
2289definitions to specify multiple prefix strings. A ref that
2290are under the hierarchies listed on the value of this
2291variable is excluded, and is hidden from `git ls-remote`,
2292`git fetch`, etc. An attempt to fetch a hidden ref by `git
Junio C Hamano5e7f1312013-03-21 22:49:012293fetch` will fail. See also `uploadpack.allowtipsha1inwant`.
2294
2295uploadpack.allowtipsha1inwant::
2296When `uploadpack.hiderefs` is in effect, allow `upload-pack`
2297to accept a fetch request that asks for an object at the tip
2298of a hidden ref (by default, such a request is rejected).
2299see also `uploadpack.hiderefs`.
Junio C Hamano80ad00d2013-02-18 00:19:032300
Junio C Hamano79f4c7c2013-09-20 21:03:372301uploadpack.keepalive::
2302When `upload-pack` has started `pack-objects`, there may be a
2303quiet period while `pack-objects` prepares the pack. Normally
2304it would output progress information, but if `--quiet` was used
2305for the fetch, `pack-objects` will output nothing at all until
2306the pack data begins. Some clients and networks may consider
2307the server to be hung and give up. Setting this option instructs
2308`upload-pack` to send an empty keepalive packet every
2309`uploadpack.keepalive` seconds. Setting this option to 0
2310disables keepalive packets entirely. The default is 5 seconds.
2311
Junio C Hamano24bc09a2008-02-28 00:27:442312url.<base>.insteadOf::
2313Any URL that starts with this value will be rewritten to
2314start, instead, with <base>. In cases where some site serves a
2315large number of repositories, and serves them with multiple
2316access methods, and some users need to use different access
2317methods, this feature allows people to specify any of the
Junio C Hamano076ffcc2013-02-06 05:13:212318equivalent URLs and have Git automatically rewrite the URL to
Junio C Hamano24bc09a2008-02-28 00:27:442319the best alternative for the particular user, even for a
2320never-before-seen repository on the site. When more than one
2321insteadOf strings match a given URL, the longest match is used.
2322
Junio C Hamano7df6dcf2009-09-13 09:51:172323url.<base>.pushInsteadOf::
2324Any URL that starts with this value will not be pushed to;
2325instead, it will be rewritten to start with <base>, and the
2326resulting URL will be pushed to. In cases where some site serves
2327a large number of repositories, and serves them with multiple
2328access methods, some of which do not allow push, this feature
Junio C Hamano076ffcc2013-02-06 05:13:212329allows people to specify a pull-only URL and have Git
Junio C Hamano7df6dcf2009-09-13 09:51:172330automatically use an appropriate URL to push, even for a
2331never-before-seen repository on the site. When more than one
2332pushInsteadOf strings match a given URL, the longest match is
Junio C Hamano076ffcc2013-02-06 05:13:212333used. If a remote has an explicit pushurl, Git will ignore this
Junio C Hamano7df6dcf2009-09-13 09:51:172334setting for that remote.
2335
Junio C Hamano07824ce2006-04-25 07:36:542336user.email::
2337Your email address to be recorded in any newly created commits.
Junio C Hamano469d60e2007-04-29 18:30:342338Can be overridden by the 'GIT_AUTHOR_EMAIL', 'GIT_COMMITTER_EMAIL', and
Junio C Hamano35738e82008-01-07 07:55:462339'EMAIL' environment variables. See linkgit:git-commit-tree[1].
Junio C Hamano07824ce2006-04-25 07:36:542340
2341user.name::
2342Your full name to be recorded in any newly created commits.
Junio C Hamano341071d2006-06-04 07:24:482343Can be overridden by the 'GIT_AUTHOR_NAME' and 'GIT_COMMITTER_NAME'
Junio C Hamano35738e82008-01-07 07:55:462344environment variables. See linkgit:git-commit-tree[1].
Junio C Hamano07824ce2006-04-25 07:36:542345
Junio C Hamanoa890c4f2007-01-28 10:29:212346user.signingkey::
Junio C Hamano369e3402013-10-15 18:40:252347If linkgit:git-tag[1] or linkgit:git-commit[1] is not selecting the
2348key you want it to automatically when creating a signed tag or
2349commit, you can override the default selection with this variable.
2350This option is passed unchanged to gpg's --local-user parameter,
2351so you may specify a key using any method that gpg supports.
Junio C Hamanoa890c4f2007-01-28 10:29:212352
Junio C Hamano4e272312008-01-08 09:13:212353web.browser::
2354Specify a web browser that may be used by some commands.
2355Currently only linkgit:git-instaweb[1] and linkgit:git-help[1]
2356may use it.