blob: 6410d7cd983403a35911b75949641fc37e93d16b [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
Junio C Hamano07622622015-03-20 21:47:2617variables may appear multiple times; we say then that the variable is
18multivalued.
Junio C Hamano07824ce2006-04-25 07:36:5419
Junio C Hamanobee172f2007-01-23 08:44:1820Syntax
21~~~~~~
22
Junio C Hamano07824ce2006-04-25 07:36:5423The syntax is fairly flexible and permissive; whitespaces are mostly
Junio C Hamanobee172f2007-01-23 08:44:1824ignored. The '#' and ';' characters begin comments to the end of line,
25blank lines are ignored.
26
27The file consists of sections and variables. A section begins with
28the name of the section in square brackets and continues until the next
Junio C Hamano07622622015-03-20 21:47:2629section begins. Section names are case-insensitive. Only alphanumeric
Junio C Hamanoea82cff2009-03-18 01:54:4830characters, `-` and `.` are allowed in section names. Each variable
Junio C Hamanof4581102009-04-25 08:29:5931must belong to some section, which means that there must be a section
32header before the first setting of a variable.
Junio C Hamanobee172f2007-01-23 08:44:1833
34Sections can be further divided into subsections. To begin a subsection
35put its name in double quotes, separated by space from the section name,
Junio C Hamanof4581102009-04-25 08:29:5936in the section header, like in the example below:
Junio C Hamanobee172f2007-01-23 08:44:1837
38--------
39[section "subsection"]
40
41--------
42
Junio C Hamanof4581102009-04-25 08:29:5943Subsection names are case sensitive and can contain any characters except
Junio C Hamano07622622015-03-20 21:47:2644newline (doublequote `"` and backslash can be included by escaping them
45as `\"` and `\\`, respectively). Section headers cannot span multiple
Junio C Hamanobee172f2007-01-23 08:44:1846lines. Variables may belong directly to a section or to a given subsection.
47You can have `[section]` if you have `[section "subsection"]`, but you
48don't need to.
49
Junio C Hamano6231f822011-10-24 05:18:5250There is also a deprecated `[section.subsection]` syntax. With this
51syntax, the subsection name is converted to lower-case and is also
52compared case sensitively. These subsection names follow the same
53restrictions as section names.
Junio C Hamanobee172f2007-01-23 08:44:1854
Junio C Hamanoaa2cd762009-07-26 08:14:0155All the other lines (and the remainder of the line after the section
56header) are recognized as setting variables, in the form
Junio C Hamano07622622015-03-20 21:47:2657'name = value' (or just 'name', which is a short-hand to say that
58the variable is the boolean "true").
Junio C Hamano81d540a2012-03-02 19:52:4759The variable names are case-insensitive, allow only alphanumeric characters
Junio C Hamano07622622015-03-20 21:47:2660and `-`, and must start with an alphabetic character.
Junio C Hamanobee172f2007-01-23 08:44:1861
Junio C Hamano07622622015-03-20 21:47:2662A line that defines a value can be continued to the next line by
63ending it with a `\`; the backquote and the end-of-line are
64stripped. Leading whitespaces after 'name =', the remainder of the
65line after the first comment character '#' or ';', and trailing
66whitespaces of the line are discarded unless they are enclosed in
67double quotes. Internal whitespaces within the value are retained
68verbatim.
Junio C Hamanobee172f2007-01-23 08:44:1869
Junio C Hamano07622622015-03-20 21:47:2670Inside double quotes, double quote `"` and backslash `\` characters
71must be escaped: use `\"` for `"` and `\\` for `\`.
Junio C Hamanobee172f2007-01-23 08:44:1872
Junio C Hamanoea82cff2009-03-18 01:54:4873The following escape sequences (beside `\"` and `\\`) are recognized:
74`\n` for newline character (NL), `\t` for horizontal tabulation (HT, TAB)
Junio C Hamanod75148a2014-04-08 19:48:3875and `\b` for backspace (BS). Other char escape sequences (including octal
76escape sequences) are invalid.
Junio C Hamanobee172f2007-01-23 08:44:1877
Junio C Hamano07824ce2006-04-25 07:36:5478
Junio C Hamanoe0238c22012-02-23 22:45:5079Includes
80~~~~~~~~
81
82You can include one config file from another by setting the special
83`include.path` variable to the name of the file to be included. The
Junio C Hamano198b1f12016-05-17 22:27:2484variable takes a pathname as its value, and is subject to tilde
85expansion.
86
87The
Junio C Hamanoe0238c22012-02-23 22:45:5088included file is expanded immediately, as if its contents had been
89found at the location of the include directive. If the value of the
90`include.path` variable is a relative path, the path is considered to be
91relative to the configuration file in which the include directive was
Junio C Hamano198b1f12016-05-17 22:27:2492found. See below for examples.
93
Junio C Hamanoe0238c22012-02-23 22:45:5094
Junio C Hamano07824ce2006-04-25 07:36:5495Example
96~~~~~~~
97
98# Core variables
99[core]
100; Don't trust file modes
101filemode = false
102
103# Our diff algorithm
104[diff]
Junio C Hamano85c71572008-07-28 00:03:31105external = /usr/local/bin/diff-wrapper
Junio C Hamano07824ce2006-04-25 07:36:54106renames = true
107
Junio C Hamano52401ef2006-12-19 00:54:38108[branch "devel"]
109remote = origin
110merge = refs/heads/devel
111
Junio C Hamanobee172f2007-01-23 08:44:18112# Proxy settings
113[core]
Junio C Hamanoc71a8732007-08-04 00:27:26114gitProxy="ssh" for "kernel.org"
Junio C Hamanobee172f2007-01-23 08:44:18115gitProxy=default-proxy ; for the rest
Junio C Hamano52401ef2006-12-19 00:54:38116
Junio C Hamanoe0238c22012-02-23 22:45:50117[include]
118path = /path/to/foo.inc ; include by absolute path
119path = foo ; expand "foo" relative to the current file
Junio C Hamano198b1f12016-05-17 22:27:24120path = ~/foo ; expand "foo" in your `$HOME` directory
Junio C Hamanoe0238c22012-02-23 22:45:50121
Junio C Hamano07622622015-03-20 21:47:26122
123Values
124~~~~~~
125
126Values of many variables are treated as a simple string, but there
127are variables that take values of specific types and there are rules
128as to how to spell them.
129
130boolean::
131
132 When a variable is said to take a boolean value, many
133 synonyms are accepted for 'true' and 'false'; these are all
134 case-insensitive.
135
136 true;; Boolean true can be spelled as `yes`, `on`, `true`,
137or `1`. Also, a variable defined without `= <value>`
138is taken as true.
139
140 false;; Boolean false can be spelled as `no`, `off`,
141`false`, or `0`.
142+
Junio C Hamano92d80372016-07-13 22:00:05143When converting value to the canonical form using `--bool` type
Junio C Hamano07622622015-03-20 21:47:26144specifier; 'git config' will ensure that the output is "true" or
145"false" (spelled in lowercase).
146
147integer::
148 The value for many variables that specify various sizes can
149 be suffixed with `k`, `M`,... to mean "scale the number by
150 1024", "by 1024x1024", etc.
151
152color::
Junio C Hamano48931e22016-07-11 20:08:47153 The value for a variable that takes a color is a list of
154 colors (at most two, one for foreground and one for background)
155 and attributes (as many as you want), separated by spaces.
Junio C Hamano07622622015-03-20 21:47:26156+
Junio C Hamano48931e22016-07-11 20:08:47157The basic colors accepted are `normal`, `black`, `red`, `green`, `yellow`,
158`blue`, `magenta`, `cyan` and `white`. The first color given is the
159foreground; the second is the background.
Junio C Hamano07622622015-03-20 21:47:26160+
Junio C Hamano48931e22016-07-11 20:08:47161Colors may also be given as numbers between 0 and 255; these use ANSI
162256-color mode (but note that not all terminals may support this). If
163your terminal supports it, you may also specify 24-bit RGB values as
164hex, like `#ff0ab3`.
165+
166The accepted attributes are `bold`, `dim`, `ul`, `blink`, `reverse`,
167`italic`, and `strike` (for crossed-out or "strikethrough" letters).
168The position of any attributes with respect to the colors
169(before, after, or in between), doesn't matter. Specific attributes may
170be turned off by prefixing them with `no` or `no-` (e.g., `noreverse`,
171`no-ul`, etc).
172+
173For git's pre-defined color slots, the attributes are meant to be reset
174at the beginning of each item in the colored output. So setting
175`color.decorate.branch` to `black` will paint that branch name in a
176plain `black`, even if the previous thing on the same output line (e.g.
177opening parenthesis before the list of branch names in `log --decorate`
178output) is set to be painted with `bold` or some other attribute.
179However, custom log formats may do more complicated and layered
180coloring, and the negated forms may be useful there.
Junio C Hamano07622622015-03-20 21:47:26181
Junio C Hamano198b1f12016-05-17 22:27:24182pathname::
183A variable that takes a pathname value can be given a
184string that begins with "`~/`" or "`~user/`", and the usual
185tilde expansion happens to such a string: `~/`
186is expanded to the value of `$HOME`, and `~user/` to the
187specified user's home directory.
188
Junio C Hamano07622622015-03-20 21:47:26189
Junio C Hamano07824ce2006-04-25 07:36:54190Variables
191~~~~~~~~~
192
193Note that this list is non-comprehensive and not necessarily complete.
Junio C Hamanof1d14802006-06-08 00:48:17194For command-specific variables, you will find a more detailed description
Junio C Hamano52b6ba32014-04-01 00:26:48195in the appropriate manual page.
196
197Other git-related tools may and do use their own variables. When
198inventing new variables for use in your own tool, make sure their
199names do not conflict with those that are used by Git itself and
200other popular tools, and describe them in your documentation.
201
Junio C Hamano07824ce2006-04-25 07:36:54202
Junio C Hamano7df6dcf2009-09-13 09:51:17203advice.*::
Junio C Hamano0df92712011-12-21 22:30:44204These variables control various optional help messages designed to
205aid new users. All 'advice.*' variables default to 'true', and you
206can tell Git that you do not need help by setting these to 'false':
Junio C Hamano7df6dcf2009-09-13 09:51:17207+
208--
Junio C Hamanoabad6da2013-01-06 09:06:32209pushUpdateRejected::
Junio C Hamano0c1b64e2012-04-20 23:50:49210Set this variable to 'false' if you want to disable
Junio C Hamano1d669b82014-03-11 21:36:00211'pushNonFFCurrent',
Junio C Hamano3f2ed6f2013-02-04 19:24:09212'pushNonFFMatching', 'pushAlreadyExists',
213'pushFetchFirst', and 'pushNeedsForce'
Junio C Hamanoabad6da2013-01-06 09:06:32214simultaneously.
Junio C Hamano0c1b64e2012-04-20 23:50:49215pushNonFFCurrent::
216Advice shown when linkgit:git-push[1] fails due to a
217non-fast-forward update to the current branch.
Junio C Hamano0c1b64e2012-04-20 23:50:49218pushNonFFMatching::
219Advice shown when you ran linkgit:git-push[1] and pushed
220'matching refs' explicitly (i.e. you used ':', or
221specified a refspec that isn't your current branch) and
222it resulted in a non-fast-forward error.
Junio C Hamanoabad6da2013-01-06 09:06:32223pushAlreadyExists::
224Shown when linkgit:git-push[1] rejects an update that
225does not qualify for fast-forwarding (e.g., a tag.)
Junio C Hamano3f2ed6f2013-02-04 19:24:09226pushFetchFirst::
227Shown when linkgit:git-push[1] rejects an update that
228tries to overwrite a remote ref that points at an
229object we do not have.
230pushNeedsForce::
231Shown when linkgit:git-push[1] rejects an update that
232tries to overwrite a remote ref that points at an
Junio C Hamanoe6f28d02013-09-17 21:34:00233object that is not a commit-ish, or make the remote
234ref point at an object that is not a commit-ish.
Junio C Hamano7df6dcf2009-09-13 09:51:17235statusHints::
Junio C Hamano644936c2012-06-28 23:05:14236Show directions on how to proceed from the current
Junio C Hamano917cd4f2012-12-04 23:41:10237state in the output of linkgit:git-status[1], in
Junio C Hamano644936c2012-06-28 23:05:14238the template shown when writing commit messages in
Junio C Hamano917cd4f2012-12-04 23:41:10239linkgit:git-commit[1], and in the help message shown
240by linkgit:git-checkout[1] when switching branch.
Junio C Hamano5e7f1312013-03-21 22:49:01241statusUoption::
242Advise to consider using the `-u` option to linkgit:git-status[1]
243when the command takes more than 2 seconds to enumerate untracked
244files.
Junio C Hamano5706e0b2009-11-24 10:54:16245commitBeforeMerge::
246Advice shown when linkgit:git-merge[1] refuses to
Junio C Hamano619596a2010-08-18 22:15:35247merge to avoid overwriting local changes.
Junio C Hamanoa9701f02010-01-21 00:42:16248resolveConflict::
Junio C Hamano5dab5a92013-02-25 18:51:24249Advice shown by various commands when conflicts
Junio C Hamanoa9701f02010-01-21 00:42:16250prevent the operation from being performed.
Junio C Hamanoa9701f02010-01-21 00:42:16251implicitIdentity::
252Advice on how to set your identity configuration when
253your information is guessed from the system username and
Junio C Hamano0df92712011-12-21 22:30:44254domain name.
Junio C Hamano74a198f2010-02-22 00:13:31255detachedHead::
Junio C Hamano0df92712011-12-21 22:30:44256Advice shown when you used linkgit:git-checkout[1] to
Junio C Hamano74a198f2010-02-22 00:13:31257move to the detach HEAD state, to instruct how to create
Junio C Hamano0df92712011-12-21 22:30:44258a local branch after the fact.
Junio C Hamanobb300642012-07-22 21:09:14259amWorkDir::
260Advice that shows the location of the patch file when
261linkgit:git-am[1] fails to apply it.
Junio C Hamano8ab94942013-06-24 21:55:30262rmHints::
263In case of failure in the output of linkgit:git-rm[1],
264show directions on how to proceed from the current state.
Junio C Hamano7df6dcf2009-09-13 09:51:17265--
266
Junio C Hamano07824ce2006-04-25 07:36:54267core.fileMode::
Junio C Hamanod2c28482014-10-24 22:28:25268Tells Git if the executable bit of files in the working tree
269is to be honored.
Junio C Hamano9df0c662009-11-23 11:09:27270+
Junio C Hamanod2c28482014-10-24 22:28:25271Some filesystems lose the executable bit when a file that is
272marked as executable is checked out, or checks out an
273non-executable file with executable bit on.
274linkgit:git-clone[1] or linkgit:git-init[1] probe the filesystem
275to see if it handles the executable bit correctly
276and this variable is automatically set as necessary.
277+
278A repository, however, may be on a filesystem that handles
279the filemode correctly, and this variable is set to 'true'
280when created, but later may be made accessible from another
281environment that loses the filemode (e.g. exporting ext4 via
282CIFS mount, visiting a Cygwin created repository with
283Git for Windows or Eclipse).
284In such a case it may be necessary to set this variable to 'false'.
285See linkgit:git-update-index[1].
286+
287The default is true (when core.filemode is not specified in the config file).
Junio C Hamano07824ce2006-04-25 07:36:54288
Junio C Hamano198b1f12016-05-17 22:27:24289core.hideDotFiles::
290(Windows-only) If true, mark newly-created directories and files whose
291name starts with a dot as hidden. If 'dotGitOnly', only the `.git/`
292directory is hidden, but no other files starting with a dot. The
293default mode is 'dotGitOnly'.
294
Junio C Hamano322c6242015-03-23 21:32:46295core.ignoreCase::
Junio C Hamano9df0c662009-11-23 11:09:27296If true, this option enables various workarounds to enable
Junio C Hamano076ffcc2013-02-06 05:13:21297Git to work better on filesystems that are not case sensitive,
Junio C Hamano9df0c662009-11-23 11:09:27298like FAT. For example, if a directory listing finds
Junio C Hamano076ffcc2013-02-06 05:13:21299"makefile" when Git expects "Makefile", Git will assume
Junio C Hamano9df0c662009-11-23 11:09:27300it is really the same file, and continue to remember it as
301"Makefile".
302+
303The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
Junio C Hamano322c6242015-03-23 21:32:46304will probe and set core.ignoreCase true if appropriate when the repository
Junio C Hamano9df0c662009-11-23 11:09:27305is created.
306
Junio C Hamano322c6242015-03-23 21:32:46307core.precomposeUnicode::
Junio C Hamano076ffcc2013-02-06 05:13:21308This option is only used by Mac OS implementation of Git.
Junio C Hamano322c6242015-03-23 21:32:46309When core.precomposeUnicode=true, Git reverts the unicode decomposition
Junio C Hamanob61a7772012-07-13 23:34:48310of filenames done by Mac OS. This is useful when sharing a repository
311between Mac OS and Linux or Windows.
Junio C Hamano076ffcc2013-02-06 05:13:21312(Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7).
313When false, file names are handled fully transparent by Git,
314which is backward compatible with older versions of Git.
Junio C Hamanob61a7772012-07-13 23:34:48315
Junio C Hamano30758bd2014-12-18 20:44:14316core.protectHFS::
317If set to true, do not allow checkout of paths that would
318be considered equivalent to `.git` on an HFS+ filesystem.
319Defaults to `true` on Mac OS, and `false` elsewhere.
320
321core.protectNTFS::
322If set to true, do not allow checkout of paths that would
323cause problems with the NTFS filesystem, e.g. conflict with
3248.3 "short" names.
325Defaults to `true` on Windows, and `false` elsewhere.
326
Junio C Hamano90ccff32008-07-29 08:17:24327core.trustctime::
328If false, the ctime differences between the index and the
Junio C Hamano8fb66e52011-10-05 20:59:51329working tree are ignored; useful when the inode change time
Junio C Hamano90ccff32008-07-29 08:17:24330is regularly modified by something outside Git (file system
331crawlers and some backup systems).
332See linkgit:git-update-index[1]. True by default.
333
Junio C Hamano9099a7c2016-02-10 23:42:05334core.untrackedCache::
335Determines what to do about the untracked cache feature of the
336index. It will be kept, if this variable is unset or set to
337`keep`. It will automatically be added if set to `true`. And
338it will automatically be removed, if set to `false`. Before
339setting it to `true`, you should check that mtime is working
340properly on your system.
341See linkgit:git-update-index[1]. `keep` by default.
342
Junio C Hamano322c6242015-03-23 21:32:46343core.checkStat::
Junio C Hamano4cfed0c2013-01-30 17:58:54344Determines which stat fields to match between the index
345and work tree. The user can set this to 'default' or
346'minimal'. Default (or explicitly 'default'), is to check
347all fields, including the sub-second part of mtime and ctime.
348
Junio C Hamano322c6242015-03-23 21:32:46349core.quotePath::
Junio C Hamanoba4b9282008-07-06 05:20:31350The commands that output paths (e.g. 'ls-files',
351'diff'), when not given the `-z` option, will quote
Junio C Hamanod526ba92007-07-02 00:17:42352"unusual" characters in the pathname by enclosing the
353pathname in a double-quote pair and with backslashes the
354same way strings in C source code are quoted. If this
355variable is set to false, the bytes higher than 0x80 are
356not quoted but output as verbatim. Note that double
357quote, backslash and control characters are always
358quoted without `-z` regardless of the setting of this
359variable.
360
Junio C Hamanobb88cf42010-06-21 15:23:55361core.eol::
362Sets the line ending type to use in the working directory for
Junio C Hamanof2a3a752016-05-23 22:54:39363files that have the `text` property set when core.autocrlf is false.
364Alternatives are 'lf', 'crlf' and 'native', which uses the platform's
365native line ending. The default value is `native`. See
Junio C Hamanobb88cf42010-06-21 15:23:55366linkgit:gitattributes[5] for more information on end-of-line
367conversion.
Junio C Hamanod9e0e5d2007-04-14 16:22:04368
Junio C Hamano26e590a2008-02-17 03:53:51369core.safecrlf::
Junio C Hamano076ffcc2013-02-06 05:13:21370If true, makes Git check if converting `CRLF` is reversible when
Junio C Hamanobb88cf42010-06-21 15:23:55371end-of-line conversion is active. Git will verify if a command
Junio C Hamano26e590a2008-02-17 03:53:51372modifies a file in the work tree either directly or indirectly.
373For example, committing a file followed by checking out the
374same file should yield the original file in the work tree. If
375this is not the case for the current setting of
Junio C Hamano076ffcc2013-02-06 05:13:21376`core.autocrlf`, Git will reject the file. The variable can
377be set to "warn", in which case Git will only warn about an
Junio C Hamano26e590a2008-02-17 03:53:51378irreversible conversion but continue the operation.
379+
380CRLF conversion bears a slight chance of corrupting data.
Junio C Hamano076ffcc2013-02-06 05:13:21381When it is enabled, Git will convert CRLF to LF during commit and LF to
Junio C Hamano26e590a2008-02-17 03:53:51382CRLF during checkout. A file that contains a mixture of LF and
Junio C Hamano076ffcc2013-02-06 05:13:21383CRLF before the commit cannot be recreated by Git. For text
Junio C Hamano26e590a2008-02-17 03:53:51384files this is the right thing to do: it corrects line endings
385such that we have only LF line endings in the repository.
386But for binary files that are accidentally classified as text the
387conversion can corrupt data.
388+
389If you recognize such corruption early you can easily fix it by
390setting the conversion type explicitly in .gitattributes. Right
391after committing you still have the original file in your work
392tree and this file is not yet corrupted. You can explicitly tell
Junio C Hamano076ffcc2013-02-06 05:13:21393Git that this file is binary and Git will handle the file
Junio C Hamano26e590a2008-02-17 03:53:51394appropriately.
395+
396Unfortunately, the desired effect of cleaning up text files with
397mixed line endings and the undesired effect of corrupting binary
398files cannot be distinguished. In both cases CRLFs are removed
399in an irreversible way. For text files this is the right thing
400to do because CRLFs are line endings, while for binary files
401converting CRLFs corrupts data.
402+
403Note, this safety check does not mean that a checkout will generate a
404file identical to the original file for a different setting of
Junio C Hamanobb88cf42010-06-21 15:23:55405`core.eol` and `core.autocrlf`, but only for the current one. For
406example, a text file with `LF` would be accepted with `core.eol=lf`
407and could later be checked out with `core.eol=crlf`, in which case the
Junio C Hamano26e590a2008-02-17 03:53:51408resulting file would contain `CRLF`, although the original file
409contained `LF`. However, in both work trees the line endings would be
410consistent, that is either all `LF` or all `CRLF`, but never mixed. A
411file with mixed line endings would be reported by the `core.safecrlf`
412mechanism.
413
Junio C Hamanobb88cf42010-06-21 15:23:55414core.autocrlf::
Junio C Hamanoeed15af2016-07-25 22:49:42415Setting this variable to "true" is the same as setting
416the `text` attribute to "auto" on all files and core.eol to "crlf".
417Set to true if you want to have `CRLF` line endings in your
418working directory and the repository has LF line endings.
419This variable can be set to 'input',
Junio C Hamanobb88cf42010-06-21 15:23:55420in which case no output conversion is performed.
421
Junio C Hamanoaa83a7d2007-03-05 02:37:29422core.symlinks::
423If false, symbolic links are checked out as small plain files that
Junio C Hamano35738e82008-01-07 07:55:46424contain the link text. linkgit:git-update-index[1] and
425linkgit:git-add[1] will not change the recorded type to regular
Junio C Hamanoaa83a7d2007-03-05 02:37:29426file. Useful on filesystems like FAT that do not support
Junio C Hamano9df0c662009-11-23 11:09:27427symbolic links.
428+
429The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
430will probe and set core.symlinks false if appropriate when the repository
431is created.
Junio C Hamanoaa83a7d2007-03-05 02:37:29432
Junio C Hamano07824ce2006-04-25 07:36:54433core.gitProxy::
434A "proxy command" to execute (as 'command host port') instead
435of establishing direct connection to the remote server when
Junio C Hamano076ffcc2013-02-06 05:13:21436using the Git protocol for fetching. If the variable value is
Junio C Hamano07824ce2006-04-25 07:36:54437in the "COMMAND for DOMAIN" format, the command is applied only
438on hostnames ending with the specified domain string. This variable
439may be set multiple times and is matched in the given order;
440the first match wins.
Junio C Hamanof1d14802006-06-08 00:48:17441+
Junio C Hamano042f2142016-06-27 18:05:05442Can be overridden by the `GIT_PROXY_COMMAND` environment variable
Junio C Hamanof1d14802006-06-08 00:48:17443(which always applies universally, without the special "for"
444handling).
Junio C Hamanoea82cff2009-03-18 01:54:48445+
446The special string `none` can be used as the proxy command to
447specify that no proxy be used for a given domain pattern.
448This is useful for excluding servers inside a firewall from
449proxy use, while defaulting to a common proxy for external domains.
Junio C Hamano07824ce2006-04-25 07:36:54450
Junio C Hamano1a1b8472016-07-19 21:37:13451core.sshCommand::
452If this variable is set, `git fetch` and `git push` will
453use the specified command instead of `ssh` when they need to
454connect to a remote system. The command is in the same form as
455the `GIT_SSH_COMMAND` environment variable and is overridden
456when the environment variable is set.
457
Junio C Hamano07824ce2006-04-25 07:36:54458core.ignoreStat::
Junio C Hamanoe8acc8e2015-01-14 22:01:34459If true, Git will avoid using lstat() calls to detect if files have
460changed by setting the "assume-unchanged" bit for those tracked files
461which it has updated identically in both the index and working tree.
462+
463When files are modified outside of Git, the user will need to stage
464the modified files explicitly (e.g. see 'Examples' section in
465linkgit:git-update-index[1]).
466Git will not normally detect changes to those files.
467+
468This is useful on systems where lstat() calls are very slow, such as
469CIFS/Microsoft Windows.
470+
471False by default.
Junio C Hamano07824ce2006-04-25 07:36:54472
Junio C Hamano88a3a072006-05-04 08:01:43473core.preferSymlinkRefs::
474Instead of the default "symref" format for HEAD
475and other symbolic reference files, use symbolic links.
476This is sometimes needed to work with old scripts that
477expect HEAD to be a symbolic link.
Junio C Hamano07824ce2006-04-25 07:36:54478
Junio C Hamano1025e752007-02-23 07:21:26479core.bare::
480If true this repository is assumed to be 'bare' and has no
481working directory associated with it. If this is the case a
482number of commands that require a working directory will be
Junio C Hamano35738e82008-01-07 07:55:46483disabled, such as linkgit:git-add[1] or linkgit:git-merge[1].
Junio C Hamano1025e752007-02-23 07:21:26484+
Junio C Hamano35738e82008-01-07 07:55:46485This setting is automatically guessed by linkgit:git-clone[1] or
486linkgit:git-init[1] when the repository was created. By default a
Junio C Hamano1025e752007-02-23 07:21:26487repository that ends in "/.git" is assumed to be not bare (bare =
488false), while all other repositories are assumed to be bare (bare
489= true).
490
Junio C Hamanod526ba92007-07-02 00:17:42491core.worktree::
Junio C Hamano80d58462011-01-24 22:52:52492Set the path to the root of the working tree.
Junio C Hamano042f2142016-06-27 18:05:05493If `GIT_COMMON_DIR` environment variable is set, core.worktree
Junio C Hamano4cc4a842015-05-11 22:41:02494is ignored and not used for determining the root of working tree.
Junio C Hamano042f2142016-06-27 18:05:05495This can be overridden by the `GIT_WORK_TREE` environment
Junio C Hamano92d80372016-07-13 22:00:05496variable and the `--work-tree` command-line option.
Junio C Hamano5cd15182011-04-05 00:21:10497The value can be an absolute path or relative to the path to
Junio C Hamano80d58462011-01-24 22:52:52498the .git directory, which is either specified by --git-dir
499or GIT_DIR, or automatically discovered.
500If --git-dir or GIT_DIR is specified but none of
Junio C Hamano7d575a52008-04-30 08:45:27501--work-tree, GIT_WORK_TREE and core.worktree is specified,
Junio C Hamano80d58462011-01-24 22:52:52502the current working directory is regarded as the top level
Junio C Hamano3609b332010-12-29 01:34:52503of your working tree.
Junio C Hamano80d58462011-01-24 22:52:52504+
505Note that this variable is honored even when set in a configuration
506file in a ".git" subdirectory of a directory and its value differs
507from the latter directory (e.g. "/path/to/.git/config" has
508core.worktree set to "/different/path"), which is most likely a
Junio C Hamano076ffcc2013-02-06 05:13:21509misconfiguration. Running Git commands in the "/path/to" directory will
Junio C Hamano80d58462011-01-24 22:52:52510still use "/different/path" as the root of the work tree and can cause
511confusion unless you know what you are doing (e.g. you are creating a
512read-only snapshot of the same index to a location different from the
513repository's usual working tree).
Junio C Hamanod526ba92007-07-02 00:17:42514
Junio C Hamano341071d2006-06-04 07:24:48515core.logAllRefUpdates::
Junio C Hamanocae86272007-08-21 02:20:49516Enable the reflog. Updates to a ref <ref> is logged to the file
Junio C Hamano198b1f12016-05-17 22:27:24517"`$GIT_DIR/logs/<ref>`", by appending the new and old
Junio C Hamanoe3f080d2013-04-22 02:27:13518SHA-1, the date/time and the reason of the update, but
Junio C Hamanoa2ec14f2006-11-02 00:22:48519only when the file exists. If this configuration
Junio C Hamano198b1f12016-05-17 22:27:24520variable is set to true, missing "`$GIT_DIR/logs/<ref>`"
Junio C Hamano15567bc2011-07-23 00:51:59521file is automatically created for branch heads (i.e. under
522refs/heads/), remote refs (i.e. under refs/remotes/),
523note refs (i.e. under refs/notes/), and the symbolic ref HEAD.
Junio C Hamano1caaf472006-12-31 08:29:35524+
525This information can be used to determine what commit
526was the tip of a branch "2 days ago".
527+
528This value is true by default in a repository that has
529a working directory associated with it, and false by
530default in a bare repository.
Junio C Hamano341071d2006-06-04 07:24:48531
Junio C Hamano07824ce2006-04-25 07:36:54532core.repositoryFormatVersion::
533Internal variable identifying the repository format and layout
534version.
535
536core.sharedRepository::
Junio C Hamano0ab78ae2006-08-09 01:00:42537When 'group' (or 'true'), the repository is made shareable between
538several users in a group (making sure all the files and objects are
539group-writable). When 'all' (or 'world' or 'everybody'), the
540repository will be readable by all users, additionally to being
Junio C Hamano076ffcc2013-02-06 05:13:21541group-shareable. When 'umask' (or 'false'), Git will use permissions
Junio C Hamano2f102bb2008-04-26 02:23:37542reported by umask(2). When '0xxx', where '0xxx' is an octal number,
543files in the repository will have this mode value. '0xxx' will override
Junio C Hamano83eded12009-04-20 08:18:00544user's umask value (whereas the other options will only override
545requested parts of the user's umask value). Examples: '0660' will make
546the repo read/write-able for the owner and group, but inaccessible to
547others (equivalent to 'group' unless umask is e.g. '0022'). '0640' is a
Junio C Hamano2f102bb2008-04-26 02:23:37548repository that is group-readable but not group-writable.
549See linkgit:git-init[1]. False by default.
Junio C Hamano07824ce2006-04-25 07:36:54550
551core.warnAmbiguousRefs::
Junio C Hamano076ffcc2013-02-06 05:13:21552If true, Git will warn you if the ref name you passed it is ambiguous
Junio C Hamano947ab822013-03-19 23:07:29553and might match multiple refs in the repository. True by default.
Junio C Hamano07824ce2006-04-25 07:36:54554
Junio C Hamano7ec15722006-07-07 02:03:59555core.compression::
Junio C Hamanof2ce2972007-05-20 19:12:09556An integer -1..9, indicating a default compression level.
557-1 is the zlib default. 0 means no compression,
558and 1..9 are various speed/size tradeoffs, 9 being slowest.
Junio C Hamano2e72a942007-11-21 08:54:42559If set, this provides a default to other compression variables,
Junio C Hamano042f2142016-06-27 18:05:05560such as `core.looseCompression` and `pack.compression`.
Junio C Hamanoa126a3b2006-07-04 04:55:26561
Junio C Hamano322c6242015-03-23 21:32:46562core.looseCompression::
Junio C Hamanof2ce2972007-05-20 19:12:09563An integer -1..9, indicating the compression level for objects that
564are not in a pack file. -1 is the zlib default. 0 means no
565compression, and 1..9 are various speed/size tradeoffs, 9 being
566slowest. If not set, defaults to core.compression. If that is
Junio C Hamano2e72a942007-11-21 08:54:42567not set, defaults to 1 (best speed).
Junio C Hamano28d9dfe2006-07-25 03:50:49568
Junio C Hamanofc4d38c2007-01-08 06:53:32569core.packedGitWindowSize::
570Number of bytes of a pack file to map into memory in a
571single mapping operation. Larger window sizes may allow
572your system to process a smaller number of large pack files
573more quickly. Smaller window sizes will negatively affect
574performance due to increased calls to the operating system's
575memory manager, but may improve performance when accessing
576a large number of large pack files.
577+
578Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
579MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
580be reasonable for all users/operating systems. You probably do
581not need to adjust this value.
582+
583Common unit suffixes of 'k', 'm', or 'g' are supported.
584
585core.packedGitLimit::
586Maximum number of bytes to map simultaneously into memory
587from pack files. If Git needs to access more than this many
588bytes at once to complete an operation it will unmap existing
589regions to reclaim virtual address space within the process.
590+
591Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.
592This should be reasonable for all users/operating systems, except on
593the largest projects. You probably do not need to adjust this value.
594+
595Common unit suffixes of 'k', 'm', or 'g' are supported.
596
Junio C Hamanob8c51282007-03-19 10:43:30597core.deltaBaseCacheLimit::
598Maximum number of bytes to reserve for caching base objects
Junio C Hamano619596a2010-08-18 22:15:35599that may be referenced by multiple deltified objects. By storing the
Junio C Hamanob8c51282007-03-19 10:43:30600entire decompressed base objects in a cache Git is able
601to avoid unpacking and decompressing frequently used base
602objects multiple times.
603+
Junio C Hamanoe1aeb5e2014-06-06 19:16:29604Default is 96 MiB on all platforms. This should be reasonable
Junio C Hamanob8c51282007-03-19 10:43:30605for all users/operating systems, except on the largest projects.
606You probably do not need to adjust this value.
607+
608Common unit suffixes of 'k', 'm', or 'g' are supported.
609
Junio C Hamano5c246f22010-02-03 07:34:53610core.bigFileThreshold::
611Files larger than this size are stored deflated, without
612attempting delta compression. Storing large files without
613delta compression avoids excessive memory usage, at the
Junio C Hamano8e61f1f2014-09-11 21:53:45614slight expense of increased disk usage. Additionally files
615larger than this size are always treated as binary.
Junio C Hamano5c246f22010-02-03 07:34:53616+
617Default is 512 MiB on all platforms. This should be reasonable
618for most projects as source code and other text files can still
619be delta compressed, but larger binary media files won't be.
620+
621Common unit suffixes of 'k', 'm', or 'g' are supported.
Junio C Hamano5c246f22010-02-03 07:34:53622
Junio C Hamano322c6242015-03-23 21:32:46623core.excludesFile::
Junio C Hamano198b1f12016-05-17 22:27:24624Specifies the pathname to the file that contains patterns to
625describe paths that are not meant to be tracked, in addition
626to '.gitignore' (per-directory) and '.git/info/exclude'.
627Defaults to `$XDG_CONFIG_HOME/git/ignore`.
628If `$XDG_CONFIG_HOME` is either not set or empty, `$HOME/.config/git/ignore`
Junio C Hamano8edb4c72012-07-09 20:33:55629is used instead. See linkgit:gitignore[5].
Junio C Hamano5e284b42007-05-22 07:23:37630
Junio C Hamano322c6242015-03-23 21:32:46631core.askPass::
Junio C Hamano3fd7b262010-09-08 22:44:20632Some commands (e.g. svn and http interfaces) that interactively
633ask for a password can be told to use an external program given
Junio C Hamano042f2142016-06-27 18:05:05634via the value of this variable. Can be overridden by the `GIT_ASKPASS`
Junio C Hamano3fd7b262010-09-08 22:44:20635environment variable. If not set, fall back to the value of the
Junio C Hamano042f2142016-06-27 18:05:05636`SSH_ASKPASS` environment variable or, failing that, a simple password
Junio C Hamano3fd7b262010-09-08 22:44:20637prompt. The external program shall be given a suitable prompt as
Junio C Hamanoe1aeb5e2014-06-06 19:16:29638command-line argument and write the password on its STDOUT.
Junio C Hamano3fd7b262010-09-08 22:44:20639
Junio C Hamano322c6242015-03-23 21:32:46640core.attributesFile::
Junio C Hamano3b4609d2010-09-30 00:04:34641In addition to '.gitattributes' (per-directory) and
Junio C Hamano076ffcc2013-02-06 05:13:21642'.git/info/attributes', Git looks into this file for attributes
Junio C Hamano3b4609d2010-09-30 00:04:34643(see linkgit:gitattributes[5]). Path expansions are made the same
Junio C Hamano322c6242015-03-23 21:32:46644way as for `core.excludesFile`. Its default value is
Junio C Hamano198b1f12016-05-17 22:27:24645`$XDG_CONFIG_HOME/git/attributes`. If `$XDG_CONFIG_HOME` is either not
646set or empty, `$HOME/.config/git/attributes` is used instead.
647
648core.hooksPath::
649By default Git will look for your hooks in the
650'$GIT_DIR/hooks' directory. Set this to different path,
651e.g. '/etc/git/hooks', and Git will try to find your hooks in
652that directory, e.g. '/etc/git/hooks/pre-receive' instead of
653in '$GIT_DIR/hooks/pre-receive'.
654+
655The path can be either absolute or relative. A relative path is
656taken as relative to the directory where the hooks are run (see
657the "DESCRIPTION" section of linkgit:githooks[5]).
658+
659This configuration variable is useful in cases where you'd like to
660centrally configure your Git hooks instead of configuring them on a
661per-repository basis, or as a more flexible and centralized
662alternative to having an `init.templateDir` where you've changed
663default hooks.
Junio C Hamano3b4609d2010-09-30 00:04:34664
Junio C Hamanof6002a92007-07-20 10:28:22665core.editor::
666Commands such as `commit` and `tag` that lets you edit
Junio C Hamanoa6387422007-08-25 03:54:27667messages by launching an editor uses the value of this
Junio C Hamanof6002a92007-07-20 10:28:22668variable when it is set, and the environment variable
Junio C Hamano3b70d3c2009-11-21 17:37:37669`GIT_EDITOR` is not set. See linkgit:git-var[1].
Junio C Hamanof6002a92007-07-20 10:28:22670
Junio C Hamano322c6242015-03-23 21:32:46671core.commentChar::
Junio C Hamano3f2ed6f2013-02-04 19:24:09672Commands such as `commit` and `tag` that lets you edit
673messages consider a line that begins with this character
674commented, and removes them after the editor returns
675(default '#').
Junio C Hamanoe1aeb5e2014-06-06 19:16:29676+
677If set to "auto", `git-commit` would select a character that is not
678the beginning character of any line in existing commit messages.
Junio C Hamano3f2ed6f2013-02-04 19:24:09679
Junio C Hamano1dbca522015-05-22 20:48:55680core.packedRefsTimeout::
681The length of time, in milliseconds, to retry when trying to
682lock the `packed-refs` file. Value 0 means not to retry at
683all; -1 means to try indefinitely. Default is 1000 (i.e.,
684retry for 1 second).
685
Junio C Hamano6231f822011-10-24 05:18:52686sequence.editor::
Junio C Hamano778a3412013-03-28 23:24:30687Text editor used by `git rebase -i` for editing the rebase instruction file.
Junio C Hamano6231f822011-10-24 05:18:52688The value is meant to be interpreted by the shell when it is used.
689It can be overridden by the `GIT_SEQUENCE_EDITOR` environment variable.
690When not configured the default commit message editor is used instead.
691
Junio C Hamano28d8ede2007-07-05 05:51:38692core.pager::
Junio C Hamano0e0e0d22013-09-12 23:25:03693Text viewer for use by Git commands (e.g., 'less'). The value
694is meant to be interpreted by the shell. The order of preference
695is the `$GIT_PAGER` environment variable, then `core.pager`
696configuration, then `$PAGER`, and then the default chosen at
697compile time (usually 'less').
698+
Junio C Hamanoe1aeb5e2014-06-06 19:16:29699When the `LESS` environment variable is unset, Git sets it to `FRX`
Junio C Hamano0e0e0d22013-09-12 23:25:03700(if `LESS` environment variable is set, Git does not change it at
701all). If you want to selectively override Git's default setting
Junio C Hamanoe1aeb5e2014-06-06 19:16:29702for `LESS`, you can set `core.pager` to e.g. `less -S`. This will
Junio C Hamano0e0e0d22013-09-12 23:25:03703be passed to the shell by Git, which will translate the final
Junio C Hamanoe1aeb5e2014-06-06 19:16:29704command to `LESS=FRX less -S`. The environment does not set the
705`S` option but the command line does, instructing less to truncate
706long lines. Similarly, setting `core.pager` to `less -+F` will
707deactivate the `F` option specified by the environment from the
708command-line, deactivating the "quit if one screen" behavior of
709`less`. One can specifically activate some flags for particular
710commands: for example, setting `pager.blame` to `less -S` enables
711line truncation only for `git blame`.
Junio C Hamanobc8d4782014-01-13 23:35:50712+
713Likewise, when the `LV` environment variable is unset, Git sets it
714to `-c`. You can override this setting by exporting `LV` with
715another value or setting `core.pager` to `lv +c`.
Junio C Hamano28d8ede2007-07-05 05:51:38716
Junio C Hamano942b35e2007-12-09 10:19:33717core.whitespace::
718A comma separated list of common whitespace problems to
Junio C Hamano1aa40d22010-01-21 17:46:43719notice. 'git diff' will use `color.diff.whitespace` to
720highlight them, and 'git apply --whitespace=error' will
Junio C Hamano3db8b412008-07-26 06:45:59721consider them as errors. You can prefix `-` to disable
722any of them (e.g. `-trailing-space`):
Junio C Hamano942b35e2007-12-09 10:19:33723+
Junio C Hamanob71a22d2009-10-17 08:23:47724* `blank-at-eol` treats trailing whitespaces at the end of the line
Junio C Hamano942b35e2007-12-09 10:19:33725 as an error (enabled by default).
726* `space-before-tab` treats a space character that appears immediately
727 before a tab character in the initial indent part of the line as an
728 error (enabled by default).
Junio C Hamano281fd392012-09-17 23:57:41729* `indent-with-non-tab` treats a line that is indented with space
730 characters instead of the equivalent tabs as an error (not enabled by
731 default).
Junio C Hamanocb39aea2010-05-09 07:24:48732* `tab-in-indent` treats a tab character in the initial indent part of
733 the line as an error (not enabled by default).
Junio C Hamanob71a22d2009-10-17 08:23:47734* `blank-at-eof` treats blank lines added at the end of file as an error
735 (enabled by default).
736* `trailing-space` is a short-hand to cover both `blank-at-eol` and
737 `blank-at-eof`.
Junio C Hamano601f3e52008-02-25 08:40:42738* `cr-at-eol` treats a carriage-return at the end of line as
739 part of the line terminator, i.e. with it, `trailing-space`
740 does not trigger if the character before such a carriage-return
741 is not a whitespace (not enabled by default).
Junio C Hamanoeef01fe2010-12-13 08:31:58742* `tabwidth=<n>` tells how many character positions a tab occupies; this
Junio C Hamano076ffcc2013-02-06 05:13:21743 is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent`
Junio C Hamanoeef01fe2010-12-13 08:31:58744 errors. The default tab width is 8. Allowed values are 1 to 63.
Junio C Hamano942b35e2007-12-09 10:19:33745
Junio C Hamano322c6242015-03-23 21:32:46746core.fsyncObjectFiles::
Junio C Hamano9eb57532008-06-26 06:33:46747This boolean will enable 'fsync()' when writing object files.
748+
749This is a total waste of time and effort on a filesystem that orders
750data writes properly, but can be useful for filesystems that do not use
751journalling (traditional UNIX filesystems) or that only journal metadata
752and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").
753
Junio C Hamano322c6242015-03-23 21:32:46754core.preloadIndex::
Junio C Hamano610d1762008-11-28 06:27:13755Enable parallel index preload for operations like 'git diff'
756+
757This can speed up operations like 'git diff' and 'git status' especially
758on filesystems like NFS that have weak caching semantics and thus
Junio C Hamanoc8c398a2014-06-16 21:14:05759relatively high IO latencies. When enabled, Git will do the
Junio C Hamano610d1762008-11-28 06:27:13760index comparison to the filesystem data in parallel, allowing
Junio C Hamanoc8c398a2014-06-16 21:14:05761overlapping IO's. Defaults to true.
Junio C Hamano610d1762008-11-28 06:27:13762
Junio C Hamanoa9499de2009-04-30 03:38:48763core.createObject::
764You can set this to 'link', in which case a hardlink followed by
765a delete of the source are used to make sure that object creation
766will not overwrite existing objects.
767+
768On some file system/operating system combinations, this is unreliable.
769Set this config setting to 'rename' there; However, This will remove the
770check that makes sure that existing object files will not get overwritten.
Junio C Hamanoe91ea772009-04-26 01:41:41771
Junio C Hamano3b70d3c2009-11-21 17:37:37772core.notesRef::
773When showing commit messages, also show notes which are stored in
Junio C Hamanoa574a092010-06-13 19:57:10774the given ref. The ref must be fully qualified. If the given
775ref does not exist, it is not an error but means that no
776notes should be printed.
Junio C Hamano3b70d3c2009-11-21 17:37:37777+
Junio C Hamanoa574a092010-06-13 19:57:10778This setting defaults to "refs/notes/commits", and it can be overridden by
Junio C Hamano042f2142016-06-27 18:05:05779the `GIT_NOTES_REF` environment variable. See linkgit:git-notes[1].
Junio C Hamano3b70d3c2009-11-21 17:37:37780
Junio C Hamano3c8d6702010-01-13 23:09:03781core.sparseCheckout::
782Enable "sparse checkout" feature. See section "Sparse checkout" in
783linkgit:git-read-tree[1] for more information.
784
Junio C Hamano6371b0e2011-03-23 23:36:21785core.abbrev::
786Set the length object names are abbreviated to. If unspecified,
787many commands abbreviate to 7 hexdigits, which may not be enough
788for abbreviated object names to stay unique for sufficiently long
789time.
790
Junio C Hamano60186642010-12-02 14:18:26791add.ignoreErrors::
Junio C Hamanobe087982015-02-22 21:29:39792add.ignore-errors (deprecated)::
Junio C Hamano1aa40d22010-01-21 17:46:43793Tells 'git add' to continue adding files when some files cannot be
Junio C Hamano92d80372016-07-13 22:00:05794added due to indexing errors. Equivalent to the `--ignore-errors`
Junio C Hamanobe087982015-02-22 21:29:39795option of linkgit:git-add[1]. `add.ignore-errors` is deprecated,
796as it does not follow the usual naming convention for configuration
797variables.
Junio C Hamano3d141512009-06-01 01:22:40798
Junio C Hamano33db4372006-06-07 19:51:45799alias.*::
Junio C Hamano35738e82008-01-07 07:55:46800Command aliases for the linkgit:git[1] command wrapper - e.g.
Junio C Hamano33db4372006-06-07 19:51:45801after defining "alias.last = cat-file commit HEAD", the invocation
802"git last" is equivalent to "git cat-file commit HEAD". To avoid
Junio C Hamanof1d14802006-06-08 00:48:17803confusion and troubles with script usage, aliases that
Junio C Hamano076ffcc2013-02-06 05:13:21804hide existing Git commands are ignored. Arguments are split by
Junio C Hamanof1d14802006-06-08 00:48:17805spaces, the usual shell quoting and escaping is supported.
Junio C Hamano2efd5e42014-11-10 22:38:52806A quote pair or a backslash can be used to quote them.
Junio C Hamanodbb64592007-09-01 11:17:39807+
808If the alias expansion is prefixed with an exclamation point,
809it will be treated as a shell command. For example, defining
810"alias.new = !gitk --all --not ORIG_HEAD", the invocation
811"git new" is equivalent to running the shell command
Junio C Hamano48bc1ce2009-07-09 16:49:19812"gitk --all --not ORIG_HEAD". Note that shell commands will be
813executed from the top-level directory of a repository, which may
814not necessarily be the current directory.
Junio C Hamano042f2142016-06-27 18:05:05815`GIT_PREFIX` is set as returned by running 'git rev-parse --show-prefix'
Junio C Hamano5f2627d2011-05-06 20:23:48816from the original current directory. See linkgit:git-rev-parse[1].
Junio C Hamano9cb74f22007-02-12 04:15:05817
Junio C Hamanocaa712a2010-03-11 01:17:35818am.keepcr::
819If true, git-am will call git-mailsplit for patches in mbox format
Junio C Hamano92d80372016-07-13 22:00:05820with parameter `--keep-cr`. In this case git-mailsplit will
Junio C Hamano619596a2010-08-18 22:15:35821not remove `\r` from lines ending with `\r\n`. Can be overridden
Junio C Hamano92d80372016-07-13 22:00:05822by giving `--no-keep-cr` from the command line.
Junio C Hamanocaa712a2010-03-11 01:17:35823See linkgit:git-am[1], linkgit:git-mailsplit[1].
824
Junio C Hamano9c512872015-08-12 21:59:25825am.threeWay::
826By default, `git am` will fail if the patch does not apply cleanly. When
827set to true, this setting tells `git am` to fall back on 3-way merge if
828the patch records the identity of blobs it is supposed to apply to and
829we have those blobs available locally (equivalent to giving the `--3way`
830option from the command line). Defaults to `false`.
831See linkgit:git-am[1].
832
Junio C Hamano322c6242015-03-23 21:32:46833apply.ignoreWhitespace::
Junio C Hamano1aa40d22010-01-21 17:46:43834When set to 'change', tells 'git apply' to ignore changes in
Junio C Hamano92d80372016-07-13 22:00:05835whitespace, in the same way as the `--ignore-space-change`
Junio C Hamanofe24db02009-08-22 05:10:47836option.
Junio C Hamano1aa40d22010-01-21 17:46:43837When set to one of: no, none, never, false tells 'git apply' to
Junio C Hamanofe24db02009-08-22 05:10:47838respect all whitespace differences.
839See linkgit:git-apply[1].
840
Junio C Hamano07824ce2006-04-25 07:36:54841apply.whitespace::
Junio C Hamano1aa40d22010-01-21 17:46:43842Tells 'git apply' how to handle whitespaces, in the same way
Junio C Hamano92d80372016-07-13 22:00:05843as the `--whitespace` option. See linkgit:git-apply[1].
Junio C Hamano07824ce2006-04-25 07:36:54844
Junio C Hamano322c6242015-03-23 21:32:46845branch.autoSetupMerge::
Junio C Hamano1aa40d22010-01-21 17:46:43846Tells 'git branch' and 'git checkout' to set up new branches
Junio C Hamano24bc09a2008-02-28 00:27:44847so that linkgit:git-pull[1] will appropriately merge from the
848starting point branch. Note that even if this option is not set,
Junio C Hamano7fd84172007-05-24 07:00:32849this behavior can be chosen per-branch using the `--track`
Junio C Hamano24bc09a2008-02-28 00:27:44850and `--no-track` options. The valid settings are: `false` -- no
851automatic setup is done; `true` -- automatic setup is done when the
Junio C Hamano97bcb482010-11-25 03:16:07852starting point is a remote-tracking branch; `always` --
853automatic setup is done when the starting point is either a
854local branch or remote-tracking
Junio C Hamano24bc09a2008-02-28 00:27:44855branch. This option defaults to true.
Junio C Hamano7fd84172007-05-24 07:00:32856
Junio C Hamano322c6242015-03-23 21:32:46857branch.autoSetupRebase::
Junio C Hamano1aa40d22010-01-21 17:46:43858When a new branch is created with 'git branch' or 'git checkout'
Junio C Hamano076ffcc2013-02-06 05:13:21859that tracks another branch, this variable tells Git to set
Junio C Hamano869bb802008-05-12 00:29:47860up pull to rebase instead of merge (see "branch.<name>.rebase").
861When `never`, rebase is never automatically set to true.
862When `local`, rebase is set to true for tracked branches of
863other local branches.
864When `remote`, rebase is set to true for tracked branches of
Junio C Hamano97bcb482010-11-25 03:16:07865remote-tracking branches.
Junio C Hamano869bb802008-05-12 00:29:47866When `always`, rebase will be set to true for all tracking
867branches.
Junio C Hamano322c6242015-03-23 21:32:46868See "branch.autoSetupMerge" for details on how to set up a
Junio C Hamano869bb802008-05-12 00:29:47869branch to track another branch.
870This option defaults to never.
871
Junio C Hamano47c1e3c2006-09-25 04:45:55872branch.<name>.remote::
Junio C Hamano63b6fdb2013-04-07 23:37:13873When on branch <name>, it tells 'git fetch' and 'git push'
874which remote to fetch from/push to. The remote to push to
Junio C Hamano322c6242015-03-23 21:32:46875may be overridden with `remote.pushDefault` (for all branches).
Junio C Hamano63b6fdb2013-04-07 23:37:13876The remote to push to, for the current branch, may be further
Junio C Hamano322c6242015-03-23 21:32:46877overridden by `branch.<name>.pushRemote`. If no remote is
Junio C Hamano63b6fdb2013-04-07 23:37:13878configured, or if you are not on any branch, it defaults to
Junio C Hamano322c6242015-03-23 21:32:46879`origin` for fetching and `remote.pushDefault` for pushing.
Junio C Hamano238ce9c2013-10-23 21:56:38880Additionally, `.` (a period) is the current local repository
881(a dot-repository), see `branch.<name>.merge`'s final note below.
Junio C Hamano63b6fdb2013-04-07 23:37:13882
Junio C Hamano322c6242015-03-23 21:32:46883branch.<name>.pushRemote::
Junio C Hamano63b6fdb2013-04-07 23:37:13884When on branch <name>, it overrides `branch.<name>.remote` for
Junio C Hamano322c6242015-03-23 21:32:46885pushing. It also overrides `remote.pushDefault` for pushing
Junio C Hamano63b6fdb2013-04-07 23:37:13886from branch <name>. When you pull from one place (e.g. your
887upstream) and push to another place (e.g. your own publishing
Junio C Hamano322c6242015-03-23 21:32:46888repository), you would want to set `remote.pushDefault` to
Junio C Hamano63b6fdb2013-04-07 23:37:13889specify the remote to push to for all branches, and use this
890option to override it for a specific branch.
Junio C Hamano47c1e3c2006-09-25 04:45:55891
892branch.<name>.merge::
Junio C Hamano0706c802009-03-30 22:34:19893Defines, together with branch.<name>.remote, the upstream branch
Junio C Hamanob02377c2011-04-28 22:26:02894for the given branch. It tells 'git fetch'/'git pull'/'git rebase' which
Junio C Hamano1aa40d22010-01-21 17:46:43895branch to merge and can also affect 'git push' (see push.default).
896When in branch <name>, it tells 'git fetch' the default
Junio C Hamanoc2b47092007-10-25 06:50:31897refspec to be marked for merging in FETCH_HEAD. The value is
898handled like the remote part of a refspec, and must match a
899ref which is fetched from the remote given by
900"branch.<name>.remote".
Junio C Hamano1aa40d22010-01-21 17:46:43901The merge information is used by 'git pull' (which at first calls
902'git fetch') to lookup the default branch for merging. Without
903this option, 'git pull' defaults to merge the first refspec fetched.
Junio C Hamano96010b22006-12-09 21:15:46904Specify multiple values to get an octopus merge.
Junio C Hamano1aa40d22010-01-21 17:46:43905If you wish to setup 'git pull' so that it merges into <name> from
Junio C Hamano6e149c02007-03-16 10:21:07906another branch in the local repository, you can point
Junio C Hamano238ce9c2013-10-23 21:56:38907branch.<name>.merge to the desired branch, and use the relative path
908setting `.` (a period) for branch.<name>.remote.
Junio C Hamano47c1e3c2006-09-25 04:45:55909
Junio C Hamano322c6242015-03-23 21:32:46910branch.<name>.mergeOptions::
Junio C Hamano1b50ce92007-10-03 12:05:53911Sets default options for merging into branch <name>. The syntax and
Junio C Hamanoc0e55e72009-10-10 00:56:29912supported options are the same as those of linkgit:git-merge[1], but
Junio C Hamano1b50ce92007-10-03 12:05:53913option values containing whitespace characters are currently not
914supported.
915
Junio C Hamano0c999702007-12-03 09:57:55916branch.<name>.rebase::
917When true, rebase the branch <name> on top of the fetched branch,
Junio C Hamano6d76d612008-05-09 05:46:08918instead of merging the default branch from the default remote when
Junio C Hamano515ab1d2011-12-09 23:41:20919"git pull" is run. See "pull.rebase" for doing this in a non
920branch-specific manner.
921+
Junio C Hamano7db630e2015-09-17 20:26:22922When preserve, also pass `--preserve-merges` along to 'git rebase'
923so that locally committed merge commits will not be flattened
924by running 'git pull'.
Junio C Hamanocf4a1742013-09-11 22:57:50925+
Junio C Hamano289d7e82016-01-27 00:20:38926When the value is `interactive`, the rebase is run in interactive mode.
927+
Junio C Hamano515ab1d2011-12-09 23:41:20928*NOTE*: this is a possibly dangerous operation; do *not* use
929it unless you understand the implications (see linkgit:git-rebase[1]
930for details).
Junio C Hamano0c999702007-12-03 09:57:55931
Junio C Hamano46247182013-01-09 20:50:28932branch.<name>.description::
933Branch description, can be edited with
934`git branch --edit-description`. Branch description is
935automatically added in the format-patch cover letter or
936request-pull summary.
937
Junio C Hamano8760ea62008-03-14 08:58:45938browser.<tool>.cmd::
939Specify the command to invoke the specified browser. The
940specified command is evaluated in shell with the URLs passed
Junio C Hamano360e3a12011-07-13 23:51:56941as arguments. (See linkgit:git-web{litdd}browse[1].)
Junio C Hamano8760ea62008-03-14 08:58:45942
Junio C Hamanoe35a6fc2008-01-29 09:46:27943browser.<tool>.path::
944Override the path for the given tool that may be used to
Junio C Hamano92d80372016-07-13 22:00:05945browse HTML help (see `-w` option in linkgit:git-help[1]) or a
Junio C Hamanoe35a6fc2008-01-29 09:46:27946working repository in gitweb (see linkgit:git-instaweb[1]).
947
Junio C Hamano47b9acd2007-04-24 07:34:34948clean.requireForce::
Junio C Hamanoe6f28d02013-09-17 21:34:00949A boolean to make git-clean do nothing unless given -f,
950-i or -n. Defaults to true.
Junio C Hamano47b9acd2007-04-24 07:34:34951
Junio C Hamanoeb692952007-01-03 22:02:12952color.branch::
953A boolean to enable/disable color in the output of
Junio C Hamano35738e82008-01-07 07:55:46954linkgit:git-branch[1]. May be set to `always`,
Junio C Hamano0fc8cd92007-12-06 03:26:21955`false` (or `never`) or `auto` (or `true`), in which case colors are used
Junio C Hamanoeb692952007-01-03 22:02:12956only when the output is to a terminal. Defaults to false.
957
958color.branch.<slot>::
959Use customized color for branch coloration. `<slot>` is one of
960`current` (the current branch), `local` (a local branch),
Junio C Hamano76927822013-04-19 21:26:57961`remote` (a remote-tracking branch in refs/remotes/),
962`upstream` (upstream tracking branch), `plain` (other
Junio C Hamano5a702332007-01-28 20:55:22963refs).
Junio C Hamanoeb692952007-01-03 22:02:12964
Junio C Hamano3f403b02006-12-13 10:14:13965color.diff::
Junio C Hamano5f2627d2011-05-06 20:23:48966Whether to use ANSI escape sequences to add color to patches.
967If this is set to `always`, linkgit:git-diff[1],
968linkgit:git-log[1], and linkgit:git-show[1] will use color
969for all patches. If it is set to `true` or `auto`, those
970commands will only use color when output is to the terminal.
971Defaults to false.
972+
Junio C Hamanod75148a2014-04-08 19:48:38973This does not affect linkgit:git-format-patch[1] or the
Junio C Hamano5f2627d2011-05-06 20:23:48974'git-diff-{asterisk}' plumbing commands. Can be overridden on the
975command line with the `--color[=<when>]` option.
Junio C Hamano9ae1a062006-07-10 08:12:34976
Junio C Hamano3f403b02006-12-13 10:14:13977color.diff.<slot>::
Junio C Hamano5a702332007-01-28 20:55:22978Use customized color for diff colorization. `<slot>` specifies
979which part of the patch to use the specified color, and is one
Junio C Hamano8c5d5942015-06-11 19:37:48980of `context` (context text - `plain` is a historical synonym),
981`meta` (metainformation), `frag`
Junio C Hamano2bd8a742009-12-01 21:16:59982(hunk header), 'func' (function in hunk header), `old` (removed lines),
983`new` (added lines), `commit` (commit headers), or `whitespace`
Junio C Hamano07622622015-03-20 21:47:26984(highlighting whitespace errors).
Junio C Hamano9ae1a062006-07-10 08:12:34985
Junio C Hamano7d449522010-07-01 00:08:51986color.decorate.<slot>::
987Use customized color for 'git log --decorate' output. `<slot>` is one
988of `branch`, `remoteBranch`, `tag`, `stash` or `HEAD` for local
Junio C Hamano97bcb482010-11-25 03:16:07989branches, remote-tracking branches, tags, stash and HEAD, respectively.
Junio C Hamano7d449522010-07-01 00:08:51990
Junio C Hamanod257cff2009-03-18 05:27:16991color.grep::
992When set to `always`, always highlight matches. When `false` (or
993`never`), never. When set to `true` or `auto`, use color only
994when the output is written to the terminal. Defaults to `false`.
995
Junio C Hamano0299d922010-03-20 20:59:31996color.grep.<slot>::
997Use customized color for grep colorization. `<slot>` specifies which
998part of the line to use the specified color, and is one of
999+
1000--
1001`context`;;
1002non-matching text in context lines (when using `-A`, `-B`, or `-C`)
1003`filename`;;
1004filename prefix (when not using `-h`)
1005`function`;;
1006function name lines (when using `-p`)
1007`linenumber`;;
1008line number prefix (when using `-n`)
1009`match`;;
Junio C Hamanoc14e6ad2014-10-31 20:25:531010matching text (same as setting `matchContext` and `matchSelected`)
1011`matchContext`;;
1012matching text in context lines
1013`matchSelected`;;
1014matching text in selected lines
Junio C Hamano0299d922010-03-20 20:59:311015`selected`;;
1016non-matching text in selected lines
1017`separator`;;
1018separators between fields on a line (`:`, `-`, and `=`)
1019and between hunks (`--`)
1020--
Junio C Hamanod257cff2009-03-18 05:27:161021
Junio C Hamano00b8b632007-12-07 09:50:491022color.interactive::
Junio C Hamano35738e82008-01-07 07:55:461023When set to `always`, always use colors for interactive prompts
Junio C Hamano58f587a2013-07-22 19:20:591024and displays (such as those used by "git-add --interactive" and
1025"git-clean --interactive"). When false (or `never`), never.
1026When set to `true` or `auto`, use colors only when the output is
1027to the terminal. Defaults to false.
Junio C Hamano00b8b632007-12-07 09:50:491028
1029color.interactive.<slot>::
Junio C Hamano58f587a2013-07-22 19:20:591030Use customized color for 'git add --interactive' and 'git clean
1031--interactive' output. `<slot>` may be `prompt`, `header`, `help`
1032or `error`, for four distinct types of normal output from
Junio C Hamano07622622015-03-20 21:47:261033interactive commands.
Junio C Hamano00b8b632007-12-07 09:50:491034
Junio C Hamanoe7935c42006-12-13 21:32:171035color.pager::
1036A boolean to enable/disable colored output when the pager is in
1037use (default is true).
1038
Junio C Hamano322c6242015-03-23 21:32:461039color.showBranch::
Junio C Hamano52ba2952009-05-18 17:43:021040A boolean to enable/disable color in the output of
1041linkgit:git-show-branch[1]. May be set to `always`,
1042`false` (or `never`) or `auto` (or `true`), in which case colors are used
1043only when the output is to a terminal. Defaults to false.
1044
Junio C Hamanoe7935c42006-12-13 21:32:171045color.status::
1046A boolean to enable/disable color in the output of
Junio C Hamano35738e82008-01-07 07:55:461047linkgit:git-status[1]. May be set to `always`,
Junio C Hamano0fc8cd92007-12-06 03:26:211048`false` (or `never`) or `auto` (or `true`), in which case colors are used
Junio C Hamanoe7935c42006-12-13 21:32:171049only when the output is to a terminal. Defaults to false.
1050
1051color.status.<slot>::
1052Use customized color for status colorization. `<slot>` is
1053one of `header` (the header text of the status message),
Junio C Hamano7d23f5e2006-12-16 07:44:041054`added` or `updated` (files which are added but not committed),
1055`changed` (files which are changed but not added in the index),
Junio C Hamano076ffcc2013-02-06 05:13:211056`untracked` (files which are not tracked by Git),
Junio C Hamano5992a252015-03-17 23:39:301057`branch` (the current branch),
Junio C Hamanob713ff12008-05-24 01:12:301058`nobranch` (the color the 'no branch' warning is shown in, defaulting
Junio C Hamano5992a252015-03-17 23:39:301059to red), or
1060`unmerged` (files which have unmerged changes).
Junio C Hamanoe7935c42006-12-13 21:32:171061
Junio C Hamano83d46a22008-02-21 02:29:421062color.ui::
Junio C Hamano5f2627d2011-05-06 20:23:481063This variable determines the default value for variables such
1064as `color.diff` and `color.grep` that control the use of color
1065per command family. Its scope will expand as more commands learn
1066configuration to set a default for the `--color` option. Set it
Junio C Hamanofa1d3492013-06-20 23:39:431067to `false` or `never` if you prefer Git commands not to use
1068color unless enabled explicitly with some other configuration
1069or the `--color` option. Set it to `always` if you want all
1070output not intended for machine consumption to use color, to
1071`true` or `auto` (this is the default since Git 1.8.4) if you
1072want such output to use color when written to the terminal.
Junio C Hamano83d46a22008-02-21 02:29:421073
Junio C Hamano22700fb2012-05-03 23:07:251074column.ui::
1075Specify whether supported commands should output in columns.
1076This variable consists of a list of tokens separated by spaces
1077or commas:
1078+
Junio C Hamanoa1952302013-07-01 21:31:181079These options control when the feature should be enabled
1080(defaults to 'never'):
1081+
Junio C Hamano22700fb2012-05-03 23:07:251082--
1083`always`;;
1084always show in columns
1085`never`;;
1086never show in columns
1087`auto`;;
1088show in columns if the output is to the terminal
Junio C Hamanoa1952302013-07-01 21:31:181089--
1090+
1091These options control layout (defaults to 'column'). Setting any
1092of these implies 'always' if none of 'always', 'never', or 'auto' are
1093specified.
1094+
1095--
Junio C Hamano22700fb2012-05-03 23:07:251096`column`;;
Junio C Hamanoa1952302013-07-01 21:31:181097fill columns before rows
Junio C Hamano22700fb2012-05-03 23:07:251098`row`;;
1099fill rows before columns
1100`plain`;;
1101show in one column
Junio C Hamanoa1952302013-07-01 21:31:181102--
1103+
1104Finally, these options can be combined with a layout option (defaults
1105to 'nodense'):
1106+
1107--
Junio C Hamano22700fb2012-05-03 23:07:251108`dense`;;
1109make unequal size columns to utilize more space
1110`nodense`;;
1111make equal size columns
1112--
Junio C Hamano22700fb2012-05-03 23:07:251113
1114column.branch::
1115Specify whether to output branch listing in `git branch` in columns.
1116See `column.ui` for details.
1117
Junio C Hamano58f587a2013-07-22 19:20:591118column.clean::
1119Specify the layout when list items in `git clean -i`, which always
1120shows files and directories in columns. See `column.ui` for details.
1121
Junio C Hamano22700fb2012-05-03 23:07:251122column.status::
1123Specify whether to output untracked files in `git status` in columns.
1124See `column.ui` for details.
1125
1126column.tag::
1127Specify whether to output tag listing in `git tag` in columns.
1128See `column.ui` for details.
1129
Junio C Hamanoce836cc2013-01-21 02:01:531130commit.cleanup::
1131This setting overrides the default of the `--cleanup` option in
1132`git commit`. See linkgit:git-commit[1] for details. Changing the
1133default can be useful when you always want to keep lines that begin
1134with comment character `#` in your log message, in which case you
1135would do `git config commit.cleanup whitespace` (note that you will
1136have to remove the help lines that begin with `#` in the commit log
1137template yourself, if you do this).
1138
Junio C Hamano322c6242015-03-23 21:32:461139commit.gpgSign::
Junio C Hamano5b3533d2014-02-27 23:07:151140
1141A boolean to specify whether all commits should be GPG signed.
1142Use of this option when doing operations such as rebase can
1143result in a large number of commits being signed. It may be
1144convenient to use an agent to avoid typing your GPG passphrase
1145several times.
1146
Junio C Hamanod0d892c2010-01-24 20:06:291147commit.status::
Junio C Hamano6ce6b6c2010-01-18 01:25:501148A boolean to enable/disable inclusion of status information in the
1149commit message template when using an editor to prepare the commit
1150message. Defaults to true.
1151
Junio C Hamano4653c6f2008-11-26 22:50:201152commit.template::
Junio C Hamano198b1f12016-05-17 22:27:241153Specify the pathname of a file to use as the template for
1154new commit messages.
Junio C Hamano4653c6f2008-11-26 22:50:201155
Junio C Hamanof2a3a752016-05-23 22:54:391156commit.verbose::
1157A boolean or int to specify the level of verbose with `git commit`.
1158See linkgit:git-commit[1].
1159
Junio C Hamano0df92712011-12-21 22:30:441160credential.helper::
1161Specify an external helper to be called when a username or
1162password credential is needed; the helper may consult external
Junio C Hamano4ba4a782016-04-03 19:11:321163storage to avoid prompting the user for the credentials. Note
1164that multiple helpers may be defined. See linkgit:gitcredentials[7]
1165for details.
Junio C Hamano0df92712011-12-21 22:30:441166
1167credential.useHttpPath::
1168When acquiring credentials, consider the "path" component of an http
1169or https URL to be important. Defaults to false. See
1170linkgit:gitcredentials[7] for more information.
1171
1172credential.username::
1173If no username is set for a network authentication, use this username
1174by default. See credential.<context>.* below, and
1175linkgit:gitcredentials[7].
1176
1177credential.<url>.*::
1178Any of the credential.* options above can be applied selectively to
1179some credentials. For example "credential.https://example.com.username"
1180would set the default username only for https connections to
1181example.com. See linkgit:gitcredentials[7] for details on how URLs are
1182matched.
1183
Junio C Hamanoabb8a052015-12-04 22:43:111184credentialCache.ignoreSIGHUP::
1185Tell git-credential-cache--daemon to ignore SIGHUP, instead of quitting.
1186
Junio C Hamano209ebe82011-04-27 21:09:591187include::diff-config.txt[]
Junio C Hamano3bd66e92009-04-18 06:17:561188
1189difftool.<tool>.path::
1190Override the path for the given tool. This is useful in case
1191your tool is not in the PATH.
1192
1193difftool.<tool>.cmd::
1194Specify the command to invoke the specified diff tool.
1195The specified command is evaluated in shell with the following
1196variables available: 'LOCAL' is set to the name of the temporary
1197file containing the contents of the diff pre-image and 'REMOTE'
1198is set to the name of the temporary file containing the contents
1199of the diff post-image.
1200
1201difftool.prompt::
1202Prompt before each invocation of the diff tool.
1203
Junio C Hamanofedb1b42016-06-20 21:23:401204fastimport.unpackLimit::
1205If the number of objects imported by linkgit:git-fast-import[1]
1206is below this limit, then the objects will be unpacked into
1207loose object files. However if the number of imported objects
1208equals or exceeds this limit then the pack will be stored as a
1209pack. Storing the pack from a fast-import can make the import
1210operation complete faster, especially on slow filesystems. If
1211not set, the value of `transfer.unpackLimit` is used instead.
1212
Junio C Hamano0d75e872010-12-17 06:57:261213fetch.recurseSubmodules::
Junio C Hamano5cd15182011-04-05 00:21:101214This option can be either set to a boolean value or to 'on-demand'.
1215Setting it to a boolean changes the behavior of fetch and pull to
1216unconditionally recurse into submodules when set to true or to not
1217recurse at all when set to false. When set to 'on-demand' (the default
1218value), fetch and pull will only recurse into a populated submodule
1219when its superproject retrieves a commit that updates the submodule's
1220reference.
Junio C Hamano0d75e872010-12-17 06:57:261221
Junio C Hamano8fb66e52011-10-05 20:59:511222fetch.fsckObjects::
1223If it is set to true, git-fetch-pack will check all fetched
1224objects. It will abort in the case of a malformed object or a
1225broken link. The result of an abort are only dangling objects.
1226Defaults to false. If not set, the value of `transfer.fsckObjects`
1227is used instead.
1228
Junio C Hamano54ea8d32007-01-25 07:59:481229fetch.unpackLimit::
Junio C Hamano076ffcc2013-02-06 05:13:211230If the number of objects fetched over the Git native
Junio C Hamano54ea8d32007-01-25 07:59:481231transfer is below this
1232limit, then the objects will be unpacked into loose object
1233files. However if the number of received objects equals or
1234exceeds this limit then the received pack will be stored as
1235a pack, after adding any missing delta bases. Storing the
1236pack from a push can make the push operation complete faster,
Junio C Hamanoe77b0152008-01-12 06:44:171237especially on slow filesystems. If not set, the value of
1238`transfer.unpackLimit` is used instead.
Junio C Hamano54ea8d32007-01-25 07:59:481239
Junio C Hamano8eac2682013-09-09 22:35:201240fetch.prune::
1241If true, fetch will automatically behave as if the `--prune`
1242option was given on the command line. See also `remote.<name>.prune`.
1243
Junio C Hamano1a1b8472016-07-19 21:37:131244fetch.output::
1245Control how ref update status is printed. Valid values are
1246`full` and `compact`. Default value is `full`. See section
1247OUTPUT in linkgit:git-fetch[1] for detail.
1248
Junio C Hamanof4581102009-04-25 08:29:591249format.attach::
1250Enable multipart/mixed attachments as the default for
1251'format-patch'. The value can also be a double quoted string
1252which will enable attachments as the default and set the
1253value as the boundary. See the --attach option in
1254linkgit:git-format-patch[1].
1255
Junio C Hamanoaf182942016-08-10 20:46:261256format.from::
1257Provides the default value for the `--from` option to format-patch.
1258Accepts a boolean value, or a name and email address. If false,
1259format-patch defaults to `--no-from`, using commit authors directly in
1260the "From:" field of patch mails. If true, format-patch defaults to
1261`--from`, using your committer identity in the "From:" field of patch
1262mails and including a "From:" field in the body of the patch mail if
1263different. If set to a non-boolean value, format-patch uses that
1264value instead of your committer identity. Defaults to false.
1265
Junio C Hamano8c5802d2007-11-15 00:13:361266format.numbered::
Junio C Hamano7d06a8a2008-10-20 05:42:331267A boolean which can enable or disable sequence numbers in patch
1268subjects. It defaults to "auto" which enables it only if there
1269is more than one patch. It can be enabled or disabled for all
1270messages by setting it to "true" or "false". See --numbered
1271option in linkgit:git-format-patch[1].
Junio C Hamano8c5802d2007-11-15 00:13:361272
Junio C Hamano07824ce2006-04-25 07:36:541273format.headers::
1274Additional email headers to include in a patch to be submitted
Junio C Hamano35738e82008-01-07 07:55:461275by mail. See linkgit:git-format-patch[1].
Junio C Hamano07824ce2006-04-25 07:36:541276
Junio C Hamano70664a02010-07-13 22:48:051277format.to::
Junio C Hamanof4581102009-04-25 08:29:591278format.cc::
Junio C Hamano70664a02010-07-13 22:48:051279Additional recipients to include in a patch to be submitted
1280by mail. See the --to and --cc options in
1281linkgit:git-format-patch[1].
Junio C Hamanof4581102009-04-25 08:29:591282
Junio C Hamano322c6242015-03-23 21:32:461283format.subjectPrefix::
Junio C Hamanof4581102009-04-25 08:29:591284The default for format-patch is to output files with the '[PATCH]'
1285subject prefix. Use this variable to change that prefix.
1286
Junio C Hamano89a57342010-06-22 23:22:551287format.signature::
1288The default for format-patch is to output a signature containing
Junio C Hamano076ffcc2013-02-06 05:13:211289the Git version number. Use this variable to change that default.
Junio C Hamano89a57342010-06-22 23:22:551290Set this variable to the empty string ("") to suppress
1291signature generation.
1292
Junio C Hamano322c6242015-03-23 21:32:461293format.signatureFile::
Junio C Hamanoc8c398a2014-06-16 21:14:051294Works just like format.signature except the contents of the
1295file specified by this variable will be used as the signature.
1296
Junio C Hamanod4c8e112007-03-04 10:32:381297format.suffix::
1298The default for format-patch is to output files with the suffix
1299`.patch`. Use this variable to change that suffix (make sure to
1300include the dot if you want it).
1301
Junio C Hamano86bcccc2008-03-08 09:33:551302format.pretty::
1303The default pretty format for log/show/whatchanged command,
1304See linkgit:git-log[1], linkgit:git-show[1],
1305linkgit:git-whatchanged[1].
1306
Junio C Hamanoea6a7642009-03-11 23:56:191307format.thread::
Junio C Hamano1aa40d22010-01-21 17:46:431308The default threading style for 'git format-patch'. Can be
Junio C Hamanob141a922010-01-10 19:55:141309a boolean value, or `shallow` or `deep`. `shallow` threading
1310makes every mail a reply to the head of the series,
Junio C Hamanoea6a7642009-03-11 23:56:191311where the head is chosen from the cover letter, the
Junio C Hamanob76a6862012-05-02 22:02:461312`--in-reply-to`, and the first patch mail, in this order.
Junio C Hamanof4581102009-04-25 08:29:591313`deep` threading makes every mail a reply to the previous one.
Junio C Hamanoea6a7642009-03-11 23:56:191314A true boolean value is the same as `shallow`, and a false
1315value disables threading.
1316
Junio C Hamano322c6242015-03-23 21:32:461317format.signOff::
Junio C Hamano804a9742013-04-28 23:10:311318A boolean value which lets you enable the `-s/--signoff` option of
1319format-patch by default. *Note:* Adding the Signed-off-by: line to a
1320patch should be a conscious act and means that you certify you have
1321the rights to submit this work under the same open source license.
1322Please see the 'SubmittingPatches' document for further discussion.
Junio C Hamano5f9a6f02009-04-06 08:26:561323
Junio C Hamanoea3b7522013-04-18 19:37:531324format.coverLetter::
1325A boolean that controls whether to generate a cover-letter when
1326format-patch is invoked, but in addition can be set to "auto", to
1327generate a cover-letter only when there's more than one patch.
1328
Junio C Hamano289d7e82016-01-27 00:20:381329format.outputDirectory::
1330Set a custom directory to store the resulting files instead of the
1331current working directory.
1332
Junio C Hamanof2a3a752016-05-23 22:54:391333format.useAutoBase::
1334A boolean value which lets you enable the `--base=auto` option of
1335format-patch by default.
1336
Junio C Hamano209ebe82011-04-27 21:09:591337filter.<driver>.clean::
1338The command which is used to convert the content of a worktree
1339file to a blob upon checkin. See linkgit:gitattributes[5] for
1340details.
1341
1342filter.<driver>.smudge::
1343The command which is used to convert the content of a blob
1344object to a worktree file upon checkout. See
1345linkgit:gitattributes[5] for details.
1346
Junio C Hamanod7ed4042015-08-03 19:43:001347fsck.<msg-id>::
1348Allows overriding the message type (error, warn or ignore) of a
1349specific message ID such as `missingEmail`.
1350+
1351For convenience, fsck prefixes the error/warning with the message ID,
1352e.g. "missingEmail: invalid author/committer line - missing email" means
1353that setting `fsck.missingEmail = ignore` will hide that issue.
1354+
1355This feature is intended to support working with legacy repositories
1356which cannot be repaired without disruptive changes.
1357
1358fsck.skipList::
1359The path to a sorted list of object names (i.e. one SHA-1 per
1360line) that are known to be broken in a non-fatal way and should
1361be ignored. This feature is useful when an established project
1362should be accepted despite early commits containing errors that
1363can be safely ignored such as invalid committer email addresses.
1364Note: corrupt objects cannot be skipped with this setting.
1365
Junio C Hamano624dd4c2014-04-03 21:56:301366gc.aggressiveDepth::
1367The depth parameter used in the delta compression
1368algorithm used by 'git gc --aggressive'. This defaults
Junio C Hamano53800482016-09-21 23:26:431369to 50.
Junio C Hamano624dd4c2014-04-03 21:56:301370
Junio C Hamanof2ce2972007-05-20 19:12:091371gc.aggressiveWindow::
1372The window size parameter used in the delta compression
Junio C Hamano1aa40d22010-01-21 17:46:431373algorithm used by 'git gc --aggressive'. This defaults
Junio C Hamanob04bb3f2010-04-14 14:07:361374to 250.
Junio C Hamanof2ce2972007-05-20 19:12:091375
Junio C Hamano1b50ce92007-10-03 12:05:531376gc.auto::
1377When there are approximately more than this many loose
1378objects in the repository, `git gc --auto` will pack them.
1379Some Porcelain commands use this command to perform a
Junio C Hamanoe77b0152008-01-12 06:44:171380light-weight garbage collection from time to time. The
1381default value is 6700. Setting this to 0 disables it.
Junio C Hamano1b50ce92007-10-03 12:05:531382
Junio C Hamano322c6242015-03-23 21:32:461383gc.autoPackLimit::
Junio C Hamano1b50ce92007-10-03 12:05:531384When there are more than this many packs that are not
1385marked with `*.keep` file in the repository, `git gc
Junio C Hamanoe77b0152008-01-12 06:44:171386--auto` consolidates them into one larger pack. The
Junio C Hamano25c0b702008-03-23 09:41:371387default value is 50. Setting this to 0 disables it.
Junio C Hamano1b50ce92007-10-03 12:05:531388
Junio C Hamano322c6242015-03-23 21:32:461389gc.autoDetach::
Junio C Hamanofb5ffde2014-11-04 22:38:561390Make `git gc --auto` return immediately and run in background
Junio C Hamano08ef8c22014-03-10 14:53:441391if the system supports it. Default is true.
1392
Junio C Hamano322c6242015-03-23 21:32:461393gc.packRefs::
Junio C Hamanob141a922010-01-10 19:55:141394Running `git pack-refs` in a repository renders it
1395unclonable by Git versions prior to 1.5.1.2 over dumb
1396transports such as HTTP. This variable determines whether
Junio C Hamanocdd1c332010-12-20 10:08:001397'git gc' runs `git pack-refs`. This can be set to `notbare`
Junio C Hamanob141a922010-01-10 19:55:141398to enable it within all non-bare repos or it can be set to a
1399boolean value. The default is `true`.
Junio C Hamano9d52e572007-02-13 23:48:201400
Junio C Hamano322c6242015-03-23 21:32:461401gc.pruneExpire::
Junio C Hamano1aa40d22010-01-21 17:46:431402When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'.
Junio C Hamanoa3148f52009-01-14 08:49:571403Override the grace period with this config variable. The value
Junio C Hamano9c512872015-08-12 21:59:251404"now" may be used to disable this grace period and always prune
1405unreachable objects immediately, or "never" may be used to
1406suppress pruning.
Junio C Hamano09a926d2008-03-13 07:55:291407
Junio C Hamano9c512872015-08-12 21:59:251408gc.worktreePruneExpire::
1409When 'git gc' is run, it calls
1410'git worktree prune --expire 3.months.ago'.
1411This config variable can be used to set a different grace
1412period. The value "now" may be used to disable the grace
Junio C Hamano198b1f12016-05-17 22:27:241413period and prune `$GIT_DIR/worktrees` immediately, or "never"
Junio C Hamano9c512872015-08-12 21:59:251414may be used to suppress pruning.
Junio C Hamano4cc4a842015-05-11 22:41:021415
Junio C Hamano322c6242015-03-23 21:32:461416gc.reflogExpire::
1417gc.<pattern>.reflogExpire::
Junio C Hamano1aa40d22010-01-21 17:46:431418'git reflog expire' removes reflog entries older than
Junio C Hamano9c512872015-08-12 21:59:251419this time; defaults to 90 days. The value "now" expires all
1420entries immediately, and "never" suppresses expiration
1421altogether. With "<pattern>" (e.g.
Junio C Hamanocc7636a2010-05-21 14:57:531422"refs/stash") in the middle the setting applies only to
1423the refs that match the <pattern>.
Junio C Hamano74640642006-12-27 10:59:551424
Junio C Hamano322c6242015-03-23 21:32:461425gc.reflogExpireUnreachable::
Junio C Hamanoa1746be2015-08-26 23:07:071426gc.<pattern>.reflogExpireUnreachable::
Junio C Hamano1aa40d22010-01-21 17:46:431427'git reflog expire' removes reflog entries older than
Junio C Hamano74640642006-12-27 10:59:551428this time and are not reachable from the current tip;
Junio C Hamano9c512872015-08-12 21:59:251429defaults to 30 days. The value "now" expires all entries
1430immediately, and "never" suppresses expiration altogether.
1431With "<pattern>" (e.g. "refs/stash")
Junio C Hamanocc7636a2010-05-21 14:57:531432in the middle, the setting applies only to the refs that
1433match the <pattern>.
Junio C Hamano74640642006-12-27 10:59:551434
Junio C Hamano322c6242015-03-23 21:32:461435gc.rerereResolved::
Junio C Hamano74640642006-12-27 10:59:551436Records of conflicted merge you resolved earlier are
Junio C Hamano1aa40d22010-01-21 17:46:431437kept for this many days when 'git rerere gc' is run.
Junio C Hamano35738e82008-01-07 07:55:461438The default is 60 days. See linkgit:git-rerere[1].
Junio C Hamano74640642006-12-27 10:59:551439
Junio C Hamano322c6242015-03-23 21:32:461440gc.rerereUnresolved::
Junio C Hamano74640642006-12-27 10:59:551441Records of conflicted merge you have not resolved are
Junio C Hamano1aa40d22010-01-21 17:46:431442kept for this many days when 'git rerere gc' is run.
Junio C Hamano35738e82008-01-07 07:55:461443The default is 15 days. See linkgit:git-rerere[1].
Junio C Hamano74640642006-12-27 10:59:551444
Junio C Hamano322c6242015-03-23 21:32:461445gitcvs.commitMsgAnnotation::
Junio C Hamanoa3148f52009-01-14 08:49:571446Append this string to each commit message. Set to empty string
1447to disable this feature. Defaults to "via git-CVS emulator".
1448
Junio C Hamano07824ce2006-04-25 07:36:541449gitcvs.enabled::
Junio C Hamanoa6387422007-08-25 03:54:271450Whether the CVS server interface is enabled for this repository.
Junio C Hamano35738e82008-01-07 07:55:461451See linkgit:git-cvsserver[1].
Junio C Hamano07824ce2006-04-25 07:36:541452
Junio C Hamano322c6242015-03-23 21:32:461453gitcvs.logFile::
Junio C Hamanoa6387422007-08-25 03:54:271454Path to a log file where the CVS server interface well... logs
Junio C Hamano35738e82008-01-07 07:55:461455various stuff. See linkgit:git-cvsserver[1].
Junio C Hamano07824ce2006-04-25 07:36:541456
Junio C Hamano17bd2272008-09-01 06:11:171457gitcvs.usecrlfattr::
Junio C Hamanobb88cf42010-06-21 15:23:551458If true, the server will look up the end-of-line conversion
Junio C Hamano92d80372016-07-13 22:00:051459attributes for files to determine the `-k` modes to use. If
Junio C Hamano076ffcc2013-02-06 05:13:211460the attributes force Git to treat a file as text,
Junio C Hamano92d80372016-07-13 22:00:051461the `-k` mode will be left blank so CVS clients will
Junio C Hamanobb88cf42010-06-21 15:23:551462treat it as text. If they suppress text conversion, the file
Junio C Hamanocb1c44f2008-08-06 06:19:331463will be set with '-kb' mode, which suppresses any newline munging
Junio C Hamanobb88cf42010-06-21 15:23:551464the client might otherwise do. If the attributes do not allow
Junio C Hamano042f2142016-06-27 18:05:051465the file type to be determined, then `gitcvs.allBinary` is
Junio C Hamanobb88cf42010-06-21 15:23:551466used. See linkgit:gitattributes[5].
Junio C Hamanodfccbb02008-05-26 01:16:141467
Junio C Hamano322c6242015-03-23 21:32:461468gitcvs.allBinary::
Junio C Hamano042f2142016-06-27 18:05:051469This is used if `gitcvs.usecrlfattr` does not resolve
Junio C Hamanodfccbb02008-05-26 01:16:141470the correct '-kb' mode to use. If true, all
1471unresolved files are sent to the client in
1472mode '-kb'. This causes the client to treat them
1473as binary files, which suppresses any newline munging it
1474otherwise might do. Alternatively, if it is set to "guess",
1475then the contents of the file are examined to decide if
Junio C Hamano042f2142016-06-27 18:05:051476it is binary, similar to `core.autocrlf`.
Junio C Hamanoa2ad99e2007-04-18 09:57:041477
Junio C Hamano322c6242015-03-23 21:32:461478gitcvs.dbName::
Junio C Hamanoa2ad99e2007-04-18 09:57:041479Database used by git-cvsserver to cache revision information
Junio C Hamano076ffcc2013-02-06 05:13:211480derived from the Git repository. The exact meaning depends on the
Junio C Hamanoa2ad99e2007-04-18 09:57:041481used database driver, for SQLite (which is the default driver) this
1482is a filename. Supports variable substitution (see
Junio C Hamano35738e82008-01-07 07:55:461483linkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).
Junio C Hamanoa2ad99e2007-04-18 09:57:041484Default: '%Ggitcvs.%m.sqlite'
1485
Junio C Hamano322c6242015-03-23 21:32:461486gitcvs.dbDriver::
Junio C Hamanoa2ad99e2007-04-18 09:57:041487Used Perl DBI driver. You can specify any available driver
Junio C Hamano804a9742013-04-28 23:10:311488for this here, but it might not work. git-cvsserver is tested
Junio C Hamanoa2ad99e2007-04-18 09:57:041489with 'DBD::SQLite', reported to work with 'DBD::Pg', and
1490reported *not* to work with 'DBD::mysql'. Experimental feature.
1491May not contain double colons (`:`). Default: 'SQLite'.
Junio C Hamano35738e82008-01-07 07:55:461492See linkgit:git-cvsserver[1].
Junio C Hamanod9e0e5d2007-04-14 16:22:041493
Junio C Hamano322c6242015-03-23 21:32:461494gitcvs.dbUser, gitcvs.dbPass::
Junio C Hamano042f2142016-06-27 18:05:051495Database user and password. Only useful if setting `gitcvs.dbDriver`,
Junio C Hamanoa2ad99e2007-04-18 09:57:041496since SQLite has no concept of database users and/or passwords.
Junio C Hamano322c6242015-03-23 21:32:461497'gitcvs.dbUser' supports variable substitution (see
Junio C Hamano35738e82008-01-07 07:55:461498linkgit:git-cvsserver[1] for details).
Junio C Hamanoa2ad99e2007-04-18 09:57:041499
Junio C Hamanoa74efce2008-04-02 08:39:081500gitcvs.dbTableNamePrefix::
1501Database table name prefix. Prepended to the names of any
1502database tables used, allowing a single database to be used
1503for several repositories. Supports variable substitution (see
1504linkgit:git-cvsserver[1] for details). Any non-alphabetic
1505characters will be replaced with underscores.
1506
Junio C Hamano042f2142016-06-27 18:05:051507All gitcvs variables except for `gitcvs.usecrlfattr` and
1508`gitcvs.allBinary` can also be specified as
Junio C Hamanodfccbb02008-05-26 01:16:141509'gitcvs.<access_method>.<varname>' (where 'access_method'
Junio C Hamanoa6387422007-08-25 03:54:271510is one of "ext" and "pserver") to make them apply only for the given
1511access method.
Junio C Hamanoa2ad99e2007-04-18 09:57:041512
Junio C Hamano11821ed2011-10-19 18:42:091513gitweb.category::
1514gitweb.description::
1515gitweb.owner::
1516gitweb.url::
1517See linkgit:gitweb[1] for description.
1518
1519gitweb.avatar::
1520gitweb.blame::
1521gitweb.grep::
1522gitweb.highlight::
1523gitweb.patches::
1524gitweb.pickaxe::
1525gitweb.remote_heads::
Junio C Hamano322c6242015-03-23 21:32:461526gitweb.showSizes::
Junio C Hamano11821ed2011-10-19 18:42:091527gitweb.snapshot::
1528See linkgit:gitweb.conf[5] for description.
1529
Junio C Hamanoa03ac862011-04-02 04:32:291530grep.lineNumber::
Junio C Hamano92d80372016-07-13 22:00:051531If set to true, enable `-n` option by default.
Junio C Hamanoa03ac862011-04-02 04:32:291532
Junio C Hamanoa00504d2012-08-27 21:11:231533grep.patternType::
1534Set the default matching behavior. Using a value of 'basic', 'extended',
Junio C Hamano92d80372016-07-13 22:00:051535'fixed', or 'perl' will enable the `--basic-regexp`, `--extended-regexp`,
1536`--fixed-strings`, or `--perl-regexp` option accordingly, while the
Junio C Hamanoa00504d2012-08-27 21:11:231537value 'default' will return to the default matching behavior.
1538
Junio C Hamanoa03ac862011-04-02 04:32:291539grep.extendedRegexp::
Junio C Hamano92d80372016-07-13 22:00:051540If set to true, enable `--extended-regexp` option by default. This
Junio C Hamano042f2142016-06-27 18:05:051541option is ignored when the `grep.patternType` option is set to a value
Junio C Hamanoa00504d2012-08-27 21:11:231542other than 'default'.
Junio C Hamanoa03ac862011-04-02 04:32:291543
Junio C Hamanoa7da1ba2016-01-13 00:19:451544grep.threads::
1545Number of grep worker threads to use.
1546See `grep.threads` in linkgit:git-grep[1] for more information.
1547
Junio C Hamano4e6ba272016-01-20 23:23:191548grep.fallbackToNoIndex::
1549If set to true, fall back to git grep --no-index if git grep
1550is executed outside of a git repository. Defaults to false.
1551
Junio C Hamano4fd24422012-01-06 21:52:431552gpg.program::
Junio C Hamano198b1f12016-05-17 22:27:241553Use this custom program instead of "`gpg`" found on `$PATH` when
Junio C Hamano4fd24422012-01-06 21:52:431554making or verifying a PGP signature. The program must support the
Junio C Hamanoe1aeb5e2014-06-06 19:16:291555same command-line interface as GPG, namely, to verify a detached
Junio C Hamano198b1f12016-05-17 22:27:241556signature, "`gpg --verify $file - <$signature`" is run, and the
Junio C Hamano4fd24422012-01-06 21:52:431557program is expected to signal a good signature by exiting with
Junio C Hamanofb5ffde2014-11-04 22:38:561558code 0, and to generate an ASCII-armored detached signature, the
Junio C Hamano198b1f12016-05-17 22:27:241559standard input of "`gpg -bsau $key`" is fed with the contents to be
Junio C Hamano4fd24422012-01-06 21:52:431560signed, and the program is expected to send the result to its
1561standard output.
1562
Junio C Hamano322c6242015-03-23 21:32:461563gui.commitMsgWidth::
Junio C Hamano6d76d612008-05-09 05:46:081564Defines how wide the commit message window is in the
1565linkgit:git-gui[1]. "75" is the default.
1566
Junio C Hamano322c6242015-03-23 21:32:461567gui.diffContext::
Junio C Hamano6d76d612008-05-09 05:46:081568Specifies how many context lines should be used in calls to diff
1569made by the linkgit:git-gui[1]. The default is "5".
1570
Junio C Hamano322c6242015-03-23 21:32:461571gui.displayUntracked::
Junio C Hamano198b1f12016-05-17 22:27:241572Determines if linkgit:git-gui[1] shows untracked files
Junio C Hamano796c55f2014-05-02 21:45:151573in the file list. The default is "true".
1574
Junio C Hamanod3452a02008-11-15 08:07:551575gui.encoding::
1576Specifies the default encoding to use for displaying of
1577file contents in linkgit:git-gui[1] and linkgit:gitk[1].
1578It can be overridden by setting the 'encoding' attribute
1579for relevant files (see linkgit:gitattributes[5]).
1580If this option is not set, the tools default to the
1581locale encoding.
1582
Junio C Hamano322c6242015-03-23 21:32:461583gui.matchTrackingBranch::
Junio C Hamano6d76d612008-05-09 05:46:081584Determines if new branches created with linkgit:git-gui[1] should
1585default to tracking remote branches with matching names or
1586not. Default: "false".
1587
Junio C Hamano322c6242015-03-23 21:32:461588gui.newBranchTemplate::
Junio C Hamano6d76d612008-05-09 05:46:081589Is used as suggested name when creating new branches using the
1590linkgit:git-gui[1].
1591
Junio C Hamano322c6242015-03-23 21:32:461592gui.pruneDuringFetch::
Junio C Hamano97bcb482010-11-25 03:16:071593"true" if linkgit:git-gui[1] should prune remote-tracking branches when
Junio C Hamano6d76d612008-05-09 05:46:081594performing a fetch. The default value is "false".
1595
1596gui.trustmtime::
1597Determines if linkgit:git-gui[1] should trust the file modification
1598timestamp or not. By default the timestamps are not trusted.
1599
Junio C Hamano322c6242015-03-23 21:32:461600gui.spellingDictionary::
Junio C Hamano6d76d612008-05-09 05:46:081601Specifies the dictionary used for spell checking commit messages in
1602the linkgit:git-gui[1]. When set to "none" spell checking is turned
1603off.
1604
Junio C Hamano322c6242015-03-23 21:32:461605gui.fastCopyBlame::
Junio C Hamano1aa40d22010-01-21 17:46:431606If true, 'git gui blame' uses `-C` instead of `-C -C` for original
Junio C Hamanod3452a02008-11-15 08:07:551607location detection. It makes blame significantly faster on huge
1608repositories at the expense of less thorough copy detection.
1609
Junio C Hamano322c6242015-03-23 21:32:461610gui.copyBlameThreshold::
Junio C Hamano610d1762008-11-28 06:27:131611Specifies the threshold to use in 'git gui blame' original location
Junio C Hamanod3452a02008-11-15 08:07:551612detection, measured in alphanumeric characters. See the
1613linkgit:git-blame[1] manual for more information on copy detection.
1614
1615gui.blamehistoryctx::
1616Specifies the radius of history context in days to show in
1617linkgit:gitk[1] for the selected commit, when the `Show History
1618Context` menu item is invoked from 'git gui blame'. If this
1619variable is set to zero, the whole history is shown.
1620
Junio C Hamano92d312a2008-12-15 07:22:201621guitool.<name>.cmd::
1622Specifies the shell command line to execute when the corresponding item
1623of the linkgit:git-gui[1] `Tools` menu is invoked. This option is
1624mandatory for every tool. The command is executed from the root of
1625the working directory, and in the environment it receives the name of
Junio C Hamano042f2142016-06-27 18:05:051626the tool as `GIT_GUITOOL`, the name of the currently selected file as
Junio C Hamano92d312a2008-12-15 07:22:201627'FILENAME', and the name of the current branch as 'CUR_BRANCH' (if
1628the head is detached, 'CUR_BRANCH' is empty).
1629
Junio C Hamano322c6242015-03-23 21:32:461630guitool.<name>.needsFile::
Junio C Hamano92d312a2008-12-15 07:22:201631Run the tool only if a diff is selected in the GUI. It guarantees
1632that 'FILENAME' is not empty.
1633
Junio C Hamano322c6242015-03-23 21:32:461634guitool.<name>.noConsole::
Junio C Hamano92d312a2008-12-15 07:22:201635Run the command silently, without creating a window to display its
1636output.
1637
Junio C Hamano322c6242015-03-23 21:32:461638guitool.<name>.noRescan::
Junio C Hamano92d312a2008-12-15 07:22:201639Don't rescan the working directory for changes after the tool
1640finishes execution.
1641
1642guitool.<name>.confirm::
1643Show a confirmation dialog before actually running the tool.
1644
Junio C Hamano322c6242015-03-23 21:32:461645guitool.<name>.argPrompt::
Junio C Hamano92d312a2008-12-15 07:22:201646Request a string argument from the user, and pass it to the tool
Junio C Hamano042f2142016-06-27 18:05:051647through the `ARGS` environment variable. Since requesting an
Junio C Hamano92d312a2008-12-15 07:22:201648argument implies confirmation, the 'confirm' option has no effect
1649if this is enabled. If the option is set to 'true', 'yes', or '1',
1650the dialog uses a built-in generic prompt; otherwise the exact
1651value of the variable is used.
1652
Junio C Hamano322c6242015-03-23 21:32:461653guitool.<name>.revPrompt::
Junio C Hamano92d312a2008-12-15 07:22:201654Request a single valid revision from the user, and set the
Junio C Hamano042f2142016-06-27 18:05:051655`REVISION` environment variable. In other aspects this option
Junio C Hamano322c6242015-03-23 21:32:461656is similar to 'argPrompt', and can be used together with it.
Junio C Hamano92d312a2008-12-15 07:22:201657
Junio C Hamano322c6242015-03-23 21:32:461658guitool.<name>.revUnmerged::
1659Show only unmerged branches in the 'revPrompt' subdialog.
Junio C Hamano92d312a2008-12-15 07:22:201660This is useful for tools similar to merge or rebase, but not
1661for things like checkout or reset.
1662
1663guitool.<name>.title::
1664Specifies the title to use for the prompt dialog. The default
1665is the tool name.
1666
1667guitool.<name>.prompt::
1668Specifies the general prompt string to display at the top of
Junio C Hamano322c6242015-03-23 21:32:461669the dialog, before subsections for 'argPrompt' and 'revPrompt'.
Junio C Hamano92d312a2008-12-15 07:22:201670The default value includes the actual command.
1671
Junio C Hamano4e272312008-01-08 09:13:211672help.browser::
1673Specify the browser that will be used to display help in the
1674'web' format. See linkgit:git-help[1].
1675
1676help.format::
1677Override the default help format used by linkgit:git-help[1].
1678Values 'man', 'info', 'web' and 'html' are supported. 'man' is
1679the default. 'web' and 'html' are the same.
1680
Junio C Hamano322c6242015-03-23 21:32:461681help.autoCorrect::
Junio C Hamanof24b8062008-09-09 01:34:391682Automatically correct and execute mistyped commands after
1683waiting for the given number of deciseconds (0.1 sec). If more
1684than one command can be deduced from the entered text, nothing
1685will be executed. If the value of this option is negative,
1686the corrected command will be executed immediately. If the
1687value is 0 - the command will be just shown but not executed.
1688This is the default.
1689
Junio C Hamano322c6242015-03-23 21:32:461690help.htmlPath::
Junio C Hamano5dd5fae2013-01-18 21:06:491691Specify the path where the HTML documentation resides. File system paths
1692and URLs are supported. HTML pages will be prefixed with this path when
1693help is displayed in the 'web' format. This defaults to the documentation
1694path of your Git installation.
1695
Junio C Hamano58256872007-12-04 08:31:131696http.proxy::
Junio C Hamano3dd93922012-03-05 07:49:111697Override the HTTP proxy, normally configured using the 'http_proxy',
Junio C Hamanoffe10ca2016-02-04 00:44:231698'https_proxy', and 'all_proxy' environment variables (see `curl(1)`). In
1699addition to the syntax understood by curl, it is possible to specify a
1700proxy string with a user name but no password, in which case git will
1701attempt to acquire one in the same way it does for other credentials. See
1702linkgit:gitcredentials[7] for more information. The syntax thus is
1703'[protocol://][user[:password]@]proxyhost[:port]'. This can be overridden
1704on a per-remote basis; see remote.<name>.proxy
1705
1706http.proxyAuthMethod::
1707Set the method with which to authenticate against the HTTP proxy. This
1708only takes effect if the configured proxy string contains a user name part
1709(i.e. is of the form 'user@host' or 'user@host:port'). This can be
1710overridden on a per-remote basis; see `remote.<name>.proxyAuthMethod`.
Junio C Hamano042f2142016-06-27 18:05:051711Both can be overridden by the `GIT_HTTP_PROXY_AUTHMETHOD` environment
Junio C Hamanoffe10ca2016-02-04 00:44:231712variable. Possible values are:
1713+
1714--
1715* `anyauth` - Automatically pick a suitable authentication method. It is
1716 assumed that the proxy answers an unauthenticated request with a 407
1717 status code and one or more Proxy-authenticate headers with supported
1718 authentication methods. This is the default.
1719* `basic` - HTTP Basic authentication
1720* `digest` - HTTP Digest authentication; this prevents the password from being
1721 transmitted to the proxy in clear text
1722* `negotiate` - GSS-Negotiate authentication (compare the --negotiate option
1723 of `curl(1)`)
1724* `ntlm` - NTLM authentication (compare the --ntlm option of `curl(1)`)
1725--
Junio C Hamano58256872007-12-04 08:31:131726
Junio C Hamano3fcdd072016-02-24 23:41:081727http.emptyAuth::
1728Attempt authentication without seeking a username or password. This
1729can be used to attempt GSS-Negotiate authentication without specifying
1730a username in the URL, as libcurl normally requires a username for
1731authentication.
1732
Junio C Hamanoccdabca2016-05-06 22:27:091733http.extraHeader::
1734Pass an additional HTTP header when communicating with a server. If
1735more than one such entry exists, all of them are added as extra
1736headers. To allow overriding the settings inherited from the system
1737config, an empty value will reset the extra headers to the empty list.
1738
Junio C Hamano322c6242015-03-23 21:32:461739http.cookieFile::
Junio C Hamano198b1f12016-05-17 22:27:241740The pathname of a file containing previously stored cookie lines,
1741which should be used
Junio C Hamano076ffcc2013-02-06 05:13:211742in the Git http session, if they match the server. The file format
Junio C Hamano4c4b0122011-06-30 01:19:321743of the file to read cookies from should be plain HTTP headers or
Junio C Hamano198b1f12016-05-17 22:27:241744the Netscape/Mozilla cookie file format (see `curl(1)`).
1745NOTE that the file specified with http.cookieFile is used only as
Junio C Hamano8eac2682013-09-09 22:35:201746input unless http.saveCookies is set.
1747
Junio C Hamano322c6242015-03-23 21:32:461748http.saveCookies::
Junio C Hamano8eac2682013-09-09 22:35:201749If set, store cookies received during requests to the file specified by
Junio C Hamano322c6242015-03-23 21:32:461750http.cookieFile. Has no effect if http.cookieFile is unset.
Junio C Hamano4c4b0122011-06-30 01:19:321751
Junio C Hamanoa1746be2015-08-26 23:07:071752http.sslVersion::
1753The SSL version to use when negotiating an SSL connection, if you
1754want to force the default. The available and default version
1755depend on whether libcurl was built against NSS or OpenSSL and the
1756particular configuration of the crypto library in use. Internally
1757this sets the 'CURLOPT_SSL_VERSION' option; see the libcurl
1758documentation for more details on the format of this option and
1759for the ssl version supported. Actually the possible values of
1760this option are:
1761
1762- sslv2
1763- sslv3
1764- tlsv1
1765- tlsv1.0
1766- tlsv1.1
1767- tlsv1.2
1768
1769+
Junio C Hamano042f2142016-06-27 18:05:051770Can be overridden by the `GIT_SSL_VERSION` environment variable.
Junio C Hamanoa1746be2015-08-26 23:07:071771To force git to use libcurl's default ssl version and ignore any
Junio C Hamano042f2142016-06-27 18:05:051772explicit http.sslversion option, set `GIT_SSL_VERSION` to the
Junio C Hamanoa1746be2015-08-26 23:07:071773empty string.
1774
Junio C Hamano1dbca522015-05-22 20:48:551775http.sslCipherList::
1776 A list of SSL ciphers to use when negotiating an SSL connection.
1777 The available ciphers depend on whether libcurl was built against
1778 NSS or OpenSSL and the particular configuration of the crypto
1779 library in use. Internally this sets the 'CURLOPT_SSL_CIPHER_LIST'
1780 option; see the libcurl documentation for more details on the format
1781 of this list.
1782+
Junio C Hamano042f2142016-06-27 18:05:051783Can be overridden by the `GIT_SSL_CIPHER_LIST` environment variable.
Junio C Hamano1dbca522015-05-22 20:48:551784To force git to use libcurl's default cipher list and ignore any
Junio C Hamano042f2142016-06-27 18:05:051785explicit http.sslCipherList option, set `GIT_SSL_CIPHER_LIST` to the
Junio C Hamano1dbca522015-05-22 20:48:551786empty string.
1787
Junio C Hamano07824ce2006-04-25 07:36:541788http.sslVerify::
1789Whether to verify the SSL certificate when fetching or pushing
Junio C Hamano042f2142016-06-27 18:05:051790over HTTPS. Can be overridden by the `GIT_SSL_NO_VERIFY` environment
Junio C Hamano07824ce2006-04-25 07:36:541791variable.
1792
1793http.sslCert::
1794File containing the SSL certificate when fetching or pushing
Junio C Hamano042f2142016-06-27 18:05:051795over HTTPS. Can be overridden by the `GIT_SSL_CERT` environment
Junio C Hamano07824ce2006-04-25 07:36:541796variable.
1797
1798http.sslKey::
1799File containing the SSL private key when fetching or pushing
Junio C Hamano042f2142016-06-27 18:05:051800over HTTPS. Can be overridden by the `GIT_SSL_KEY` environment
Junio C Hamano07824ce2006-04-25 07:36:541801variable.
1802
Junio C Hamano48bc1ce2009-07-09 16:49:191803http.sslCertPasswordProtected::
Junio C Hamano076ffcc2013-02-06 05:13:211804Enable Git's password prompt for the SSL certificate. Otherwise
Junio C Hamano48bc1ce2009-07-09 16:49:191805OpenSSL will prompt the user, possibly many times, if the
1806certificate or private key is encrypted. Can be overridden by the
Junio C Hamano042f2142016-06-27 18:05:051807`GIT_SSL_CERT_PASSWORD_PROTECTED` environment variable.
Junio C Hamano48bc1ce2009-07-09 16:49:191808
Junio C Hamano07824ce2006-04-25 07:36:541809http.sslCAInfo::
1810File containing the certificates to verify the peer with when
Junio C Hamano341071d2006-06-04 07:24:481811fetching or pushing over HTTPS. Can be overridden by the
Junio C Hamano042f2142016-06-27 18:05:051812`GIT_SSL_CAINFO` environment variable.
Junio C Hamano07824ce2006-04-25 07:36:541813
1814http.sslCAPath::
1815Path containing files with the CA certificates to verify the peer
Junio C Hamano33db4372006-06-07 19:51:451816with when fetching or pushing over HTTPS. Can be overridden
Junio C Hamano042f2142016-06-27 18:05:051817by the `GIT_SSL_CAPATH` environment variable.
Junio C Hamano07824ce2006-04-25 07:36:541818
Junio C Hamano3fcdd072016-02-24 23:41:081819http.pinnedpubkey::
1820Public key of the https service. It may either be the filename of
1821a PEM or DER encoded public key file or a string starting with
1822'sha256//' followed by the base64 encoded sha256 hash of the
1823public key. See also libcurl 'CURLOPT_PINNEDPUBLICKEY'. git will
1824exit with an error if this option is set but not supported by
1825cURL.
1826
Junio C Hamano76927822013-04-19 21:26:571827http.sslTry::
1828Attempt to use AUTH SSL/TLS and encrypted data transfers
1829when connecting via regular FTP protocol. This might be needed
1830if the FTP server requires it for security reasons or you wish
1831to connect securely whenever remote FTP server supports it.
1832Default is false since it might trigger certificate verification
1833errors on misconfigured servers.
1834
Junio C Hamano07824ce2006-04-25 07:36:541835http.maxRequests::
Junio C Hamano341071d2006-06-04 07:24:481836How many HTTP requests to launch in parallel. Can be overridden
Junio C Hamano042f2142016-06-27 18:05:051837by the `GIT_HTTP_MAX_REQUESTS` environment variable. Default is 5.
Junio C Hamano07824ce2006-04-25 07:36:541838
Junio C Hamanob141a922010-01-10 19:55:141839http.minSessions::
1840The number of curl sessions (counted across slots) to be kept across
1841requests. They will not be ended with curl_easy_cleanup() until
1842http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this
1843value will be capped at 1. Defaults to 1.
1844
Junio C Hamano3b70d3c2009-11-21 17:37:371845http.postBuffer::
1846Maximum size in bytes of the buffer used by smart HTTP
1847transports when POSTing data to the remote system.
1848For requests larger than this buffer size, HTTP/1.1 and
1849Transfer-Encoding: chunked is used to avoid creating a
1850massive pack file locally. Default is 1 MiB, which is
1851sufficient for most requests.
1852
Junio C Hamano07824ce2006-04-25 07:36:541853http.lowSpeedLimit, http.lowSpeedTime::
1854If the HTTP transfer speed is less than 'http.lowSpeedLimit'
1855for longer than 'http.lowSpeedTime' seconds, the transfer is aborted.
Junio C Hamano042f2142016-06-27 18:05:051856Can be overridden by the `GIT_HTTP_LOW_SPEED_LIMIT` and
1857`GIT_HTTP_LOW_SPEED_TIME` environment variables.
Junio C Hamano07824ce2006-04-25 07:36:541858
Junio C Hamanof1dcdfe2006-09-29 08:10:511859http.noEPSV::
1860A boolean which disables using of EPSV ftp command by curl.
Junio C Hamanod9e0e5d2007-04-14 16:22:041861This can helpful with some "poor" ftp servers which don't
Junio C Hamano042f2142016-06-27 18:05:051862support EPSV mode. Can be overridden by the `GIT_CURL_FTP_NO_EPSV`
Junio C Hamanof1dcdfe2006-09-29 08:10:511863environment variable. Default is false (curl will use EPSV).
1864
Junio C Hamano322c6242015-03-23 21:32:461865http.userAgent::
Junio C Hamano53ba6d02010-08-22 07:25:121866The HTTP USER_AGENT string presented to an HTTP server. The default
Junio C Hamano076ffcc2013-02-06 05:13:211867value represents the version of the client Git such as git/1.7.1.
Junio C Hamano53ba6d02010-08-22 07:25:121868This option allows you to override this value to a more common value
1869such as Mozilla/4.0. This may be necessary, for instance, if
1870connecting through a firewall that restricts HTTP connections to a set
1871of common USER_AGENT strings (but not including those like git/1.7.1).
Junio C Hamano042f2142016-06-27 18:05:051872Can be overridden by the `GIT_HTTP_USER_AGENT` environment variable.
Junio C Hamano53ba6d02010-08-22 07:25:121873
Junio C Hamano8eac2682013-09-09 22:35:201874http.<url>.*::
Junio C Hamanofb5ffde2014-11-04 22:38:561875Any of the http.* options above can be applied selectively to some URLs.
Junio C Hamano8eac2682013-09-09 22:35:201876For a config key to match a URL, each element of the config key is
1877compared to that of the URL, in the following order:
1878+
1879--
1880. Scheme (e.g., `https` in `https://example.com/`). This field
1881 must match exactly between the config key and the URL.
1882
1883. Host/domain name (e.g., `example.com` in `https://example.com/`).
1884 This field must match exactly between the config key and the URL.
1885
1886. Port number (e.g., `8080` in `http://example.com:8080/`).
1887 This field must match exactly between the config key and the URL.
1888 Omitted port numbers are automatically converted to the correct
1889 default for the scheme before matching.
1890
1891. Path (e.g., `repo.git` in `https://example.com/repo.git`). The
1892 path field of the config key must match the path field of the URL
1893 either exactly or as a prefix of slash-delimited path elements. This means
1894 a config key with path `foo/` matches URL path `foo/bar`. A prefix can only
1895 match on a slash (`/`) boundary. Longer matches take precedence (so a config
1896 key with path `foo/bar` is a better match to URL path `foo/bar` than a config
1897 key with just path `foo/`).
1898
1899. User name (e.g., `user` in `https://user@example.com/repo.git`). If
1900 the config key has a user name it must match the user name in the
1901 URL exactly. If the config key does not have a user name, that
1902 config key will match a URL with any user name (including none),
1903 but at a lower precedence than a config key with a user name.
1904--
1905+
1906The list above is ordered by decreasing precedence; a URL that matches
1907a config key's path is preferred to one that matches its user name. For example,
1908if the URL is `https://user@example.com/foo/bar` a config key match of
1909`https://example.com/foo` will be preferred over a config key match of
1910`https://user@example.com`.
1911+
1912All URLs are normalized before attempting any matching (the password part,
1913if embedded in the URL, is always ignored for matching purposes) so that
Junio C Hamanofb5ffde2014-11-04 22:38:561914equivalent URLs that are simply spelled differently will match properly.
1915Environment variable settings always override any matches. The URLs that are
Junio C Hamano8eac2682013-09-09 22:35:201916matched against are those given directly to Git commands. This means any URLs
1917visited as a result of a redirection do not participate in matching.
1918
Junio C Hamano07824ce2006-04-25 07:36:541919i18n.commitEncoding::
Junio C Hamano076ffcc2013-02-06 05:13:211920Character encoding the commit messages are stored in; Git itself
Junio C Hamano07824ce2006-04-25 07:36:541921does not care per se, but this information is necessary e.g. when
1922importing commits from emails or in the gitk graphical history
1923browser (and possibly at other places in the future or in other
Junio C Hamano35738e82008-01-07 07:55:461924porcelains). See e.g. linkgit:git-mailinfo[1]. Defaults to 'utf-8'.
Junio C Hamano07824ce2006-04-25 07:36:541925
Junio C Hamano51f92e22006-12-29 05:18:281926i18n.logOutputEncoding::
1927Character encoding the commit messages are converted to when
Junio C Hamano1aa40d22010-01-21 17:46:431928running 'git log' and friends.
Junio C Hamano51f92e22006-12-29 05:18:281929
Junio C Hamano4653c6f2008-11-26 22:50:201930imap::
1931The configuration variables in the 'imap' section are described
1932in linkgit:git-imap-send[1].
1933
Junio C Hamano81703b22014-03-14 22:00:271934index.version::
1935Specify the version with which new index files should be
1936initialized. This does not affect existing repositories.
1937
Junio C Hamano322c6242015-03-23 21:32:461938init.templateDir::
Junio C Hamanocaa712a2010-03-11 01:17:351939Specify the directory from which templates will be copied.
1940(See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)
1941
Junio C Hamano4e272312008-01-08 09:13:211942instaweb.browser::
1943Specify the program that will be used to browse your working
1944repository in gitweb. See linkgit:git-instaweb[1].
1945
1946instaweb.httpd::
1947The HTTP daemon command-line to start gitweb on your working
1948repository. See linkgit:git-instaweb[1].
1949
1950instaweb.local::
1951If true the web server started by linkgit:git-instaweb[1] will
1952be bound to the local IP (127.0.0.1).
1953
Junio C Hamano322c6242015-03-23 21:32:461954instaweb.modulePath::
Junio C Hamano619596a2010-08-18 22:15:351955The default module path for linkgit:git-instaweb[1] to use
1956instead of /usr/lib/apache2/modules. Only used if httpd
1957is Apache.
Junio C Hamano4e272312008-01-08 09:13:211958
1959instaweb.port::
1960The port number to bind the gitweb httpd to. See
1961linkgit:git-instaweb[1].
1962
Junio C Hamano322c6242015-03-23 21:32:461963interactive.singleKey::
Junio C Hamano27a128b2009-08-13 01:23:001964In interactive commands, allow the user to provide one-letter
Junio C Hamanoe5bf6c12009-02-07 21:43:101965input with a single key (i.e., without hitting enter).
Junio C Hamanob76a6862012-05-02 22:02:461966Currently this is used by the `--patch` mode of
Junio C Hamano3d050d62011-05-17 06:43:341967linkgit:git-add[1], linkgit:git-checkout[1], linkgit:git-commit[1],
1968linkgit:git-reset[1], and linkgit:git-stash[1]. Note that this
1969setting is silently ignored if portable keystroke input
Junio C Hamano81703b22014-03-14 22:00:271970is not available; requires the Perl module Term::ReadKey.
Junio C Hamanoe5bf6c12009-02-07 21:43:101971
Junio C Hamano4ba4a782016-04-03 19:11:321972interactive.diffFilter::
1973When an interactive command (such as `git add --patch`) shows
1974a colorized diff, git will pipe the diff through the shell
1975command defined by this configuration variable. The command may
1976mark up the diff further for human consumption, provided that it
1977retains a one-to-one correspondence with the lines in the
1978original diff. Defaults to disabled (no filtering).
1979
Junio C Hamanof93530e2011-05-25 23:59:591980log.abbrevCommit::
1981If true, makes linkgit:git-log[1], linkgit:git-show[1], and
Junio C Hamanob76a6862012-05-02 22:02:461982linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may
1983override this option with `--no-abbrev-commit`.
Junio C Hamanof93530e2011-05-25 23:59:591984
Junio C Hamanob713ff12008-05-24 01:12:301985log.date::
Junio C Hamano2db3e752010-09-03 21:33:061986Set the default date-time mode for the 'log' command.
1987Setting a value for log.date is similar to using 'git log''s
Junio C Hamano1eb56092015-10-05 20:39:531988`--date` option. See linkgit:git-log[1] for details.
Junio C Hamanob713ff12008-05-24 01:12:301989
Junio C Hamanocb39aea2010-05-09 07:24:481990log.decorate::
1991Print out the ref names of any commits that are shown by the log
1992command. If 'short' is specified, the ref name prefixes 'refs/heads/',
1993'refs/tags/' and 'refs/remotes/' will not be printed. If 'full' is
1994specified, the full ref name (including prefix) will be printed.
Junio C Hamano37cf4082016-05-30 01:22:141995If 'auto' is specified, then if the output is going to a terminal,
1996the ref names are shown as if 'short' were given, otherwise no ref
Junio C Hamano92d80372016-07-13 22:00:051997names are shown. This is the same as the `--decorate` option
Junio C Hamano37cf4082016-05-30 01:22:141998of the `git log`.
Junio C Hamanocb39aea2010-05-09 07:24:481999
Junio C Hamanob0a1e832015-10-15 23:08:312000log.follow::
2001If `true`, `git log` will act as if the `--follow` option was used when
2002a single <path> is given. This has the same limitations as `--follow`,
2003i.e. it cannot be used to follow multiple files and does not work well
2004on non-linear history.
2005
Junio C Hamano322c6242015-03-23 21:32:462006log.showRoot::
Junio C Hamanofe9acab2006-11-24 12:10:552007If true, the initial commit will be shown as a big creation event.
2008This is equivalent to a diff against an empty tree.
Junio C Hamano35738e82008-01-07 07:55:462009Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
Junio C Hamanofe9acab2006-11-24 12:10:552010normally hide the root commit will now show it. True by default.
2011
Junio C Hamanoce836cc2013-01-21 02:01:532012log.mailmap::
2013If true, makes linkgit:git-log[1], linkgit:git-show[1], and
2014linkgit:git-whatchanged[1] assume `--use-mailmap`.
2015
Junio C Hamano7f1bc9d2015-03-05 22:38:262016mailinfo.scissors::
2017If true, makes linkgit:git-mailinfo[1] (and therefore
2018linkgit:git-am[1]) act by default as if the --scissors option
2019was provided on the command-line. When active, this features
2020removes everything from the message body before a scissors
2021line (i.e. consisting mainly of ">8", "8<" and "-").
2022
Junio C Hamano8bc410e2009-02-15 10:38:192023mailmap.file::
2024The location of an augmenting mailmap file. The default
2025mailmap, located in the root of the repository, is loaded
2026first, then the mailmap file pointed to by this variable.
2027The location of the mailmap file may be in a repository
2028subdirectory, or somewhere outside of the repository itself.
2029See linkgit:git-shortlog[1] and linkgit:git-blame[1].
2030
Junio C Hamanoabad6da2013-01-06 09:06:322031mailmap.blob::
2032Like `mailmap.file`, but consider the value as a reference to a
2033blob in the repository. If both `mailmap.file` and
2034`mailmap.blob` are given, both are parsed, with entries from
2035`mailmap.file` taking precedence. In a bare repository, this
2036defaults to `HEAD:.mailmap`. In a non-bare repository, it
2037defaults to empty.
2038
Junio C Hamano8b588d52008-03-15 09:48:372039man.viewer::
2040Specify the programs that may be used to display help in the
2041'man' format. See linkgit:git-help[1].
2042
Junio C Hamano6d76d612008-05-09 05:46:082043man.<tool>.cmd::
2044Specify the command to invoke the specified man viewer. The
2045specified command is evaluated in shell with the man page
2046passed as argument. (See linkgit:git-help[1].)
Junio C Hamano103ad7f2007-03-14 11:19:262047
Junio C Hamano6d76d612008-05-09 05:46:082048man.<tool>.path::
2049Override the path for the given tool that may be used to
2050display help in the 'man' format. See linkgit:git-help[1].
Junio C Hamanoe90436a2007-04-22 07:22:132051
Junio C Hamano4653c6f2008-11-26 22:50:202052include::merge-config.txt[]
Junio C Hamanoa476efa2008-10-10 15:31:422053
Junio C Hamano1fbbbc12007-12-18 07:01:272054mergetool.<tool>.path::
2055Override the path for the given tool. This is useful in case
2056your tool is not in the PATH.
2057
Junio C Hamano86bcccc2008-03-08 09:33:552058mergetool.<tool>.cmd::
2059Specify the command to invoke the specified merge tool. The
2060specified command is evaluated in shell with the following
2061variables available: 'BASE' is the name of a temporary file
2062containing the common base of the files to be merged, if available;
2063'LOCAL' is the name of a temporary file containing the contents of
2064the file on the current branch; 'REMOTE' is the name of a temporary
2065file containing the contents of the file from the branch being
2066merged; 'MERGED' contains the name of the file to which the merge
2067tool should write the results of a successful merge.
2068
2069mergetool.<tool>.trustExitCode::
2070For a custom merge command, specify whether the exit code of
2071the merge command can be used to determine whether the merge was
2072successful. If this is not set to true then the merge target file
2073timestamp is checked and the merge assumed to have been successful
2074if the file has been updated, otherwise the user is prompted to
2075indicate the success of the merge.
2076
Junio C Hamanoe478e402014-10-21 22:14:452077mergetool.meld.hasOutput::
2078Older versions of `meld` do not support the `--output` option.
2079Git will attempt to detect whether `meld` supports `--output`
2080by inspecting the output of `meld --help`. Configuring
2081`mergetool.meld.hasOutput` will make Git skip these checks and
2082use the configured value instead. Setting `mergetool.meld.hasOutput`
2083to `true` tells Git to unconditionally use the `--output` option,
2084and `false` avoids using `--output`.
2085
Junio C Hamano86bcccc2008-03-08 09:33:552086mergetool.keepBackup::
2087After performing a merge, the original file with conflict markers
2088can be saved as a file with a `.orig` extension. If this variable
2089is set to `false` then this file is not preserved. Defaults to
2090`true` (i.e. keep the backup files).
2091
Junio C Hamano10b7a342009-01-01 22:05:172092mergetool.keepTemporaries::
Junio C Hamano076ffcc2013-02-06 05:13:212093When invoking a custom merge tool, Git uses a set of temporary
Junio C Hamano10b7a342009-01-01 22:05:172094files to pass to the tool. If the tool returns an error and this
2095variable is set to `true`, then these temporary files will be
2096preserved, otherwise they will be removed after the tool has
2097exited. Defaults to `false`.
2098
Junio C Hamanoe478e402014-10-21 22:14:452099mergetool.writeToTemp::
2100Git writes temporary 'BASE', 'LOCAL', and 'REMOTE' versions of
2101conflicting files in the worktree by default. Git will attempt
2102to use a temporary directory for these files when set `true`.
2103Defaults to `false`.
2104
Junio C Hamano10b7a342009-01-01 22:05:172105mergetool.prompt::
2106Prompt before each invocation of the merge resolution program.
2107
Junio C Hamano3891e252015-08-31 23:06:132108notes.mergeStrategy::
2109Which merge strategy to choose by default when resolving notes
2110conflicts. Must be one of `manual`, `ours`, `theirs`, `union`, or
2111`cat_sort_uniq`. Defaults to `manual`. See "NOTES MERGE STRATEGIES"
2112section of linkgit:git-notes[1] for more information on each strategy.
2113
2114notes.<name>.mergeStrategy::
2115Which merge strategy to choose when doing a notes merge into
2116refs/notes/<name>. This overrides the more general
2117"notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section in
2118linkgit:git-notes[1] for more information on the available strategies.
2119
Junio C Hamano31667362010-03-25 00:38:532120notes.displayRef::
2121The (fully qualified) refname from which to show notes when
2122showing commit messages. The value of this variable can be set
2123to a glob, in which case notes from all matching refs will be
2124shown. You may also specify this configuration variable
2125several times. A warning will be issued for refs that do not
2126exist, but a glob that does not match any refs is silently
2127ignored.
2128+
2129This setting can be overridden with the `GIT_NOTES_DISPLAY_REF`
2130environment variable, which must be a colon separated list of refs or
2131globs.
2132+
2133The effective value of "core.notesRef" (possibly overridden by
2134GIT_NOTES_REF) is also implicitly added to the list of refs to be
2135displayed.
2136
2137notes.rewrite.<command>::
2138When rewriting commits with <command> (currently `amend` or
Junio C Hamano076ffcc2013-02-06 05:13:212139`rebase`) and this variable is set to `true`, Git
Junio C Hamano31667362010-03-25 00:38:532140automatically copies your notes from the original to the
2141rewritten commit. Defaults to `true`, but see
2142"notes.rewriteRef" below.
Junio C Hamano31667362010-03-25 00:38:532143
2144notes.rewriteMode::
2145When copying notes during a rewrite (see the
2146"notes.rewrite.<command>" option), determines what to do if
2147the target commit already has a note. Must be one of
Junio C Hamano3891e252015-08-31 23:06:132148`overwrite`, `concatenate`, `cat_sort_uniq`, or `ignore`.
2149Defaults to `concatenate`.
Junio C Hamano31667362010-03-25 00:38:532150+
2151This setting can be overridden with the `GIT_NOTES_REWRITE_MODE`
2152environment variable.
2153
2154notes.rewriteRef::
2155When copying notes during a rewrite, specifies the (fully
2156qualified) ref whose notes should be copied. The ref may be a
2157glob, in which case notes in all matching refs will be copied.
2158You may also specify this configuration several times.
2159+
2160Does not have a default value; you must configure this variable to
Junio C Hamano8fb66e52011-10-05 20:59:512161enable note rewriting. Set it to `refs/notes/commits` to enable
2162rewriting for the default commit notes.
Junio C Hamano2b3ee5d2010-05-08 05:41:182163+
2164This setting can be overridden with the `GIT_NOTES_REWRITE_REF`
2165environment variable, which must be a colon separated list of refs or
2166globs.
Junio C Hamano31667362010-03-25 00:38:532167
Junio C Hamano75cc4c92006-07-24 08:25:032168pack.window::
Junio C Hamano35738e82008-01-07 07:55:462169The size of the window used by linkgit:git-pack-objects[1] when no
Junio C Hamano75cc4c92006-07-24 08:25:032170window size is given on the command line. Defaults to 10.
2171
Junio C Hamano91d44c52007-05-09 07:16:072172pack.depth::
Junio C Hamano35738e82008-01-07 07:55:462173The maximum delta depth used by linkgit:git-pack-objects[1] when no
Junio C Hamano91d44c52007-05-09 07:16:072174maximum depth is given on the command line. Defaults to 50.
2175
Junio C Hamano235d53f2007-07-13 00:25:152176pack.windowMemory::
Junio C Hamano2a4bcbc2014-10-29 20:07:392177The maximum size of memory that is consumed by each thread
2178in linkgit:git-pack-objects[1] for pack window memory when
2179no limit is given on the command line. The value can be
2180suffixed with "k", "m", or "g". When left unconfigured (or
2181set explicitly to 0), there will be no limit.
Junio C Hamano235d53f2007-07-13 00:25:152182
Junio C Hamanof2ce2972007-05-20 19:12:092183pack.compression::
2184An integer -1..9, indicating the compression level for objects
2185in a pack file. -1 is the zlib default. 0 means no
2186compression, and 1..9 are various speed/size tradeoffs, 9 being
2187slowest. If not set, defaults to core.compression. If that is
Junio C Hamano2e72a942007-11-21 08:54:422188not set, defaults to -1, the zlib default, which is "a default
2189compromise between speed and compression (currently equivalent
2190to level 6)."
Junio C Hamano657fd8a2010-10-07 00:01:242191+
2192Note that changing the compression level will not automatically recompress
2193all existing objects. You can force recompression by passing the -F option
2194to linkgit:git-repack[1].
Junio C Hamanof2ce2972007-05-20 19:12:092195
Junio C Hamano679d22d2007-06-02 21:13:442196pack.deltaCacheSize::
Junio C Hamanoa6387422007-08-25 03:54:272197The maximum memory in bytes used for caching deltas in
Junio C Hamano9f883862009-08-11 06:23:522198linkgit:git-pack-objects[1] before writing them out to a pack.
2199This cache is used to speed up the writing object phase by not
2200having to recompute the final delta result once the best match
2201for all objects is found. Repacking large repositories on machines
2202which are tight with memory might be badly impacted by this though,
2203especially if this cache pushes the system into swapping.
2204A value of 0 means no limit. The smallest size of 1 byte may be
2205used to virtually disable this cache. Defaults to 256 MiB.
Junio C Hamano679d22d2007-06-02 21:13:442206
2207pack.deltaCacheLimit::
Junio C Hamano58155b42007-09-15 07:46:142208The maximum size of a delta, that is cached in
Junio C Hamano9f883862009-08-11 06:23:522209linkgit:git-pack-objects[1]. This cache is used to speed up the
2210writing object phase by not having to recompute the final delta
2211result once the best match for all objects is found. Defaults to 1000.
Junio C Hamano679d22d2007-06-02 21:13:442212
Junio C Hamano58155b42007-09-15 07:46:142213pack.threads::
2214Specifies the number of threads to spawn when searching for best
Junio C Hamano35738e82008-01-07 07:55:462215delta matches. This requires that linkgit:git-pack-objects[1]
Junio C Hamano58155b42007-09-15 07:46:142216be compiled with pthreads otherwise this option is ignored with a
2217warning. This is meant to reduce packing time on multiprocessor
2218machines. The required amount of memory for the delta search window
2219is however multiplied by the number of threads.
Junio C Hamano076ffcc2013-02-06 05:13:212220Specifying 0 will cause Git to auto-detect the number of CPU's
Junio C Hamano24bc09a2008-02-28 00:27:442221and set the number of threads accordingly.
Junio C Hamano58155b42007-09-15 07:46:142222
Junio C Hamanod814b6d2007-11-04 11:13:492223pack.indexVersion::
2224Specify the default pack index version. Valid values are 1 for
2225legacy pack index used by Git versions prior to 1.5.2, and 2 for
2226the new pack index with capabilities for packs larger than 4 GB
2227as well as proper protection against the repacking of corrupted
Junio C Hamanofce7c7e2008-07-02 03:06:382228packs. Version 2 is the default. Note that version 2 is enforced
2229and this config option ignored whenever the corresponding pack is
2230larger than 2 GB.
2231+
Junio C Hamano076ffcc2013-02-06 05:13:212232If you have an old Git that does not understand the version 2 `*.idx` file,
Junio C Hamanof85ef632016-02-17 22:31:062233cloning or fetching over a non native protocol (e.g. "http")
Junio C Hamanob76a6862012-05-02 22:02:462234that will copy both `*.pack` file and corresponding `*.idx` file from the
Junio C Hamanofce7c7e2008-07-02 03:06:382235other side may give you a repository that cannot be accessed with your
Junio C Hamano076ffcc2013-02-06 05:13:212236older version of Git. If the `*.pack` file is smaller than 2 GB, however,
Junio C Hamanofce7c7e2008-07-02 03:06:382237you can use linkgit:git-index-pack[1] on the *.pack file to regenerate
Junio C Hamanob76a6862012-05-02 22:02:462238the `*.idx` file.
Junio C Hamanod814b6d2007-11-04 11:13:492239
Junio C Hamano09a926d2008-03-13 07:55:292240pack.packSizeLimit::
Junio C Hamano4d979582010-02-04 06:27:292241The maximum size of a pack. This setting only affects
2242packing to a file when repacking, i.e. the git:// protocol
Junio C Hamanob76a6862012-05-02 22:02:462243is unaffected. It can be overridden by the `--max-pack-size`
Junio C Hamano74fd0fc2016-05-10 21:23:562244option of linkgit:git-repack[1]. Reaching this limit results
2245in the creation of multiple packfiles; which in turn prevents
2246bitmaps from being created.
2247The minimum size allowed is limited to 1 MiB.
2248The default is unlimited.
Junio C Hamano4d979582010-02-04 06:27:292249Common unit suffixes of 'k', 'm', or 'g' are
2250supported.
Junio C Hamano49dccaf2008-02-10 10:48:012251
Junio C Hamano5b3533d2014-02-27 23:07:152252pack.useBitmaps::
2253When true, git will use pack bitmaps (if available) when packing
2254to stdout (e.g., during the server side of a fetch). Defaults to
2255true. You should not generally need to turn this off unless
2256you are debugging pack bitmaps.
2257
Junio C Hamano322c6242015-03-23 21:32:462258pack.writeBitmaps (deprecated)::
Junio C Hamano38d02532014-06-26 21:48:502259This is a deprecated synonym for `repack.writeBitmaps`.
Junio C Hamano5b3533d2014-02-27 23:07:152260
2261pack.writeBitmapHashCache::
2262When true, git will include a "hash cache" section in the bitmap
2263index (if one is written). This cache can be used to feed git's
2264delta heuristics, potentially leading to better deltas between
2265bitmapped and non-bitmapped objects (e.g., when serving a fetch
2266between an older, bitmapped pack and objects that have been
2267pushed since the last gc). The downside is that it consumes 4
2268bytes per object of disk space, and that JGit's bitmap
2269implementation does not understand it, causing it to complain if
2270Git and JGit are used on the same repository. Defaults to false.
2271
Junio C Hamano9e96a1a2008-08-16 10:23:182272pager.<cmd>::
Junio C Hamano788eeba2010-12-08 22:50:432273If the value is boolean, turns on or off pagination of the
Junio C Hamano076ffcc2013-02-06 05:13:212274output of a particular Git subcommand when writing to a tty.
Junio C Hamano788eeba2010-12-08 22:50:432275Otherwise, turns on pagination for the subcommand using the
Junio C Hamanob76a6862012-05-02 22:02:462276pager specified by the value of `pager.<cmd>`. If `--paginate`
2277or `--no-pager` is specified on the command line, it takes
Junio C Hamano788eeba2010-12-08 22:50:432278precedence over this option. To disable pagination for all
2279commands, set `core.pager` or `GIT_PAGER` to `cat`.
Junio C Hamano9e96a1a2008-08-16 10:23:182280
Junio C Hamanoa574a092010-06-13 19:57:102281pretty.<name>::
2282Alias for a --pretty= format string, as specified in
2283linkgit:git-log[1]. Any aliases defined here can be used just
2284as the built-in pretty formats could. For example,
Junio C Hamanob76a6862012-05-02 22:02:462285running `git config pretty.changelog "format:* %H %s"`
Junio C Hamanoa574a092010-06-13 19:57:102286would cause the invocation `git log --pretty=changelog`
Junio C Hamanob76a6862012-05-02 22:02:462287to be equivalent to running `git log "--pretty=format:* %H %s"`.
Junio C Hamanoa574a092010-06-13 19:57:102288Note that an alias with the same name as a built-in format
2289will be silently ignored.
2290
Junio C Hamano5b3533d2014-02-27 23:07:152291pull.ff::
2292By default, Git does not create an extra merge commit when merging
2293a commit that is a descendant of the current commit. Instead, the
2294tip of the current branch is fast-forwarded. When set to `false`,
2295this variable tells Git to create an extra merge commit in such
2296a case (equivalent to giving the `--no-ff` option from the command
2297line). When set to `only`, only such fast-forward merges are
2298allowed (equivalent to giving the `--ff-only` option from the
Junio C Hamanoc4e2a202015-05-26 21:38:472299command line). This setting overrides `merge.ff` when pulling.
Junio C Hamano5b3533d2014-02-27 23:07:152300
Junio C Hamano515ab1d2011-12-09 23:41:202301pull.rebase::
2302When true, rebase branches on top of the fetched branch, instead
2303of merging the default branch from the default remote when "git
2304pull" is run. See "branch.<name>.rebase" for setting this on a
2305per-branch basis.
2306+
Junio C Hamano7db630e2015-09-17 20:26:222307When preserve, also pass `--preserve-merges` along to 'git rebase'
2308so that locally committed merge commits will not be flattened
2309by running 'git pull'.
Junio C Hamanocf4a1742013-09-11 22:57:502310+
Junio C Hamano289d7e82016-01-27 00:20:382311When the value is `interactive`, the rebase is run in interactive mode.
2312+
Junio C Hamano515ab1d2011-12-09 23:41:202313*NOTE*: this is a possibly dangerous operation; do *not* use
2314it unless you understand the implications (see linkgit:git-rebase[1]
2315for details).
2316
Junio C Hamano07824ce2006-04-25 07:36:542317pull.octopus::
2318The default merge strategy to use when pulling multiple branches
2319at once.
2320
2321pull.twohead::
2322The default merge strategy to use when pulling a single branch.
2323
Junio C Hamano1de75722009-03-26 08:39:382324push.default::
Junio C Hamano58655592013-07-11 20:52:332325Defines the action `git push` should take if no refspec is
2326explicitly given. Different values are well-suited for
2327specific workflows; for instance, in a purely central workflow
2328(i.e. the fetch source is equal to the push destination),
2329`upstream` is probably what you want. Possible values are:
Junio C Hamano1de75722009-03-26 08:39:382330+
Junio C Hamanobcaa8bc2012-07-03 22:17:202331--
Junio C Hamano58655592013-07-11 20:52:332332
2333* `nothing` - do not push anything (error out) unless a refspec is
2334 explicitly given. This is primarily meant for people who want to
2335 avoid mistakes by always being explicit.
2336
2337* `current` - push the current branch to update a branch with the same
2338 name on the receiving end. Works in both central and non-central
2339 workflows.
2340
2341* `upstream` - push the current branch back to the branch whose
2342 changes are usually integrated into the current branch (which is
2343 called `@{upstream}`). This mode only makes sense if you are
2344 pushing to the same repository you would normally pull from
2345 (i.e. central workflow).
2346
2347* `simple` - in centralized workflow, work like `upstream` with an
2348 added safety to refuse to push if the upstream branch's name is
2349 different from the local one.
Junio C Hamanobcaa8bc2012-07-03 22:17:202350+
Junio C Hamano58655592013-07-11 20:52:332351When pushing to a remote that is different from the remote you normally
2352pull from, work as `current`. This is the safest option and is suited
2353for beginners.
2354+
Junio C Hamano1d669b82014-03-11 21:36:002355This mode has become the default in Git 2.0.
Junio C Hamano58655592013-07-11 20:52:332356
2357* `matching` - push all branches having the same name on both ends.
2358 This makes the repository you are pushing to remember the set of
2359 branches that will be pushed out (e.g. if you always push 'maint'
2360 and 'master' there and no other branches, the repository you push
2361 to will have these two branches, and your local 'maint' and
2362 'master' will be pushed there).
2363+
2364To use this mode effectively, you have to make sure _all_ the
2365branches you would push out are ready to be pushed out before
2366running 'git push', as the whole point of this mode is to allow you
2367to push all of the branches in one go. If you usually finish work
2368on only one branch and push out the result, while other branches are
2369unfinished, this mode is not for you. Also this mode is not
2370suitable for pushing into a shared central repository, as other
2371people may add new branches there, or update the tip of existing
2372branches outside your control.
2373+
Junio C Hamano1d669b82014-03-11 21:36:002374This used to be the default, but not since Git 2.0 (`simple` is the
2375new default).
Junio C Hamano58655592013-07-11 20:52:332376
2377--
Junio C Hamano1de75722009-03-26 08:39:382378
Junio C Hamano322c6242015-03-23 21:32:462379push.followTags::
Junio C Hamano92d80372016-07-13 22:00:052380If set to true enable `--follow-tags` option by default. You
Junio C Hamano322c6242015-03-23 21:32:462381may override this configuration at time of push by specifying
Junio C Hamano92d80372016-07-13 22:00:052382`--no-follow-tags`.
Junio C Hamano322c6242015-03-23 21:32:462383
Junio C Hamano3891e252015-08-31 23:06:132384push.gpgSign::
2385May be set to a boolean value, or the string 'if-asked'. A true
Junio C Hamano92d80372016-07-13 22:00:052386value causes all pushes to be GPG signed, as if `--signed` is
Junio C Hamano3891e252015-08-31 23:06:132387passed to linkgit:git-push[1]. The string 'if-asked' causes
2388pushes to be signed if the server supports it, as if
Junio C Hamano92d80372016-07-13 22:00:052389`--signed=if-asked` is passed to 'git push'. A false value may
Junio C Hamano3891e252015-08-31 23:06:132390override a value from a lower-priority config file. An explicit
2391command-line flag always overrides this config option.
Junio C Hamano322c6242015-03-23 21:32:462392
Junio C Hamano409a33a2015-12-22 23:45:232393push.recurseSubmodules::
2394Make sure all submodule commits used by the revisions to be pushed
2395are available on a remote-tracking branch. If the value is 'check'
2396then Git will verify that all submodule commits that changed in the
2397revisions to be pushed are available on at least one remote of the
2398submodule. If any commits are missing, the push will be aborted and
2399exit with non-zero status. If the value is 'on-demand' then all
2400submodules that changed in the revisions to be pushed will be
2401pushed. If on-demand was not able to push all necessary revisions
2402it will also be aborted and exit with non-zero status. If the value
2403is 'no' then default behavior of ignoring submodules when pushing
2404is retained. You may override this configuration at time of push by
2405specifying '--recurse-submodules=check|on-demand|no'.
2406
Junio C Hamanoea6a7642009-03-11 23:56:192407rebase.stat::
2408Whether to show a diffstat of what changed upstream since the last
2409rebase. False by default.
2410
Junio C Hamano322c6242015-03-23 21:32:462411rebase.autoSquash::
Junio C Hamano92d80372016-07-13 22:00:052412If set to true enable `--autosquash` option by default.
Junio C Hamano075ae872010-09-01 18:43:072413
Junio C Hamano322c6242015-03-23 21:32:462414rebase.autoStash::
Junio C Hamanof1f5a7b2013-06-11 22:23:522415When set to true, automatically create a temporary stash
2416before the operation begins, and apply it after the operation
2417ends. This means that you can run rebase on a dirty worktree.
2418However, use with care: the final stash application after a
2419successful rebase might result in non-trivial conflicts.
2420Defaults to false.
2421
Junio C Hamanod7ed4042015-08-03 19:43:002422rebase.missingCommitsCheck::
2423If set to "warn", git rebase -i will print a warning if some
2424commits are removed (e.g. a line was deleted), however the
2425rebase will still proceed. If set to "error", it will print
2426the previous warning and stop the rebase, 'git rebase
2427--edit-todo' can then be used to correct the error. If set to
2428"ignore", no checking is done.
2429To drop a commit without warning or error, use the `drop`
2430command in the todo-list.
2431Defaults to "ignore".
2432
2433rebase.instructionFormat
2434A format string, as specified in linkgit:git-log[1], to be used for
2435the instruction list during an interactive rebase. The format will automatically
2436have the long commit hash prepended to the format.
2437
Junio C Hamano322c6242015-03-23 21:32:462438receive.advertiseAtomic::
Junio C Hamano6bb32e62015-02-17 22:11:262439By default, git-receive-pack will advertise the atomic push
Junio C Hamanoe48a1132016-08-03 22:40:212440capability to its clients. If you don't want to advertise this
2441capability, set this variable to false.
2442
2443receive.advertisePushOptions::
2444By default, git-receive-pack will advertise the push options
2445capability to its clients. If you don't want to advertise this
2446capability, set this variable to false.
Junio C Hamano6bb32e62015-02-17 22:11:262447
Junio C Hamano621e1232009-10-26 05:16:472448receive.autogc::
2449By default, git-receive-pack will run "git-gc --auto" after
2450receiving data from git-push and updating refs. You can stop
2451it by setting this variable to false.
2452
Junio C Hamano322c6242015-03-23 21:32:462453receive.certNonceSeed::
Junio C Hamano9236fea2014-10-14 22:28:092454By setting this variable to a string, `git receive-pack`
2455will accept a `git push --signed` and verifies it by using
2456a "nonce" protected by HMAC using this string as a secret
2457key.
2458
Junio C Hamano322c6242015-03-23 21:32:462459receive.certNonceSlop::
Junio C Hamano9236fea2014-10-14 22:28:092460When a `git push --signed` sent a push certificate with a
2461"nonce" that was issued by a receive-pack serving the same
2462repository within this many seconds, export the "nonce"
2463found in the certificate to `GIT_PUSH_CERT_NONCE` to the
2464hooks (instead of what the receive-pack asked the sending
2465side to include). This may allow writing checks in
2466`pre-receive` and `post-receive` a bit easier. Instead of
2467checking `GIT_PUSH_CERT_NONCE_SLOP` environment variable
2468that records by how many seconds the nonce is stale to
2469decide if they want to accept the certificate, they only
2470can check `GIT_PUSH_CERT_NONCE_STATUS` is `OK`.
2471
Junio C Hamano4653c6f2008-11-26 22:50:202472receive.fsckObjects::
2473If it is set to true, git-receive-pack will check all received
2474objects. It will abort in the case of a malformed object or a
2475broken link. The result of an abort are only dangling objects.
Junio C Hamano8fb66e52011-10-05 20:59:512476Defaults to false. If not set, the value of `transfer.fsckObjects`
2477is used instead.
Junio C Hamano4653c6f2008-11-26 22:50:202478
Junio C Hamanod7ed4042015-08-03 19:43:002479receive.fsck.<msg-id>::
2480When `receive.fsckObjects` is set to true, errors can be switched
2481to warnings and vice versa by configuring the `receive.fsck.<msg-id>`
2482setting where the `<msg-id>` is the fsck message ID and the value
2483is one of `error`, `warn` or `ignore`. For convenience, fsck prefixes
2484the error/warning with the message ID, e.g. "missingEmail: invalid
2485author/committer line - missing email" means that setting
2486`receive.fsck.missingEmail = ignore` will hide that issue.
2487+
2488This feature is intended to support working with legacy repositories
2489which would not pass pushing when `receive.fsckObjects = true`, allowing
2490the host to accept repositories with certain known issues but still catch
2491other issues.
2492
2493receive.fsck.skipList::
2494The path to a sorted list of object names (i.e. one SHA-1 per
2495line) that are known to be broken in a non-fatal way and should
2496be ignored. This feature is useful when an established project
2497should be accepted despite early commits containing errors that
2498can be safely ignored such as invalid committer email addresses.
2499Note: corrupt objects cannot be skipped with this setting.
2500
Junio C Hamanoe48a1132016-08-03 22:40:212501receive.keepAlive::
2502After receiving the pack from the client, `receive-pack` may
2503produce no output (if `--quiet` was specified) while processing
2504the pack, causing some networks to drop the TCP connection.
2505With this option set, if `receive-pack` does not transmit
2506any data in this phase for `receive.keepAlive` seconds, it will
2507send a short keepalive packet. The default is 5 seconds; set
2508to 0 to disable keepalives entirely.
2509
Junio C Hamano4653c6f2008-11-26 22:50:202510receive.unpackLimit::
2511If the number of objects received in a push is below this
2512limit then the objects will be unpacked into loose object
2513files. However if the number of received objects equals or
2514exceeds this limit then the received pack will be stored as
2515a pack, after adding any missing delta bases. Storing the
2516pack from a push can make the push operation complete faster,
2517especially on slow filesystems. If not set, the value of
2518`transfer.unpackLimit` is used instead.
2519
Junio C Hamanocd451662016-09-13 00:54:092520receive.maxInputSize::
2521If the size of the incoming pack stream is larger than this
2522limit, then git-receive-pack will error out, instead of
2523accepting the pack file. If not set or set to 0, then the size
2524is unlimited.
2525
Junio C Hamano4653c6f2008-11-26 22:50:202526receive.denyDeletes::
2527If set to true, git-receive-pack will deny a ref update that deletes
2528the ref. Use this to prevent such a ref deletion via a push.
2529
Junio C Hamanob4448a82010-07-26 09:02:322530receive.denyDeleteCurrent::
2531If set to true, git-receive-pack will deny a ref update that
2532deletes the currently checked out branch of a non-bare repository.
2533
Junio C Hamano4653c6f2008-11-26 22:50:202534receive.denyCurrentBranch::
Junio C Hamanoe97d5772010-05-19 08:13:582535If set to true or "refuse", git-receive-pack will deny a ref update
Junio C Hamano4653c6f2008-11-26 22:50:202536to the currently checked out branch of a non-bare repository.
2537Such a push is potentially dangerous because it brings the HEAD
2538out of sync with the index and working tree. If set to "warn",
2539print a warning of such a push to stderr, but allow the push to
2540proceed. If set to false or "ignore", allow such pushes with no
Junio C Hamanoafb395b2010-03-17 22:16:152541message. Defaults to "refuse".
Junio C Hamano6df93d92014-12-22 22:48:092542+
2543Another option is "updateInstead" which will update the working
Junio C Hamano6bb32e62015-02-17 22:11:262544tree if pushing into the current branch. This option is
Junio C Hamano6df93d92014-12-22 22:48:092545intended for synchronizing working directories when one side is not easily
2546accessible via interactive ssh (e.g. a live web site, hence the requirement
2547that the working directory be clean). This mode also comes in handy when
2548developing inside a VM to test and fix code on different Operating Systems.
Junio C Hamano6bb32e62015-02-17 22:11:262549+
2550By default, "updateInstead" will refuse the push if the working tree or
2551the index have any difference from the HEAD, but the `push-to-checkout`
2552hook can be used to customize this. See linkgit:githooks[5].
Junio C Hamano4653c6f2008-11-26 22:50:202553
2554receive.denyNonFastForwards::
2555If set to true, git-receive-pack will deny a ref update which is
Junio C Hamano3f680f32009-11-16 02:10:542556not a fast-forward. Use this to prevent such an update via a push,
Junio C Hamano4653c6f2008-11-26 22:50:202557even if that push is forced. This configuration variable is
2558set when initializing a shared repository.
2559
Junio C Hamano322c6242015-03-23 21:32:462560receive.hideRefs::
Junio C Hamanob6aa12e2015-08-19 22:40:172561This variable is the same as `transfer.hideRefs`, but applies
2562only to `receive-pack` (and so affects pushes, but not fetches).
2563An attempt to update or delete a hidden ref by `git push` is
2564rejected.
Junio C Hamano80ad00d2013-02-18 00:19:032565
Junio C Hamano322c6242015-03-23 21:32:462566receive.updateServerInfo::
Junio C Hamano621e1232009-10-26 05:16:472567If set to true, git-receive-pack will run git-update-server-info
2568after receiving data from git-push and updating refs.
2569
Junio C Hamano322c6242015-03-23 21:32:462570receive.shallowUpdate::
Junio C Hamano61525f92014-01-17 22:46:492571If set to true, .git/shallow can be updated when new refs
2572require new shallow roots. Otherwise those refs are rejected.
2573
Junio C Hamano322c6242015-03-23 21:32:462574remote.pushDefault::
Junio C Hamano63b6fdb2013-04-07 23:37:132575The remote to push to by default. Overrides
2576`branch.<name>.remote` for all branches, and is overridden by
Junio C Hamano322c6242015-03-23 21:32:462577`branch.<name>.pushRemote` for specific branches.
Junio C Hamano63b6fdb2013-04-07 23:37:132578
Junio C Hamano249572f2006-10-24 05:44:082579remote.<name>.url::
Junio C Hamano35738e82008-01-07 07:55:462580The URL of a remote repository. See linkgit:git-fetch[1] or
2581linkgit:git-push[1].
Junio C Hamano249572f2006-10-24 05:44:082582
Junio C Hamano0e88f3e2009-06-21 08:03:252583remote.<name>.pushurl::
2584The push URL of a remote repository. See linkgit:git-push[1].
2585
Junio C Hamano58256872007-12-04 08:31:132586remote.<name>.proxy::
2587For remotes that require curl (http, https and ftp), the URL to
2588the proxy to use for that remote. Set to the empty string to
2589disable proxying for that remote.
2590
Junio C Hamanoffe10ca2016-02-04 00:44:232591remote.<name>.proxyAuthMethod::
2592For remotes that require curl (http, https and ftp), the method to use for
2593authenticating against the proxy in use (probably set in
2594`remote.<name>.proxy`). See `http.proxyAuthMethod`.
2595
Junio C Hamano249572f2006-10-24 05:44:082596remote.<name>.fetch::
Junio C Hamano35738e82008-01-07 07:55:462597The default set of "refspec" for linkgit:git-fetch[1]. See
2598linkgit:git-fetch[1].
Junio C Hamano249572f2006-10-24 05:44:082599
2600remote.<name>.push::
Junio C Hamano35738e82008-01-07 07:55:462601The default set of "refspec" for linkgit:git-push[1]. See
2602linkgit:git-push[1].
Junio C Hamano249572f2006-10-24 05:44:082603
Junio C Hamano47d68a52008-05-06 06:35:402604remote.<name>.mirror::
2605If true, pushing to this remote will automatically behave
Junio C Hamanob76a6862012-05-02 22:02:462606as if the `--mirror` option was given on the command line.
Junio C Hamano47d68a52008-05-06 06:35:402607
Junio C Hamano118d2772007-02-21 20:24:102608remote.<name>.skipDefaultUpdate::
2609If true, this remote will be skipped by default when updating
Junio C Hamano9df0c662009-11-23 11:09:272610using linkgit:git-fetch[1] or the `update` subcommand of
2611linkgit:git-remote[1].
2612
2613remote.<name>.skipFetchAll::
2614If true, this remote will be skipped by default when updating
2615using linkgit:git-fetch[1] or the `update` subcommand of
2616linkgit:git-remote[1].
Junio C Hamano118d2772007-02-21 20:24:102617
Junio C Hamano4ad294b2007-01-20 02:22:502618remote.<name>.receivepack::
Junio C Hamano54ea8d32007-01-25 07:59:482619The default program to execute on the remote side when pushing. See
Junio C Hamano1dbca522015-05-22 20:48:552620option --receive-pack of linkgit:git-push[1].
Junio C Hamano4ad294b2007-01-20 02:22:502621
Junio C Hamano54ea8d32007-01-25 07:59:482622remote.<name>.uploadpack::
2623The default program to execute on the remote side when fetching. See
Junio C Hamano1dbca522015-05-22 20:48:552624option --upload-pack of linkgit:git-fetch-pack[1].
Junio C Hamano54ea8d32007-01-25 07:59:482625
Junio C Hamano322c6242015-03-23 21:32:462626remote.<name>.tagOpt::
Junio C Hamano1dbca522015-05-22 20:48:552627Setting this value to --no-tags disables automatic tag following when
2628fetching from remote <name>. Setting it to --tags will fetch every
Junio C Hamanocc7636a2010-05-21 14:57:532629tag from remote <name>, even if they are not reachable from remote
Junio C Hamano075ae872010-09-01 18:43:072630branch heads. Passing these flags directly to linkgit:git-fetch[1] can
Junio C Hamano1dbca522015-05-22 20:48:552631override this setting. See options --tags and --no-tags of
Junio C Hamano075ae872010-09-01 18:43:072632linkgit:git-fetch[1].
Junio C Hamano17dde0e2007-02-26 09:50:212633
Junio C Hamano096dde22009-12-26 23:14:112634remote.<name>.vcs::
Junio C Hamano076ffcc2013-02-06 05:13:212635Setting this to a value <vcs> will cause Git to interact with
Junio C Hamano096dde22009-12-26 23:14:112636the remote with the git-remote-<vcs> helper.
2637
Junio C Hamano8eac2682013-09-09 22:35:202638remote.<name>.prune::
2639When set to true, fetching from this remote by default will also
Junio C Hamano4c8f2d92013-12-13 00:55:422640remove any remote-tracking references that no longer exist on the
2641remote (as if the `--prune` option was given on the command line).
Junio C Hamano8eac2682013-09-09 22:35:202642Overrides `fetch.prune` settings, if any.
2643
Junio C Hamano118d2772007-02-21 20:24:102644remotes.<group>::
2645The list of remotes which are fetched by "git remote update
Junio C Hamano35738e82008-01-07 07:55:462646<group>". See linkgit:git-remote[1].
Junio C Hamano118d2772007-02-21 20:24:102647
Junio C Hamano322c6242015-03-23 21:32:462648repack.useDeltaBaseOffset::
Junio C Hamanofce7c7e2008-07-02 03:06:382649By default, linkgit:git-repack[1] creates packs that use
2650delta-base offset. If you need to share your repository with
Junio C Hamano076ffcc2013-02-06 05:13:212651Git older than version 1.4.4, either directly or via a dumb
Junio C Hamanofce7c7e2008-07-02 03:06:382652protocol such as http, then you need to set this option to
Junio C Hamano076ffcc2013-02-06 05:13:212653"false" and repack. Access from old Git versions over the
Junio C Hamanofce7c7e2008-07-02 03:06:382654native protocol are unaffected by this option.
Junio C Hamano77b7e902006-10-23 07:18:502655
Junio C Hamano3b0cdc22014-03-18 22:06:162656repack.packKeptObjects::
2657If set to true, makes `git repack` act as if
2658`--pack-kept-objects` was passed. See linkgit:git-repack[1] for
2659details. Defaults to `false` normally, but `true` if a bitmap
2660index is being written (either via `--write-bitmap-index` or
Junio C Hamano38d02532014-06-26 21:48:502661`repack.writeBitmaps`).
2662
2663repack.writeBitmaps::
2664When true, git will write a bitmap index when packing all
2665objects to disk (e.g., when `git repack -a` is run). This
2666index can speed up the "counting objects" phase of subsequent
2667packs created for clones and fetches, at the cost of some disk
Junio C Hamano74fd0fc2016-05-10 21:23:562668space and extra time spent on the initial repack. This has
2669no effect if multiple packfiles are created.
2670Defaults to false.
Junio C Hamano3b0cdc22014-03-18 22:06:162671
Junio C Hamano322c6242015-03-23 21:32:462672rerere.autoUpdate::
Junio C Hamano4653c6f2008-11-26 22:50:202673When set to true, `git-rerere` updates the index with the
2674resulting contents after it cleanly resolves conflicts using
2675previously recorded resolution. Defaults to false.
2676
2677rerere.enabled::
2678Activate recording of resolved conflicts, so that identical
Junio C Hamano4fd24422012-01-06 21:52:432679conflict hunks can be resolved automatically, should they be
2680encountered again. By default, linkgit:git-rerere[1] is
2681enabled if there is an `rr-cache` directory under the
Junio C Hamano864ba892012-01-13 17:42:052682`$GIT_DIR`, e.g. if "rerere" was previously used in the
2683repository.
Junio C Hamano4653c6f2008-11-26 22:50:202684
Junio C Hamano1bbd0f42009-07-23 06:20:292685sendemail.identity::
2686A configuration identity. When given, causes values in the
2687'sendemail.<identity>' subsection to take precedence over
2688values in the 'sendemail' section. The default identity is
Junio C Hamano042f2142016-06-27 18:05:052689the value of `sendemail.identity`.
Junio C Hamano1bbd0f42009-07-23 06:20:292690
Junio C Hamano322c6242015-03-23 21:32:462691sendemail.smtpEncryption::
Junio C Hamano1bbd0f42009-07-23 06:20:292692See linkgit:git-send-email[1] for description. Note that this
2693setting is not subject to the 'identity' mechanism.
2694
Junio C Hamanobe087982015-02-22 21:29:392695sendemail.smtpssl (deprecated)::
Junio C Hamano322c6242015-03-23 21:32:462696Deprecated alias for 'sendemail.smtpEncryption = ssl'.
Junio C Hamano1bbd0f42009-07-23 06:20:292697
Junio C Hamano58f587a2013-07-22 19:20:592698sendemail.smtpsslcertpath::
2699Path to ca-certificates (either a directory or a single file).
2700Set it to an empty string to disable certificate verification.
2701
Junio C Hamano1bbd0f42009-07-23 06:20:292702sendemail.<identity>.*::
2703Identity-specific versions of the 'sendemail.*' parameters
2704found below, taking precedence over those when the this
2705identity is selected, through command-line or
Junio C Hamano042f2142016-06-27 18:05:052706`sendemail.identity`.
Junio C Hamano1bbd0f42009-07-23 06:20:292707
Junio C Hamano322c6242015-03-23 21:32:462708sendemail.aliasesFile::
2709sendemail.aliasFileType::
Junio C Hamanoea3b7522013-04-18 19:37:532710sendemail.annotate::
Junio C Hamano1bbd0f42009-07-23 06:20:292711sendemail.bcc::
2712sendemail.cc::
Junio C Hamano322c6242015-03-23 21:32:462713sendemail.ccCmd::
2714sendemail.chainReplyTo::
Junio C Hamano1bbd0f42009-07-23 06:20:292715sendemail.confirm::
Junio C Hamano322c6242015-03-23 21:32:462716sendemail.envelopeSender::
Junio C Hamano1bbd0f42009-07-23 06:20:292717sendemail.from::
Junio C Hamano322c6242015-03-23 21:32:462718sendemail.multiEdit::
Junio C Hamano1bbd0f42009-07-23 06:20:292719sendemail.signedoffbycc::
Junio C Hamano322c6242015-03-23 21:32:462720sendemail.smtpPass::
Junio C Hamano1bbd0f42009-07-23 06:20:292721sendemail.suppresscc::
Junio C Hamano322c6242015-03-23 21:32:462722sendemail.suppressFrom::
Junio C Hamano1bbd0f42009-07-23 06:20:292723sendemail.to::
Junio C Hamano322c6242015-03-23 21:32:462724sendemail.smtpDomain::
2725sendemail.smtpServer::
2726sendemail.smtpServerPort::
2727sendemail.smtpServerOption::
2728sendemail.smtpUser::
Junio C Hamano1bbd0f42009-07-23 06:20:292729sendemail.thread::
Junio C Hamano322c6242015-03-23 21:32:462730sendemail.transferEncoding::
Junio C Hamano1bbd0f42009-07-23 06:20:292731sendemail.validate::
Junio C Hamanoc9394b22015-01-07 22:45:482732sendemail.xmailer::
Junio C Hamano1bbd0f42009-07-23 06:20:292733See linkgit:git-send-email[1] for description.
2734
Junio C Hamanobe087982015-02-22 21:29:392735sendemail.signedoffcc (deprecated)::
Junio C Hamano042f2142016-06-27 18:05:052736Deprecated alias for `sendemail.signedoffbycc`.
Junio C Hamano1bbd0f42009-07-23 06:20:292737
Junio C Hamano07824ce2006-04-25 07:36:542738showbranch.default::
Junio C Hamano35738e82008-01-07 07:55:462739The default set of branches for linkgit:git-show-branch[1].
2740See linkgit:git-show-branch[1].
Junio C Hamano07824ce2006-04-25 07:36:542741
Junio C Hamano942b35e2007-12-09 10:19:332742status.relativePaths::
Junio C Hamano35738e82008-01-07 07:55:462743By default, linkgit:git-status[1] shows paths relative to the
Junio C Hamano942b35e2007-12-09 10:19:332744current directory. Setting this variable to `false` shows paths
Junio C Hamano076ffcc2013-02-06 05:13:212745relative to the repository root (this was the default for Git
Junio C Hamano942b35e2007-12-09 10:19:332746prior to v1.5.4).
2747
Junio C Hamano58655592013-07-11 20:52:332748status.short::
2749Set to true to enable --short by default in linkgit:git-status[1].
2750The option --no-short takes precedence over this variable.
2751
2752status.branch::
2753Set to true to enable --branch by default in linkgit:git-status[1].
2754The option --no-branch takes precedence over this variable.
2755
Junio C Hamano79f4c7c2013-09-20 21:03:372756status.displayCommentPrefix::
2757If set to true, linkgit:git-status[1] will insert a comment
2758prefix before each output line (starting with
2759`core.commentChar`, i.e. `#` by default). This was the
2760behavior of linkgit:git-status[1] in Git 1.8.4 and previous.
2761Defaults to false.
2762
Junio C Hamano4224f992008-06-23 07:14:082763status.showUntrackedFiles::
2764By default, linkgit:git-status[1] and linkgit:git-commit[1] show
2765files which are not currently tracked by Git. Directories which
2766contain only untracked files, are shown with the directory name
2767only. Showing untracked files means that Git needs to lstat() all
Junio C Hamano2efd5e42014-11-10 22:38:522768the files in the whole repository, which might be slow on some
Junio C Hamano4224f992008-06-23 07:14:082769systems. So, this variable controls how the commands displays
2770the untracked files. Possible values are:
2771+
2772--
Junio C Hamano7f9fa862010-10-19 23:51:142773* `no` - Show no untracked files.
2774* `normal` - Show untracked files and directories.
2775* `all` - Show also individual files in untracked directories.
Junio C Hamano4224f992008-06-23 07:14:082776--
2777+
2778If this variable is not specified, it defaults to 'normal'.
2779This variable can be overridden with the -u|--untracked-files option
2780of linkgit:git-status[1] and linkgit:git-commit[1].
2781
Junio C Hamano322c6242015-03-23 21:32:462782status.submoduleSummary::
Junio C Hamanob671fb52010-06-01 05:06:142783Defaults to false.
2784If this is set to a non zero number or true (identical to -1 or an
2785unlimited number), the submodule summary will be enabled and a
2786summary of commits for modified submodules will be shown (see
Junio C Hamano369e3402013-10-15 18:40:252787--summary-limit option of linkgit:git-submodule[1]). Please note
2788that the summary output command will be suppressed for all
2789submodules when `diff.ignoreSubmodules` is set to 'all' or only
Junio C Hamanoc8c398a2014-06-16 21:14:052790for those submodules where `submodule.<name>.ignore=all`. The only
2791exception to that rule is that status and commit will show staged
2792submodule changes. To
Junio C Hamano369e3402013-10-15 18:40:252793also view the summary for ignored submodules you can either use
Junio C Hamanoe1aeb5e2014-06-06 19:16:292794the --ignore-submodules=dirty command-line option or the 'git
Junio C Hamano369e3402013-10-15 18:40:252795submodule summary' command, which shows a similar output but does
2796not honor these settings.
Junio C Hamanob671fb52010-06-01 05:06:142797
Junio C Hamano1eb56092015-10-05 20:39:532798stash.showPatch::
2799If this is set to true, the `git stash show` command without an
2800option will show the stash in patch form. Defaults to false.
2801See description of 'show' command in linkgit:git-stash[1].
2802
2803stash.showStat::
2804If this is set to true, the `git stash show` command without an
2805option will show diffstat of the stash. Defaults to true.
2806See description of 'show' command in linkgit:git-stash[1].
2807
Junio C Hamano78e3a782010-07-15 22:24:452808submodule.<name>.path::
2809submodule.<name>.url::
Junio C Hamano6bf68cf2015-03-06 23:46:292810The path within this project and URL for a submodule. These
2811variables are initially populated by 'git submodule init'. See
2812linkgit:git-submodule[1] and linkgit:gitmodules[5] for
2813details.
2814
Junio C Hamano78e3a782010-07-15 22:24:452815submodule.<name>.update::
Junio C Hamano6bf68cf2015-03-06 23:46:292816The default update procedure for a submodule. This variable
2817is populated by `git submodule init` from the
2818linkgit:gitmodules[5] file. See description of 'update'
2819command in linkgit:git-submodule[1].
Junio C Hamano78e3a782010-07-15 22:24:452820
Junio C Hamanoabad6da2013-01-06 09:06:322821submodule.<name>.branch::
2822The remote branch name for a submodule, used by `git submodule
2823update --remote`. Set this option to override the value found in
2824the `.gitmodules` file. See linkgit:git-submodule[1] and
2825linkgit:gitmodules[5] for details.
2826
Junio C Hamano0d75e872010-12-17 06:57:262827submodule.<name>.fetchRecurseSubmodules::
Junio C Hamano5cd15182011-04-05 00:21:102828This option can be used to control recursive fetching of this
Junio C Hamano7165bf72011-01-04 22:06:182829submodule. It can be overridden by using the --[no-]recurse-submodules
Junio C Hamanoe1aeb5e2014-06-06 19:16:292830command-line option to "git fetch" and "git pull".
Junio C Hamano0d75e872010-12-17 06:57:262831This setting will override that from in the linkgit:gitmodules[5]
2832file.
2833
Junio C Hamano619596a2010-08-18 22:15:352834submodule.<name>.ignore::
2835Defines under what circumstances "git status" and the diff family show
2836a submodule as modified. When set to "all", it will never be considered
Junio C Hamanoc8c398a2014-06-16 21:14:052837modified (but it will nonetheless show up in the output of status and
2838commit when it has been staged), "dirty" will ignore all changes
2839to the submodules work tree and
Junio C Hamano619596a2010-08-18 22:15:352840takes only differences between the HEAD of the submodule and the commit
2841recorded in the superproject into account. "untracked" will additionally
2842let submodules with modified tracked files in their work tree show up.
2843Using "none" (the default when this option is not set) also shows
2844submodules that have untracked files in their work tree as changed.
2845This setting overrides any setting made in .gitmodules for this submodule,
Junio C Hamanode9745c2010-08-23 17:10:182846both settings can be overridden on the command line by using the
Junio C Hamano369e3402013-10-15 18:40:252847"--ignore-submodules" option. The 'git submodule' commands are not
2848affected by this setting.
Junio C Hamano619596a2010-08-18 22:15:352849
Junio C Hamanobec5da42016-04-06 22:58:212850submodule.fetchJobs::
2851Specifies how many submodules are fetched/cloned at the same time.
2852A positive integer allows up to that number of submodules fetched
2853in parallel. A value of 0 will give some reasonable default.
2854If unset, it defaults to 1.
2855
Junio C Hamanocd451662016-09-13 00:54:092856submodule.alternateLocation::
2857Specifies how the submodules obtain alternates when submodules are
2858cloned. Possible values are `no`, `superproject`.
2859By default `no` is assumed, which doesn't add references. When the
2860value is set to `superproject` the submodule to be cloned computes
2861its alternates location relative to the superprojects alternate.
2862
2863submodule.alternateErrorStrategy
2864Specifies how to treat errors with the alternates for a submodule
2865as computed via `submodule.alternateLocation`. Possible values are
2866`ignore`, `info`, `die`. Default is `die`.
2867
Junio C Hamanobec5da42016-04-06 22:58:212868tag.forceSignAnnotated::
2869A boolean to specify whether annotated tags created should be GPG signed.
2870If `--annotate` is specified on the command line, it takes
2871precedence over this option.
2872
Junio C Hamano7b43d412014-07-23 23:09:442873tag.sort::
2874This variable controls the sort ordering of tags when displayed by
2875linkgit:git-tag[1]. Without the "--sort=<value>" option provided, the
2876value of this variable will be used as the default.
2877
Junio C Hamano75cc4c92006-07-24 08:25:032878tar.umask::
Junio C Hamanobdebabb2007-08-23 00:25:092879This variable can be used to restrict the permission bits of
2880tar archive entries. The default is 0002, which turns off the
2881world write bit. The special value "user" indicates that the
2882archiving user's umask will be used instead. See umask(2) and
Junio C Hamano35738e82008-01-07 07:55:462883linkgit:git-archive[1].
Junio C Hamano75cc4c92006-07-24 08:25:032884
Junio C Hamano8fb66e52011-10-05 20:59:512885transfer.fsckObjects::
2886When `fetch.fsckObjects` or `receive.fsckObjects` are
2887not set, the value of this variable is used instead.
2888Defaults to false.
2889
Junio C Hamano322c6242015-03-23 21:32:462890transfer.hideRefs::
Junio C Hamanob6aa12e2015-08-19 22:40:172891String(s) `receive-pack` and `upload-pack` use to decide which
2892refs to omit from their initial advertisements. Use more than
2893one definition to specify multiple prefix strings. A ref that is
2894under the hierarchies listed in the value of this variable is
2895excluded, and is hidden when responding to `git push` or `git
2896fetch`. See `receive.hideRefs` and `uploadpack.hideRefs` for
2897program-specific versions of this config.
2898+
2899You may also include a `!` in front of the ref name to negate the entry,
2900explicitly exposing it, even if an earlier entry marked it as hidden.
2901If you have multiple hideRefs values, later entries override earlier ones
2902(and entries in more-specific config files override less-specific ones).
Junio C Hamano713eded2015-12-03 00:24:022903+
2904If a namespace is in use, the namespace prefix is stripped from each
2905reference before it is matched against `transfer.hiderefs` patterns.
2906For example, if `refs/heads/master` is specified in `transfer.hideRefs` and
2907the current namespace is `foo`, then `refs/namespaces/foo/refs/heads/master`
2908is omitted from the advertisements but `refs/heads/master` and
2909`refs/namespaces/bar/refs/heads/master` are still advertised as so-called
2910"have" lines. In order to match refs before stripping, add a `^` in front of
2911the ref name. If you combine `!` and `^`, `!` must be specified first.
Junio C Hamano80ad00d2013-02-18 00:19:032912
Junio C Hamano4653c6f2008-11-26 22:50:202913transfer.unpackLimit::
2914When `fetch.unpackLimit` or `receive.unpackLimit` are
2915not set, the value of this variable is used instead.
2916The default value is 100.
2917
Junio C Hamano81703b22014-03-14 22:00:272918uploadarchive.allowUnreachable::
2919If true, allow clients to use `git archive --remote` to request
2920any tree, whether reachable from the ref tips or not. See the
2921discussion in the `SECURITY` section of
2922linkgit:git-upload-archive[1] for more details. Defaults to
2923`false`.
2924
Junio C Hamano322c6242015-03-23 21:32:462925uploadpack.hideRefs::
Junio C Hamanob6aa12e2015-08-19 22:40:172926This variable is the same as `transfer.hideRefs`, but applies
2927only to `upload-pack` (and so affects only fetches, not pushes).
2928An attempt to fetch a hidden ref by `git fetch` will fail. See
2929also `uploadpack.allowTipSHA1InWant`.
Junio C Hamano5e7f1312013-03-21 22:49:012930
Junio C Hamano85f1fde2015-06-01 20:37:322931uploadpack.allowTipSHA1InWant::
Junio C Hamano322c6242015-03-23 21:32:462932When `uploadpack.hideRefs` is in effect, allow `upload-pack`
Junio C Hamano5e7f1312013-03-21 22:49:012933to accept a fetch request that asks for an object at the tip
2934of a hidden ref (by default, such a request is rejected).
Junio C Hamano322c6242015-03-23 21:32:462935see also `uploadpack.hideRefs`.
Junio C Hamano80ad00d2013-02-18 00:19:032936
Junio C Hamano85f1fde2015-06-01 20:37:322937uploadpack.allowReachableSHA1InWant::
2938Allow `upload-pack` to accept a fetch request that asks for an
2939object that is reachable from any ref tip. However, note that
2940calculating object reachability is computationally expensive.
2941Defaults to `false`.
2942
Junio C Hamano322c6242015-03-23 21:32:462943uploadpack.keepAlive::
Junio C Hamano79f4c7c2013-09-20 21:03:372944When `upload-pack` has started `pack-objects`, there may be a
2945quiet period while `pack-objects` prepares the pack. Normally
2946it would output progress information, but if `--quiet` was used
2947for the fetch, `pack-objects` will output nothing at all until
2948the pack data begins. Some clients and networks may consider
2949the server to be hung and give up. Setting this option instructs
2950`upload-pack` to send an empty keepalive packet every
Junio C Hamano322c6242015-03-23 21:32:462951`uploadpack.keepAlive` seconds. Setting this option to 0
Junio C Hamano79f4c7c2013-09-20 21:03:372952disables keepalive packets entirely. The default is 5 seconds.
2953
Junio C Hamanoc6c919b2016-07-06 21:34:152954uploadpack.packObjectsHook::
2955If this option is set, when `upload-pack` would run
2956`git pack-objects` to create a packfile for a client, it will
2957run this shell command instead. The `pack-objects` command and
2958arguments it _would_ have run (including the `git pack-objects`
2959at the beginning) are appended to the shell command. The stdin
2960and stdout of the hook are treated as if `pack-objects` itself
2961was run. I.e., `upload-pack` will feed input intended for
2962`pack-objects` to the hook, and expects a completed packfile on
2963stdout.
2964+
2965Note that this configuration variable is ignored if it is seen in the
2966repository-level config (this is a safety measure against fetching from
2967untrusted repositories).
2968
Junio C Hamano24bc09a2008-02-28 00:27:442969url.<base>.insteadOf::
2970Any URL that starts with this value will be rewritten to
2971start, instead, with <base>. In cases where some site serves a
2972large number of repositories, and serves them with multiple
2973access methods, and some users need to use different access
2974methods, this feature allows people to specify any of the
Junio C Hamano076ffcc2013-02-06 05:13:212975equivalent URLs and have Git automatically rewrite the URL to
Junio C Hamano24bc09a2008-02-28 00:27:442976the best alternative for the particular user, even for a
2977never-before-seen repository on the site. When more than one
2978insteadOf strings match a given URL, the longest match is used.
2979
Junio C Hamano7df6dcf2009-09-13 09:51:172980url.<base>.pushInsteadOf::
2981Any URL that starts with this value will not be pushed to;
2982instead, it will be rewritten to start with <base>, and the
2983resulting URL will be pushed to. In cases where some site serves
2984a large number of repositories, and serves them with multiple
2985access methods, some of which do not allow push, this feature
Junio C Hamano076ffcc2013-02-06 05:13:212986allows people to specify a pull-only URL and have Git
Junio C Hamano7df6dcf2009-09-13 09:51:172987automatically use an appropriate URL to push, even for a
2988never-before-seen repository on the site. When more than one
2989pushInsteadOf strings match a given URL, the longest match is
Junio C Hamano076ffcc2013-02-06 05:13:212990used. If a remote has an explicit pushurl, Git will ignore this
Junio C Hamano7df6dcf2009-09-13 09:51:172991setting for that remote.
2992
Junio C Hamano07824ce2006-04-25 07:36:542993user.email::
2994Your email address to be recorded in any newly created commits.
Junio C Hamano042f2142016-06-27 18:05:052995Can be overridden by the `GIT_AUTHOR_EMAIL`, `GIT_COMMITTER_EMAIL`, and
2996`EMAIL` environment variables. See linkgit:git-commit-tree[1].
Junio C Hamano07824ce2006-04-25 07:36:542997
2998user.name::
2999Your full name to be recorded in any newly created commits.
Junio C Hamano042f2142016-06-27 18:05:053000Can be overridden by the `GIT_AUTHOR_NAME` and `GIT_COMMITTER_NAME`
Junio C Hamano35738e82008-01-07 07:55:463001environment variables. See linkgit:git-commit-tree[1].
Junio C Hamano07824ce2006-04-25 07:36:543002
Junio C Hamanof85ef632016-02-17 22:31:063003user.useConfigOnly::
Junio C Hamano042f2142016-06-27 18:05:053004Instruct Git to avoid trying to guess defaults for `user.email`
3005and `user.name`, and instead retrieve the values only from the
Junio C Hamanof85ef632016-02-17 22:31:063006configuration. For example, if you have multiple email addresses
3007and would like to use a different one for each repository, then
3008with this configuration option set to `true` in the global config
3009along with a name, Git will prompt you to set up an email before
3010making new commits in a newly cloned repository.
3011Defaults to `false`.
3012
Junio C Hamano322c6242015-03-23 21:32:463013user.signingKey::
Junio C Hamano369e3402013-10-15 18:40:253014If linkgit:git-tag[1] or linkgit:git-commit[1] is not selecting the
3015key you want it to automatically when creating a signed tag or
3016commit, you can override the default selection with this variable.
3017This option is passed unchanged to gpg's --local-user parameter,
3018so you may specify a key using any method that gpg supports.
Junio C Hamanoa890c4f2007-01-28 10:29:213019
Junio C Hamano07622622015-03-20 21:47:263020versionsort.prereleaseSuffix::
3021When version sort is used in linkgit:git-tag[1], prerelease
3022tags (e.g. "1.0-rc1") may appear after the main release
3023"1.0". By specifying the suffix "-rc" in this variable,
3024"1.0-rc1" will appear before "1.0".
3025+
3026This variable can be specified multiple times, once per suffix. The
3027order of suffixes in the config file determines the sorting order
3028(e.g. if "-pre" appears before "-rc" in the config file then 1.0-preXX
3029is sorted before 1.0-rcXX). The sorting order between different
3030suffixes is undefined if they are in multiple config files.
3031
Junio C Hamano4e272312008-01-08 09:13:213032web.browser::
3033Specify a web browser that may be used by some commands.
3034Currently only linkgit:git-instaweb[1] and linkgit:git-help[1]
3035may use it.