Updated git_doc to git 1.8
[TortoiseGit.git] / doc / source / en / TortoiseGit / git_doc / git-config.xml
blobaeb50ded9ce4cf2a35029abb8c282f6d9f50fdf0
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <!DOCTYPE sect2 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">\r
3 \r
4 <sect2 lang="en" id="git-config(1)">\r
5     <title>git-config(1)</title>\r
6 <indexterm>\r
7 <primary>git-config(1)</primary>\r
8 </indexterm>\r
9 <simplesect id="git-config(1)__name">\r
10 <title>NAME</title>\r
11 <simpara>git-config - Get and set repository or global options</simpara>\r
12 </simplesect>\r
13 <simplesect id="git-config(1)__synopsis">\r
14 <title>SYNOPSIS</title>\r
15 <blockquote>\r
16 <literallayout><emphasis>git config</emphasis> [&lt;file-option&gt;] [type] [-z|--null] name [value [value_regex]]\r
17 <emphasis>git config</emphasis> [&lt;file-option&gt;] [type] --add name value\r
18 <emphasis>git config</emphasis> [&lt;file-option&gt;] [type] --replace-all name value [value_regex]\r
19 <emphasis>git config</emphasis> [&lt;file-option&gt;] [type] [-z|--null] --get name [value_regex]\r
20 <emphasis>git config</emphasis> [&lt;file-option&gt;] [type] [-z|--null] --get-all name [value_regex]\r
21 <emphasis>git config</emphasis> [&lt;file-option&gt;] [type] [-z|--null] --get-regexp name_regex [value_regex]\r
22 <emphasis>git config</emphasis> [&lt;file-option&gt;] --unset name [value_regex]\r
23 <emphasis>git config</emphasis> [&lt;file-option&gt;] --unset-all name [value_regex]\r
24 <emphasis>git config</emphasis> [&lt;file-option&gt;] --rename-section old_name new_name\r
25 <emphasis>git config</emphasis> [&lt;file-option&gt;] --remove-section name\r
26 <emphasis>git config</emphasis> [&lt;file-option&gt;] [-z|--null] -l | --list\r
27 <emphasis>git config</emphasis> [&lt;file-option&gt;] --get-color name [default]\r
28 <emphasis>git config</emphasis> [&lt;file-option&gt;] --get-colorbool name [stdout-is-tty]\r
29 <emphasis>git config</emphasis> [&lt;file-option&gt;] -e | --edit</literallayout>\r
30 </blockquote>\r
31 </simplesect>\r
32 <simplesect id="git-config(1)__description">\r
33 <title>DESCRIPTION</title>\r
34 <simpara>You can query/set/replace/unset options with this command. The name is\r
35 actually the section and the key separated by a dot, and the value will be\r
36 escaped.</simpara>\r
37 <simpara>Multiple lines can be added to an option by using the <emphasis>--add</emphasis> option.\r
38 If you want to update or unset an option which can occur on multiple\r
39 lines, a POSIX regexp <emphasis>value_regex</emphasis> needs to be given.  Only the\r
40 existing values that match the regexp are updated or unset.  If\r
41 you want to handle the lines that do <emphasis role="strong">not</emphasis> match the regex, just\r
42 prepend a single exclamation mark in front (see also <xref linkend="git-config(1)_EXAMPLES"/>).</simpara>\r
43 <simpara>The type specifier can be either <emphasis>--int</emphasis> or <emphasis>--bool</emphasis>, to make\r
44 <emphasis>git config</emphasis> ensure that the variable(s) are of the given type and\r
45 convert the value to the canonical form (simple decimal number for int,\r
46 a "true" or "false" string for bool), or <emphasis>--path</emphasis>, which does some\r
47 path expansion (see <emphasis>--path</emphasis> below).  If no type specifier is passed, no\r
48 checks or transformations are performed on the value.</simpara>\r
49 <simpara>When reading, the values are read from the system, global and\r
50 repository local configuration files by default, and options\r
51 <emphasis>--system</emphasis>, <emphasis>--global</emphasis>, <emphasis>--local</emphasis> and <emphasis>--file &lt;filename&gt;</emphasis> can be\r
52 used to tell the command to read from only that location (see <xref linkend="git-config(1)_FILES"/>).</simpara>\r
53 <simpara>When writing, the new value is written to the repository local\r
54 configuration file by default, and options <emphasis>--system</emphasis>, <emphasis>--global</emphasis>,\r
55 <emphasis>--file &lt;filename&gt;</emphasis> can be used to tell the command to write to\r
56 that location (you can say <emphasis>--local</emphasis> but that is the default).</simpara>\r
57 <simpara>This command will fail with non-zero status upon error.  Some exit\r
58 codes are:</simpara>\r
59 <orderedlist numeration="arabic">\r
60 <listitem>\r
61 <simpara>\r
62 The config file is invalid (ret=3),\r
63 </simpara>\r
64 </listitem>\r
65 <listitem>\r
66 <simpara>\r
67 can not write to the config file (ret=4),\r
68 </simpara>\r
69 </listitem>\r
70 <listitem>\r
71 <simpara>\r
72 no section or name was provided (ret=2),\r
73 </simpara>\r
74 </listitem>\r
75 <listitem>\r
76 <simpara>\r
77 the section or key is invalid (ret=1),\r
78 </simpara>\r
79 </listitem>\r
80 <listitem>\r
81 <simpara>\r
82 you try to unset an option which does not exist (ret=5),\r
83 </simpara>\r
84 </listitem>\r
85 <listitem>\r
86 <simpara>\r
87 you try to unset/set an option for which multiple lines match (ret=5), or\r
88 </simpara>\r
89 </listitem>\r
90 <listitem>\r
91 <simpara>\r
92 you try to use an invalid regexp (ret=6).\r
93 </simpara>\r
94 </listitem>\r
95 </orderedlist>\r
96 <simpara>On success, the command returns the exit code 0.</simpara>\r
97 </simplesect>\r
98 <simplesect id="git-config(1)__options">\r
99 <title>OPTIONS</title>\r
100 <variablelist>\r
101 <varlistentry>\r
102 <term>\r
103 --replace-all\r
104 </term>\r
105 <listitem>\r
106 <simpara>\r
107         Default behavior is to replace at most one line. This replaces\r
108         all lines matching the key (and optionally the value_regex).\r
109 </simpara>\r
110 </listitem>\r
111 </varlistentry>\r
112 <varlistentry>\r
113 <term>\r
114 --add\r
115 </term>\r
116 <listitem>\r
117 <simpara>\r
118         Adds a new line to the option without altering any existing\r
119         values.  This is the same as providing <emphasis>^$</emphasis> as the value_regex\r
120         in <emphasis>--replace-all</emphasis>.\r
121 </simpara>\r
122 </listitem>\r
123 </varlistentry>\r
124 <varlistentry>\r
125 <term>\r
126 --get\r
127 </term>\r
128 <listitem>\r
129 <simpara>\r
130         Get the value for a given key (optionally filtered by a regex\r
131         matching the value). Returns error code 1 if the key was not\r
132         found and error code 2 if multiple key values were found.\r
133 </simpara>\r
134 </listitem>\r
135 </varlistentry>\r
136 <varlistentry>\r
137 <term>\r
138 --get-all\r
139 </term>\r
140 <listitem>\r
141 <simpara>\r
142         Like get, but does not fail if the number of values for the key\r
143         is not exactly one.\r
144 </simpara>\r
145 </listitem>\r
146 </varlistentry>\r
147 <varlistentry>\r
148 <term>\r
149 --get-regexp\r
150 </term>\r
151 <listitem>\r
152 <simpara>\r
153         Like --get-all, but interprets the name as a regular expression and\r
154         writes out the key names.  Regular expression matching is currently\r
155         case-sensitive and done against a canonicalized version of the key\r
156         in which section and variable names are lowercased, but subsection\r
157         names are not.\r
158 </simpara>\r
159 </listitem>\r
160 </varlistentry>\r
161 <varlistentry>\r
162 <term>\r
163 --global\r
164 </term>\r
165 <listitem>\r
166 <simpara>\r
167         For writing options: write to global <subscript>/.gitconfig file rather than\r
168         the repository .git/config, write to $XDG_CONFIG_HOME/git/config file\r
169         if this file exists and the </subscript>/.gitconfig file doesn't.\r
170 </simpara>\r
171 <simpara>For reading options: read only from global ~/.gitconfig and from\r
172 $XDG_CONFIG_HOME/git/config rather than from all available files.</simpara>\r
173 <simpara>See also <xref linkend="git-config(1)_FILES"/>.</simpara>\r
174 </listitem>\r
175 </varlistentry>\r
176 <varlistentry>\r
177 <term>\r
178 --system\r
179 </term>\r
180 <listitem>\r
181 <simpara>\r
182         For writing options: write to system-wide $(prefix)/etc/gitconfig\r
183         rather than the repository .git/config.\r
184 </simpara>\r
185 <simpara>For reading options: read only from system-wide $(prefix)/etc/gitconfig\r
186 rather than from all available files.</simpara>\r
187 <simpara>See also <xref linkend="git-config(1)_FILES"/>.</simpara>\r
188 </listitem>\r
189 </varlistentry>\r
190 <varlistentry>\r
191 <term>\r
192 -f config-file\r
193 </term>\r
194 <term>\r
195 --file config-file\r
196 </term>\r
197 <listitem>\r
198 <simpara>\r
199         Use the given config file instead of the one specified by GIT_CONFIG.\r
200 </simpara>\r
201 </listitem>\r
202 </varlistentry>\r
203 <varlistentry>\r
204 <term>\r
205 --remove-section\r
206 </term>\r
207 <listitem>\r
208 <simpara>\r
209         Remove the given section from the configuration file.\r
210 </simpara>\r
211 </listitem>\r
212 </varlistentry>\r
213 <varlistentry>\r
214 <term>\r
215 --rename-section\r
216 </term>\r
217 <listitem>\r
218 <simpara>\r
219         Rename the given section to a new name.\r
220 </simpara>\r
221 </listitem>\r
222 </varlistentry>\r
223 <varlistentry>\r
224 <term>\r
225 --unset\r
226 </term>\r
227 <listitem>\r
228 <simpara>\r
229         Remove the line matching the key from config file.\r
230 </simpara>\r
231 </listitem>\r
232 </varlistentry>\r
233 <varlistentry>\r
234 <term>\r
235 --unset-all\r
236 </term>\r
237 <listitem>\r
238 <simpara>\r
239         Remove all lines matching the key from config file.\r
240 </simpara>\r
241 </listitem>\r
242 </varlistentry>\r
243 <varlistentry>\r
244 <term>\r
245 -l\r
246 </term>\r
247 <term>\r
248 --list\r
249 </term>\r
250 <listitem>\r
251 <simpara>\r
252         List all variables set in config file.\r
253 </simpara>\r
254 </listitem>\r
255 </varlistentry>\r
256 <varlistentry>\r
257 <term>\r
258 --bool\r
259 </term>\r
260 <listitem>\r
261 <simpara>\r
262         <emphasis>git config</emphasis> will ensure that the output is "true" or "false"\r
263 </simpara>\r
264 </listitem>\r
265 </varlistentry>\r
266 <varlistentry>\r
267 <term>\r
268 --int\r
269 </term>\r
270 <listitem>\r
271 <simpara>\r
272         <emphasis>git config</emphasis> will ensure that the output is a simple\r
273         decimal number.  An optional value suffix of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis>\r
274         in the config file will cause the value to be multiplied\r
275         by 1024, 1048576, or 1073741824 prior to output.\r
276 </simpara>\r
277 </listitem>\r
278 </varlistentry>\r
279 <varlistentry>\r
280 <term>\r
281 --bool-or-int\r
282 </term>\r
283 <listitem>\r
284 <simpara>\r
285         <emphasis>git config</emphasis> will ensure that the output matches the format of\r
286         either --bool or --int, as described above.\r
287 </simpara>\r
288 </listitem>\r
289 </varlistentry>\r
290 <varlistentry>\r
291 <term>\r
292 --path\r
293 </term>\r
294 <listitem>\r
295 <simpara>\r
296         <emphasis>git-config</emphasis> will expand leading <emphasis>&#126;</emphasis> to the value of\r
297         <emphasis>$HOME</emphasis>, and <emphasis>&#126;user</emphasis> to the home directory for the\r
298         specified user.  This option has no effect when setting the\r
299         value (but you can use <emphasis>git config bla &#126;/</emphasis> from the\r
300         command line to let your shell do the expansion).\r
301 </simpara>\r
302 </listitem>\r
303 </varlistentry>\r
304 <varlistentry>\r
305 <term>\r
306 -z\r
307 </term>\r
308 <term>\r
309 --null\r
310 </term>\r
311 <listitem>\r
312 <simpara>\r
313         For all options that output values and/or keys, always\r
314         end values with the null character (instead of a\r
315         newline). Use newline instead as a delimiter between\r
316         key and value. This allows for secure parsing of the\r
317         output without getting confused e.g. by values that\r
318         contain line breaks.\r
319 </simpara>\r
320 </listitem>\r
321 </varlistentry>\r
322 <varlistentry>\r
323 <term>\r
324 --get-colorbool name [stdout-is-tty]\r
325 </term>\r
326 <listitem>\r
327 <simpara>\r
328         Find the color setting for <emphasis>name</emphasis> (e.g. <emphasis>color.diff</emphasis>) and output\r
329         "true" or "false".  <emphasis>stdout-is-tty</emphasis> should be either "true" or\r
330         "false", and is taken into account when configuration says\r
331         "auto".  If <emphasis>stdout-is-tty</emphasis> is missing, then checks the standard\r
332         output of the command itself, and exits with status 0 if color\r
333         is to be used, or exits with status 1 otherwise.\r
334         When the color setting for <emphasis>name</emphasis> is undefined, the command uses\r
335         <emphasis>color.ui</emphasis> as fallback.\r
336 </simpara>\r
337 </listitem>\r
338 </varlistentry>\r
339 <varlistentry>\r
340 <term>\r
341 --get-color name [default]\r
342 </term>\r
343 <listitem>\r
344 <simpara>\r
345         Find the color configured for <emphasis>name</emphasis> (e.g. <emphasis>color.diff.new</emphasis>) and\r
346         output it as the ANSI color escape sequence to the standard\r
347         output.  The optional <emphasis>default</emphasis> parameter is used instead, if\r
348         there is no color configured for <emphasis>name</emphasis>.\r
349 </simpara>\r
350 </listitem>\r
351 </varlistentry>\r
352 <varlistentry>\r
353 <term>\r
354 -e\r
355 </term>\r
356 <term>\r
357 --edit\r
358 </term>\r
359 <listitem>\r
360 <simpara>\r
361         Opens an editor to modify the specified config file; either\r
362         <emphasis>--system</emphasis>, <emphasis>--global</emphasis>, or repository (default).\r
363 </simpara>\r
364 </listitem>\r
365 </varlistentry>\r
366 <varlistentry>\r
367 <term>\r
368 --includes\r
369 </term>\r
370 <term>\r
371 --no-includes\r
372 </term>\r
373 <listitem>\r
374 <simpara>\r
375         Respect <emphasis>include.*</emphasis> directives in config files when looking up\r
376         values. Defaults to on.\r
377 </simpara>\r
378 </listitem>\r
379 </varlistentry>\r
380 </variablelist>\r
381 </simplesect>\r
382 <simplesect id="git-config(1)_FILES">\r
383 <title>FILES</title>\r
384 <simpara>If not set explicitly with <emphasis>--file</emphasis>, there are four files where\r
385 <emphasis>git config</emphasis> will search for configuration options:</simpara>\r
386 <variablelist>\r
387 <varlistentry>\r
388 <term>\r
389 $GIT_DIR/config\r
390 </term>\r
391 <listitem>\r
392 <simpara>\r
393         Repository specific configuration file.\r
394 </simpara>\r
395 </listitem>\r
396 </varlistentry>\r
397 <varlistentry>\r
398 <term>\r
399 ~/.gitconfig\r
400 </term>\r
401 <listitem>\r
402 <simpara>\r
403         User-specific configuration file. Also called "global"\r
404         configuration file.\r
405 </simpara>\r
406 </listitem>\r
407 </varlistentry>\r
408 <varlistentry>\r
409 <term>\r
410 $XDG_CONFIG_HOME/git/config\r
411 </term>\r
412 <listitem>\r
413 <simpara>\r
414         Second user-specific configuration file. If $XDG_CONFIG_HOME is not set\r
415         or empty, $HOME/.config/git/config will be used. Any single-valued\r
416         variable set in this file will be overwritten by whatever is in\r
417         ~/.gitconfig.  It is a good idea not to create this file if\r
418         you sometimes use older versions of Git, as support for this\r
419         file was added fairly recently.\r
420 </simpara>\r
421 </listitem>\r
422 </varlistentry>\r
423 <varlistentry>\r
424 <term>\r
425 $(prefix)/etc/gitconfig\r
426 </term>\r
427 <listitem>\r
428 <simpara>\r
429         System-wide configuration file.\r
430 </simpara>\r
431 </listitem>\r
432 </varlistentry>\r
433 </variablelist>\r
434 <simpara>If no further options are given, all reading options will read all of these\r
435 files that are available. If the global or the system-wide configuration\r
436 file are not available they will be ignored. If the repository configuration\r
437 file is not available or readable, <emphasis>git config</emphasis> will exit with a non-zero\r
438 error code. However, in neither case will an error message be issued.</simpara>\r
439 <simpara>All writing options will per default write to the repository specific\r
440 configuration file. Note that this also affects options like <emphasis>--replace-all</emphasis>\r
441 and <emphasis>--unset</emphasis>. <emphasis role="strong"><emphasis>git config</emphasis> will only ever change one file at a time</emphasis>.</simpara>\r
442 <simpara>You can override these rules either by command line options or by environment\r
443 variables. The <emphasis>--global</emphasis> and the <emphasis>--system</emphasis> options will limit the file used\r
444 to the global or system-wide file respectively. The GIT_CONFIG environment\r
445 variable has a similar effect, but you can specify any filename you want.</simpara>\r
446 </simplesect>\r
447 <simplesect id="git-config(1)__environment">\r
448 <title>ENVIRONMENT</title>\r
449 <variablelist>\r
450 <varlistentry>\r
451 <term>\r
452 GIT_CONFIG\r
453 </term>\r
454 <listitem>\r
455 <simpara>\r
456         Take the configuration from the given file instead of .git/config.\r
457         Using the "--global" option forces this to ~/.gitconfig. Using the\r
458         "--system" option forces this to $(prefix)/etc/gitconfig.\r
459 </simpara>\r
460 </listitem>\r
461 </varlistentry>\r
462 </variablelist>\r
463 <simpara>See also <xref linkend="git-config(1)_FILES"/>.</simpara>\r
464 </simplesect>\r
465 <simplesect id="git-config(1)_EXAMPLES">\r
466 <title>EXAMPLES</title>\r
467 <simpara>Given a .git/config like this:</simpara>\r
468 <literallayout class="monospaced">#\r
469 # This is the config file, and\r
470 # a '#' or ';' character indicates\r
471 # a comment\r
472 #</literallayout>\r
473 <literallayout class="monospaced">; core variables\r
474 [core]\r
475         ; Don't trust file modes\r
476         filemode = false</literallayout>\r
477 <literallayout class="monospaced">; Our diff algorithm\r
478 [diff]\r
479         external = /usr/local/bin/diff-wrapper\r
480         renames = true</literallayout>\r
481 <literallayout class="monospaced">; Proxy settings\r
482 [core]\r
483         gitproxy=proxy-command for kernel.org\r
484         gitproxy=default-proxy ; for all the rest</literallayout>\r
485 <simpara>you can set the filemode to true with</simpara>\r
486 <screen>% git config core.filemode true</screen>\r
487 <simpara>The hypothetical proxy command entries actually have a postfix to discern\r
488 what URL they apply to. Here is how to change the entry for kernel.org\r
489 to "ssh".</simpara>\r
490 <screen>% git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</screen>\r
491 <simpara>This makes sure that only the key/value pair for kernel.org is replaced.</simpara>\r
492 <simpara>To delete the entry for renames, do</simpara>\r
493 <screen>% git config --unset diff.renames</screen>\r
494 <simpara>If you want to delete an entry for a multivar (like core.gitproxy above),\r
495 you have to provide a regex matching the value of exactly one line.</simpara>\r
496 <simpara>To query the value for a given key, do</simpara>\r
497 <screen>% git config --get core.filemode</screen>\r
498 <simpara>or</simpara>\r
499 <screen>% git config core.filemode</screen>\r
500 <simpara>or, to query a multivar:</simpara>\r
501 <screen>% git config --get core.gitproxy "for kernel.org$"</screen>\r
502 <simpara>If you want to know all the values for a multivar, do:</simpara>\r
503 <screen>% git config --get-all core.gitproxy</screen>\r
504 <simpara>If you like to live dangerously, you can replace <emphasis role="strong">all</emphasis> core.gitproxy by a\r
505 new one with</simpara>\r
506 <screen>% git config --replace-all core.gitproxy ssh</screen>\r
507 <simpara>However, if you really only want to replace the line for the default proxy,\r
508 i.e. the one without a "for &#8230;" postfix, do something like this:</simpara>\r
509 <screen>% git config core.gitproxy ssh '! for '</screen>\r
510 <simpara>To actually match only values with an exclamation mark, you have to</simpara>\r
511 <screen>% git config section.key value '[!]'</screen>\r
512 <simpara>To add a new proxy, without altering any of the existing ones, use</simpara>\r
513 <screen>% git config --add core.gitproxy '"proxy-command" for example.com'</screen>\r
514 <simpara>An example to use customized color from the configuration in your\r
515 script:</simpara>\r
516 <screen>#!/bin/sh\r
517 WS=$(git config --get-color color.diff.whitespace "blue reverse")\r
518 RESET=$(git config --get-color "" "reset")\r
519 echo "${WS}your whitespace color or blue reverse${RESET}"</screen>\r
520 </simplesect>\r
521 <simplesect id="git-config(1)__configuration_file">\r
522 <title>CONFIGURATION FILE</title>\r
523 <simpara>The git configuration file contains a number of variables that affect\r
524 the git command's behavior. The <emphasis>.git/config</emphasis> file in each repository\r
525 is used to store the configuration for that repository, and\r
526 <emphasis>$HOME/.gitconfig</emphasis> is used to store a per-user configuration as\r
527 fallback values for the <emphasis>.git/config</emphasis> file. The file <emphasis>/etc/gitconfig</emphasis>\r
528 can be used to store a system-wide default configuration.</simpara>\r
529 <simpara>The configuration variables are used by both the git plumbing\r
530 and the porcelains. The variables are divided into sections, wherein\r
531 the fully qualified variable name of the variable itself is the last\r
532 dot-separated segment and the section name is everything before the last\r
533 dot. The variable names are case-insensitive, allow only alphanumeric\r
534 characters and <emphasis>-</emphasis>, and must start with an alphabetic character.  Some\r
535 variables may appear multiple times.</simpara>\r
536 <section id="git-config(1)__syntax">\r
537 <title>Syntax</title>\r
538 <simpara>The syntax is fairly flexible and permissive; whitespaces are mostly\r
539 ignored.  The <emphasis>#</emphasis> and <emphasis>;</emphasis> characters begin comments to the end of line,\r
540 blank lines are ignored.</simpara>\r
541 <simpara>The file consists of sections and variables.  A section begins with\r
542 the name of the section in square brackets and continues until the next\r
543 section begins.  Section names are not case sensitive.  Only alphanumeric\r
544 characters, <emphasis>-</emphasis> and <emphasis>.</emphasis> are allowed in section names.  Each variable\r
545 must belong to some section, which means that there must be a section\r
546 header before the first setting of a variable.</simpara>\r
547 <simpara>Sections can be further divided into subsections.  To begin a subsection\r
548 put its name in double quotes, separated by space from the section name,\r
549 in the section header, like in the example below:</simpara>\r
550 <screen>        [section "subsection"]</screen>\r
551 <simpara>Subsection names are case sensitive and can contain any characters except\r
552 newline (doublequote <emphasis>"</emphasis> and backslash have to be escaped as <emphasis>\"</emphasis> and <emphasis>\\</emphasis>,\r
553 respectively).  Section headers cannot span multiple\r
554 lines.  Variables may belong directly to a section or to a given subsection.\r
555 You can have <emphasis>[section]</emphasis> if you have <emphasis>[section "subsection"]</emphasis>, but you\r
556 don't need to.</simpara>\r
557 <simpara>There is also a deprecated <emphasis>[section.subsection]</emphasis> syntax. With this\r
558 syntax, the subsection name is converted to lower-case and is also\r
559 compared case sensitively. These subsection names follow the same\r
560 restrictions as section names.</simpara>\r
561 <simpara>All the other lines (and the remainder of the line after the section\r
562 header) are recognized as setting variables, in the form\r
563 <emphasis>name = value</emphasis>.  If there is no equal sign on the line, the entire line\r
564 is taken as <emphasis>name</emphasis> and the variable is recognized as boolean "true".\r
565 The variable names are case-insensitive, allow only alphanumeric characters\r
566 and <emphasis>-</emphasis>, and must start with an alphabetic character.  There can be more\r
567 than one value for a given variable; we say then that the variable is\r
568 multivalued.</simpara>\r
569 <simpara>Leading and trailing whitespace in a variable value is discarded.\r
570 Internal whitespace within a variable value is retained verbatim.</simpara>\r
571 <simpara>The values following the equals sign in variable assign are all either\r
572 a string, an integer, or a boolean.  Boolean values may be given as yes/no,\r
573 1/0, true/false or on/off.  Case is not significant in boolean values, when\r
574 converting value to the canonical form using <emphasis>--bool</emphasis> type specifier;\r
575 <emphasis>git config</emphasis> will ensure that the output is "true" or "false".</simpara>\r
576 <simpara>String values may be entirely or partially enclosed in double quotes.\r
577 You need to enclose variable values in double quotes if you want to\r
578 preserve leading or trailing whitespace, or if the variable value contains\r
579 comment characters (i.e. it contains <emphasis>#</emphasis> or <emphasis>;</emphasis>).\r
580 Double quote <emphasis>"</emphasis> and backslash <emphasis>\</emphasis> characters in variable values must\r
581 be escaped: use <emphasis>\"</emphasis> for <emphasis>"</emphasis> and <emphasis>\\</emphasis> for <emphasis>\</emphasis>.</simpara>\r
582 <simpara>The following escape sequences (beside <emphasis>\"</emphasis> and <emphasis>\\</emphasis>) are recognized:\r
583 <emphasis>\n</emphasis> for newline character (NL), <emphasis>\t</emphasis> for horizontal tabulation (HT, TAB)\r
584 and <emphasis>\b</emphasis> for backspace (BS).  No other char escape sequence, nor octal\r
585 char sequences are valid.</simpara>\r
586 <simpara>Variable values ending in a <emphasis>\</emphasis> are continued on the next line in the\r
587 customary UNIX fashion.</simpara>\r
588 <simpara>Some variables may require a special value format.</simpara>\r
589 </section>\r
590 <section id="git-config(1)__includes">\r
591 <title>Includes</title>\r
592 <simpara>You can include one config file from another by setting the special\r
593 <emphasis>include.path</emphasis> variable to the name of the file to be included. The\r
594 included file is expanded immediately, as if its contents had been\r
595 found at the location of the include directive. If the value of the\r
596 <emphasis>include.path</emphasis> variable is a relative path, the path is considered to be\r
597 relative to the configuration file in which the include directive was\r
598 found. The value of <emphasis>include.path</emphasis> is subject to tilde expansion: <emphasis>~/</emphasis>\r
599 is expanded to the value of <emphasis>$HOME</emphasis>, and <emphasis>~user/</emphasis> to the specified\r
600 user's home directory. See below for examples.</simpara>\r
601 </section>\r
602 <section id="git-config(1)__example">\r
603 <title>Example</title>\r
604 <literallayout class="monospaced"># Core variables\r
605 [core]\r
606         ; Don't trust file modes\r
607         filemode = false</literallayout>\r
608 <literallayout class="monospaced"># Our diff algorithm\r
609 [diff]\r
610         external = /usr/local/bin/diff-wrapper\r
611         renames = true</literallayout>\r
612 <literallayout class="monospaced">[branch "devel"]\r
613         remote = origin\r
614         merge = refs/heads/devel</literallayout>\r
615 <literallayout class="monospaced"># Proxy settings\r
616 [core]\r
617         gitProxy="ssh" for "kernel.org"\r
618         gitProxy=default-proxy ; for the rest</literallayout>\r
619 <literallayout class="monospaced">[include]\r
620         path = /path/to/foo.inc ; include by absolute path\r
621         path = foo ; expand "foo" relative to the current file\r
622         path = ~/foo ; expand "foo" in your $HOME directory</literallayout>\r
623 </section>\r
624 <section id="git-config(1)__variables">\r
625 <title>Variables</title>\r
626 <simpara>Note that this list is non-comprehensive and not necessarily complete.\r
627 For command-specific variables, you will find a more detailed description\r
628 in the appropriate manual page. You will find a description of non-core\r
629 porcelain configuration variables in the respective porcelain documentation.</simpara>\r
630 <variablelist>\r
631 <varlistentry>\r
632 <term>\r
633 advice.*\r
634 </term>\r
635 <listitem>\r
636 <simpara>\r
637         These variables control various optional help messages designed to\r
638         aid new users. All <emphasis>advice.*</emphasis> variables default to <emphasis>true</emphasis>, and you\r
639         can tell Git that you do not need help by setting these to <emphasis>false</emphasis>:\r
640 </simpara>\r
641 <variablelist>\r
642 <varlistentry>\r
643 <term>\r
644 pushNonFastForward\r
645 </term>\r
646 <listitem>\r
647 <simpara>\r
648                 Set this variable to <emphasis>false</emphasis> if you want to disable\r
649                 <emphasis>pushNonFFCurrent</emphasis>, <emphasis>pushNonFFDefault</emphasis>, and\r
650                 <emphasis>pushNonFFMatching</emphasis> simultaneously.\r
651 </simpara>\r
652 </listitem>\r
653 </varlistentry>\r
654 <varlistentry>\r
655 <term>\r
656 pushNonFFCurrent\r
657 </term>\r
658 <listitem>\r
659 <simpara>\r
660                 Advice shown when <xref linkend="git-push(1)" /> fails due to a\r
661                 non-fast-forward update to the current branch.\r
662 </simpara>\r
663 </listitem>\r
664 </varlistentry>\r
665 <varlistentry>\r
666 <term>\r
667 pushNonFFDefault\r
668 </term>\r
669 <listitem>\r
670 <simpara>\r
671                 Advice to set <emphasis>push.default</emphasis> to <emphasis>upstream</emphasis> or <emphasis>current</emphasis>\r
672                 when you ran <xref linkend="git-push(1)" /> and pushed <emphasis>matching\r
673                 refs</emphasis> by default (i.e. you did not provide an explicit\r
674                 refspec, and no <emphasis>push.default</emphasis> configuration was set)\r
675                 and it resulted in a non-fast-forward error.\r
676 </simpara>\r
677 </listitem>\r
678 </varlistentry>\r
679 <varlistentry>\r
680 <term>\r
681 pushNonFFMatching\r
682 </term>\r
683 <listitem>\r
684 <simpara>\r
685                 Advice shown when you ran <xref linkend="git-push(1)" /> and pushed\r
686                 <emphasis>matching refs</emphasis> explicitly (i.e. you used <emphasis>:</emphasis>, or\r
687                 specified a refspec that isn't your current branch) and\r
688                 it resulted in a non-fast-forward error.\r
689 </simpara>\r
690 </listitem>\r
691 </varlistentry>\r
692 <varlistentry>\r
693 <term>\r
694 statusHints\r
695 </term>\r
696 <listitem>\r
697 <simpara>\r
698                 Show directions on how to proceed from the current\r
699                 state in the output of <xref linkend="git-status(1)" />, in\r
700                 the template shown when writing commit messages in\r
701                 <xref linkend="git-commit(1)" />, and in the help message shown\r
702                 by <xref linkend="git-checkout(1)" /> when switching branch.\r
703 </simpara>\r
704 </listitem>\r
705 </varlistentry>\r
706 <varlistentry>\r
707 <term>\r
708 commitBeforeMerge\r
709 </term>\r
710 <listitem>\r
711 <simpara>\r
712                 Advice shown when <xref linkend="git-merge(1)" /> refuses to\r
713                 merge to avoid overwriting local changes.\r
714 </simpara>\r
715 </listitem>\r
716 </varlistentry>\r
717 <varlistentry>\r
718 <term>\r
719 resolveConflict\r
720 </term>\r
721 <listitem>\r
722 <simpara>\r
723                 Advices shown by various commands when conflicts\r
724                 prevent the operation from being performed.\r
725 </simpara>\r
726 </listitem>\r
727 </varlistentry>\r
728 <varlistentry>\r
729 <term>\r
730 implicitIdentity\r
731 </term>\r
732 <listitem>\r
733 <simpara>\r
734                 Advice on how to set your identity configuration when\r
735                 your information is guessed from the system username and\r
736                 domain name.\r
737 </simpara>\r
738 </listitem>\r
739 </varlistentry>\r
740 <varlistentry>\r
741 <term>\r
742 detachedHead\r
743 </term>\r
744 <listitem>\r
745 <simpara>\r
746                 Advice shown when you used <xref linkend="git-checkout(1)" /> to\r
747                 move to the detach HEAD state, to instruct how to create\r
748                 a local branch after the fact.\r
749 </simpara>\r
750 </listitem>\r
751 </varlistentry>\r
752 <varlistentry>\r
753 <term>\r
754 amWorkDir\r
755 </term>\r
756 <listitem>\r
757 <simpara>\r
758                 Advice that shows the location of the patch file when\r
759                 <xref linkend="git-am(1)" /> fails to apply it.\r
760 </simpara>\r
761 </listitem>\r
762 </varlistentry>\r
763 </variablelist>\r
764 </listitem>\r
765 </varlistentry>\r
766 <varlistentry>\r
767 <term>\r
768 core.fileMode\r
769 </term>\r
770 <listitem>\r
771 <simpara>\r
772         If false, the executable bit differences between the index and\r
773         the working tree are ignored; useful on broken filesystems like FAT.\r
774         See <xref linkend="git-update-index(1)" />.\r
775 </simpara>\r
776 <simpara>The default is true, except <xref linkend="git-clone(1)" /> or <xref linkend="git-init(1)" />\r
777 will probe and set core.fileMode false if appropriate when the\r
778 repository is created.</simpara>\r
779 </listitem>\r
780 </varlistentry>\r
781 <varlistentry>\r
782 <term>\r
783 core.ignoreCygwinFSTricks\r
784 </term>\r
785 <listitem>\r
786 <simpara>\r
787         This option is only used by Cygwin implementation of Git. If false,\r
788         the Cygwin stat() and lstat() functions are used. This may be useful\r
789         if your repository consists of a few separate directories joined in\r
790         one hierarchy using Cygwin mount. If true, Git uses native Win32 API\r
791         whenever it is possible and falls back to Cygwin functions only to\r
792         handle symbol links. The native mode is more than twice faster than\r
793         normal Cygwin l/stat() functions. True by default, unless core.filemode\r
794         is true, in which case ignoreCygwinFSTricks is ignored as Cygwin's\r
795         POSIX emulation is required to support core.filemode.\r
796 </simpara>\r
797 </listitem>\r
798 </varlistentry>\r
799 <varlistentry>\r
800 <term>\r
801 core.ignorecase\r
802 </term>\r
803 <listitem>\r
804 <simpara>\r
805         If true, this option enables various workarounds to enable\r
806         git to work better on filesystems that are not case sensitive,\r
807         like FAT. For example, if a directory listing finds\r
808         "makefile" when git expects "Makefile", git will assume\r
809         it is really the same file, and continue to remember it as\r
810         "Makefile".\r
811 </simpara>\r
812 <simpara>The default is false, except <xref linkend="git-clone(1)" /> or <xref linkend="git-init(1)" />\r
813 will probe and set core.ignorecase true if appropriate when the repository\r
814 is created.</simpara>\r
815 </listitem>\r
816 </varlistentry>\r
817 <varlistentry>\r
818 <term>\r
819 core.precomposeunicode\r
820 </term>\r
821 <listitem>\r
822 <simpara>\r
823         This option is only used by Mac OS implementation of git.\r
824         When core.precomposeunicode=true, git reverts the unicode decomposition\r
825         of filenames done by Mac OS. This is useful when sharing a repository\r
826         between Mac OS and Linux or Windows.\r
827         (Git for Windows 1.7.10 or higher is needed, or git under cygwin 1.7).\r
828         When false, file names are handled fully transparent by git,\r
829         which is backward compatible with older versions of git.\r
830 </simpara>\r
831 </listitem>\r
832 </varlistentry>\r
833 <varlistentry>\r
834 <term>\r
835 core.trustctime\r
836 </term>\r
837 <listitem>\r
838 <simpara>\r
839         If false, the ctime differences between the index and the\r
840         working tree are ignored; useful when the inode change time\r
841         is regularly modified by something outside Git (file system\r
842         crawlers and some backup systems).\r
843         See <xref linkend="git-update-index(1)" />. True by default.\r
844 </simpara>\r
845 </listitem>\r
846 </varlistentry>\r
847 <varlistentry>\r
848 <term>\r
849 core.quotepath\r
850 </term>\r
851 <listitem>\r
852 <simpara>\r
853         The commands that output paths (e.g. <emphasis>ls-files</emphasis>,\r
854         <emphasis>diff</emphasis>), when not given the <emphasis>-z</emphasis> option, will quote\r
855         "unusual" characters in the pathname by enclosing the\r
856         pathname in a double-quote pair and with backslashes the\r
857         same way strings in C source code are quoted.  If this\r
858         variable is set to false, the bytes higher than 0x80 are\r
859         not quoted but output as verbatim.  Note that double\r
860         quote, backslash and control characters are always\r
861         quoted without <emphasis>-z</emphasis> regardless of the setting of this\r
862         variable.\r
863 </simpara>\r
864 </listitem>\r
865 </varlistentry>\r
866 <varlistentry>\r
867 <term>\r
868 core.eol\r
869 </term>\r
870 <listitem>\r
871 <simpara>\r
872         Sets the line ending type to use in the working directory for\r
873         files that have the <emphasis>text</emphasis> property set.  Alternatives are\r
874         <emphasis>lf</emphasis>, <emphasis>crlf</emphasis> and <emphasis>native</emphasis>, which uses the platform's native\r
875         line ending.  The default value is <emphasis>native</emphasis>.  See\r
876         <xref linkend="gitattributes(5)" /> for more information on end-of-line\r
877         conversion.\r
878 </simpara>\r
879 </listitem>\r
880 </varlistentry>\r
881 <varlistentry>\r
882 <term>\r
883 core.safecrlf\r
884 </term>\r
885 <listitem>\r
886 <simpara>\r
887         If true, makes git check if converting <emphasis>CRLF</emphasis> is reversible when\r
888         end-of-line conversion is active.  Git will verify if a command\r
889         modifies a file in the work tree either directly or indirectly.\r
890         For example, committing a file followed by checking out the\r
891         same file should yield the original file in the work tree.  If\r
892         this is not the case for the current setting of\r
893         <emphasis>core.autocrlf</emphasis>, git will reject the file.  The variable can\r
894         be set to "warn", in which case git will only warn about an\r
895         irreversible conversion but continue the operation.\r
896 </simpara>\r
897 <simpara>CRLF conversion bears a slight chance of corrupting data.\r
898 When it is enabled, git will convert CRLF to LF during commit and LF to\r
899 CRLF during checkout.  A file that contains a mixture of LF and\r
900 CRLF before the commit cannot be recreated by git.  For text\r
901 files this is the right thing to do: it corrects line endings\r
902 such that we have only LF line endings in the repository.\r
903 But for binary files that are accidentally classified as text the\r
904 conversion can corrupt data.</simpara>\r
905 <simpara>If you recognize such corruption early you can easily fix it by\r
906 setting the conversion type explicitly in .gitattributes.  Right\r
907 after committing you still have the original file in your work\r
908 tree and this file is not yet corrupted.  You can explicitly tell\r
909 git that this file is binary and git will handle the file\r
910 appropriately.</simpara>\r
911 <simpara>Unfortunately, the desired effect of cleaning up text files with\r
912 mixed line endings and the undesired effect of corrupting binary\r
913 files cannot be distinguished.  In both cases CRLFs are removed\r
914 in an irreversible way.  For text files this is the right thing\r
915 to do because CRLFs are line endings, while for binary files\r
916 converting CRLFs corrupts data.</simpara>\r
917 <simpara>Note, this safety check does not mean that a checkout will generate a\r
918 file identical to the original file for a different setting of\r
919 <emphasis>core.eol</emphasis> and <emphasis>core.autocrlf</emphasis>, but only for the current one.  For\r
920 example, a text file with <emphasis>LF</emphasis> would be accepted with <emphasis>core.eol=lf</emphasis>\r
921 and could later be checked out with <emphasis>core.eol=crlf</emphasis>, in which case the\r
922 resulting file would contain <emphasis>CRLF</emphasis>, although the original file\r
923 contained <emphasis>LF</emphasis>.  However, in both work trees the line endings would be\r
924 consistent, that is either all <emphasis>LF</emphasis> or all <emphasis>CRLF</emphasis>, but never mixed.  A\r
925 file with mixed line endings would be reported by the <emphasis>core.safecrlf</emphasis>\r
926 mechanism.</simpara>\r
927 </listitem>\r
928 </varlistentry>\r
929 <varlistentry>\r
930 <term>\r
931 core.autocrlf\r
932 </term>\r
933 <listitem>\r
934 <simpara>\r
935         Setting this variable to "true" is almost the same as setting\r
936         the <emphasis>text</emphasis> attribute to "auto" on all files except that text\r
937         files are not guaranteed to be normalized: files that contain\r
938         <emphasis>CRLF</emphasis> in the repository will not be touched.  Use this\r
939         setting if you want to have <emphasis>CRLF</emphasis> line endings in your\r
940         working directory even though the repository does not have\r
941         normalized line endings.  This variable can be set to <emphasis>input</emphasis>,\r
942         in which case no output conversion is performed.\r
943 </simpara>\r
944 </listitem>\r
945 </varlistentry>\r
946 <varlistentry>\r
947 <term>\r
948 core.symlinks\r
949 </term>\r
950 <listitem>\r
951 <simpara>\r
952         If false, symbolic links are checked out as small plain files that\r
953         contain the link text. <xref linkend="git-update-index(1)" /> and\r
954         <xref linkend="git-add(1)" /> will not change the recorded type to regular\r
955         file. Useful on filesystems like FAT that do not support\r
956         symbolic links.\r
957 </simpara>\r
958 <simpara>The default is true, except <xref linkend="git-clone(1)" /> or <xref linkend="git-init(1)" />\r
959 will probe and set core.symlinks false if appropriate when the repository\r
960 is created.</simpara>\r
961 </listitem>\r
962 </varlistentry>\r
963 <varlistentry>\r
964 <term>\r
965 core.gitProxy\r
966 </term>\r
967 <listitem>\r
968 <simpara>\r
969         A "proxy command" to execute (as <emphasis>command host port</emphasis>) instead\r
970         of establishing direct connection to the remote server when\r
971         using the git protocol for fetching. If the variable value is\r
972         in the "COMMAND for DOMAIN" format, the command is applied only\r
973         on hostnames ending with the specified domain string. This variable\r
974         may be set multiple times and is matched in the given order;\r
975         the first match wins.\r
976 </simpara>\r
977 <simpara>Can be overridden by the <emphasis>GIT_PROXY_COMMAND</emphasis> environment variable\r
978 (which always applies universally, without the special "for"\r
979 handling).</simpara>\r
980 <simpara>The special string <emphasis>none</emphasis> can be used as the proxy command to\r
981 specify that no proxy be used for a given domain pattern.\r
982 This is useful for excluding servers inside a firewall from\r
983 proxy use, while defaulting to a common proxy for external domains.</simpara>\r
984 </listitem>\r
985 </varlistentry>\r
986 <varlistentry>\r
987 <term>\r
988 core.ignoreStat\r
989 </term>\r
990 <listitem>\r
991 <simpara>\r
992         If true, commands which modify both the working tree and the index\r
993         will mark the updated paths with the "assume unchanged" bit in the\r
994         index. These marked files are then assumed to stay unchanged in the\r
995         working tree, until you mark them otherwise manually - Git will not\r
996         detect the file changes by lstat() calls. This is useful on systems\r
997         where those are very slow, such as Microsoft Windows.\r
998         See <xref linkend="git-update-index(1)" />.\r
999         False by default.\r
1000 </simpara>\r
1001 </listitem>\r
1002 </varlistentry>\r
1003 <varlistentry>\r
1004 <term>\r
1005 core.preferSymlinkRefs\r
1006 </term>\r
1007 <listitem>\r
1008 <simpara>\r
1009         Instead of the default "symref" format for HEAD\r
1010         and other symbolic reference files, use symbolic links.\r
1011         This is sometimes needed to work with old scripts that\r
1012         expect HEAD to be a symbolic link.\r
1013 </simpara>\r
1014 </listitem>\r
1015 </varlistentry>\r
1016 <varlistentry>\r
1017 <term>\r
1018 core.bare\r
1019 </term>\r
1020 <listitem>\r
1021 <simpara>\r
1022         If true this repository is assumed to be <emphasis>bare</emphasis> and has no\r
1023         working directory associated with it.  If this is the case a\r
1024         number of commands that require a working directory will be\r
1025         disabled, such as <xref linkend="git-add(1)" /> or <xref linkend="git-merge(1)" />.\r
1026 </simpara>\r
1027 <simpara>This setting is automatically guessed by <xref linkend="git-clone(1)" /> or\r
1028 <xref linkend="git-init(1)" /> when the repository was created.  By default a\r
1029 repository that ends in "/.git" is assumed to be not bare (bare =\r
1030 false), while all other repositories are assumed to be bare (bare\r
1031 = true).</simpara>\r
1032 </listitem>\r
1033 </varlistentry>\r
1034 <varlistentry>\r
1035 <term>\r
1036 core.worktree\r
1037 </term>\r
1038 <listitem>\r
1039 <simpara>\r
1040         Set the path to the root of the working tree.\r
1041         This can be overridden by the GIT_WORK_TREE environment\r
1042         variable and the <emphasis>--work-tree</emphasis> command line option.\r
1043         The value can be an absolute path or relative to the path to\r
1044         the .git directory, which is either specified by --git-dir\r
1045         or GIT_DIR, or automatically discovered.\r
1046         If --git-dir or GIT_DIR is specified but none of\r
1047         --work-tree, GIT_WORK_TREE and core.worktree is specified,\r
1048         the current working directory is regarded as the top level\r
1049         of your working tree.\r
1050 </simpara>\r
1051 <simpara>Note that this variable is honored even when set in a configuration\r
1052 file in a ".git" subdirectory of a directory and its value differs\r
1053 from the latter directory (e.g. "/path/to/.git/config" has\r
1054 core.worktree set to "/different/path"), which is most likely a\r
1055 misconfiguration.  Running git commands in the "/path/to" directory will\r
1056 still use "/different/path" as the root of the work tree and can cause\r
1057 confusion unless you know what you are doing (e.g. you are creating a\r
1058 read-only snapshot of the same index to a location different from the\r
1059 repository's usual working tree).</simpara>\r
1060 </listitem>\r
1061 </varlistentry>\r
1062 <varlistentry>\r
1063 <term>\r
1064 core.logAllRefUpdates\r
1065 </term>\r
1066 <listitem>\r
1067 <simpara>\r
1068         Enable the reflog. Updates to a ref &lt;ref&gt; is logged to the file\r
1069         "$GIT_DIR/logs/&lt;ref&gt;", by appending the new and old\r
1070         SHA1, the date/time and the reason of the update, but\r
1071         only when the file exists.  If this configuration\r
1072         variable is set to true, missing "$GIT_DIR/logs/&lt;ref&gt;"\r
1073         file is automatically created for branch heads (i.e. under\r
1074         refs/heads/), remote refs (i.e. under refs/remotes/),\r
1075         note refs (i.e. under refs/notes/), and the symbolic ref HEAD.\r
1076 </simpara>\r
1077 <simpara>This information can be used to determine what commit\r
1078 was the tip of a branch "2 days ago".</simpara>\r
1079 <simpara>This value is true by default in a repository that has\r
1080 a working directory associated with it, and false by\r
1081 default in a bare repository.</simpara>\r
1082 </listitem>\r
1083 </varlistentry>\r
1084 <varlistentry>\r
1085 <term>\r
1086 core.repositoryFormatVersion\r
1087 </term>\r
1088 <listitem>\r
1089 <simpara>\r
1090         Internal variable identifying the repository format and layout\r
1091         version.\r
1092 </simpara>\r
1093 </listitem>\r
1094 </varlistentry>\r
1095 <varlistentry>\r
1096 <term>\r
1097 core.sharedRepository\r
1098 </term>\r
1099 <listitem>\r
1100 <simpara>\r
1101         When <emphasis>group</emphasis> (or <emphasis>true</emphasis>), the repository is made shareable between\r
1102         several users in a group (making sure all the files and objects are\r
1103         group-writable). When <emphasis>all</emphasis> (or <emphasis>world</emphasis> or <emphasis>everybody</emphasis>), the\r
1104         repository will be readable by all users, additionally to being\r
1105         group-shareable. When <emphasis>umask</emphasis> (or <emphasis>false</emphasis>), git will use permissions\r
1106         reported by umask(2). When <emphasis>0xxx</emphasis>, where <emphasis>0xxx</emphasis> is an octal number,\r
1107         files in the repository will have this mode value. <emphasis>0xxx</emphasis> will override\r
1108         user's umask value (whereas the other options will only override\r
1109         requested parts of the user's umask value). Examples: <emphasis>0660</emphasis> will make\r
1110         the repo read/write-able for the owner and group, but inaccessible to\r
1111         others (equivalent to <emphasis>group</emphasis> unless umask is e.g. <emphasis>0022</emphasis>). <emphasis>0640</emphasis> is a\r
1112         repository that is group-readable but not group-writable.\r
1113         See <xref linkend="git-init(1)" />. False by default.\r
1114 </simpara>\r
1115 </listitem>\r
1116 </varlistentry>\r
1117 <varlistentry>\r
1118 <term>\r
1119 core.warnAmbiguousRefs\r
1120 </term>\r
1121 <listitem>\r
1122 <simpara>\r
1123         If true, git will warn you if the ref name you passed it is ambiguous\r
1124         and might match multiple refs in the .git/refs/ tree. True by default.\r
1125 </simpara>\r
1126 </listitem>\r
1127 </varlistentry>\r
1128 <varlistentry>\r
1129 <term>\r
1130 core.compression\r
1131 </term>\r
1132 <listitem>\r
1133 <simpara>\r
1134         An integer -1..9, indicating a default compression level.\r
1135         -1 is the zlib default. 0 means no compression,\r
1136         and 1..9 are various speed/size tradeoffs, 9 being slowest.\r
1137         If set, this provides a default to other compression variables,\r
1138         such as <emphasis>core.loosecompression</emphasis> and <emphasis>pack.compression</emphasis>.\r
1139 </simpara>\r
1140 </listitem>\r
1141 </varlistentry>\r
1142 <varlistentry>\r
1143 <term>\r
1144 core.loosecompression\r
1145 </term>\r
1146 <listitem>\r
1147 <simpara>\r
1148         An integer -1..9, indicating the compression level for objects that\r
1149         are not in a pack file. -1 is the zlib default. 0 means no\r
1150         compression, and 1..9 are various speed/size tradeoffs, 9 being\r
1151         slowest.  If not set,  defaults to core.compression.  If that is\r
1152         not set,  defaults to 1 (best speed).\r
1153 </simpara>\r
1154 </listitem>\r
1155 </varlistentry>\r
1156 <varlistentry>\r
1157 <term>\r
1158 core.packedGitWindowSize\r
1159 </term>\r
1160 <listitem>\r
1161 <simpara>\r
1162         Number of bytes of a pack file to map into memory in a\r
1163         single mapping operation.  Larger window sizes may allow\r
1164         your system to process a smaller number of large pack files\r
1165         more quickly.  Smaller window sizes will negatively affect\r
1166         performance due to increased calls to the operating system's\r
1167         memory manager, but may improve performance when accessing\r
1168         a large number of large pack files.\r
1169 </simpara>\r
1170 <simpara>Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32\r
1171 MiB on 32 bit platforms and 1 GiB on 64 bit platforms.  This should\r
1172 be reasonable for all users/operating systems.  You probably do\r
1173 not need to adjust this value.</simpara>\r
1174 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>\r
1175 </listitem>\r
1176 </varlistentry>\r
1177 <varlistentry>\r
1178 <term>\r
1179 core.packedGitLimit\r
1180 </term>\r
1181 <listitem>\r
1182 <simpara>\r
1183         Maximum number of bytes to map simultaneously into memory\r
1184         from pack files.  If Git needs to access more than this many\r
1185         bytes at once to complete an operation it will unmap existing\r
1186         regions to reclaim virtual address space within the process.\r
1187 </simpara>\r
1188 <simpara>Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.\r
1189 This should be reasonable for all users/operating systems, except on\r
1190 the largest projects.  You probably do not need to adjust this value.</simpara>\r
1191 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>\r
1192 </listitem>\r
1193 </varlistentry>\r
1194 <varlistentry>\r
1195 <term>\r
1196 core.deltaBaseCacheLimit\r
1197 </term>\r
1198 <listitem>\r
1199 <simpara>\r
1200         Maximum number of bytes to reserve for caching base objects\r
1201         that may be referenced by multiple deltified objects.  By storing the\r
1202         entire decompressed base objects in a cache Git is able\r
1203         to avoid unpacking and decompressing frequently used base\r
1204         objects multiple times.\r
1205 </simpara>\r
1206 <simpara>Default is 16 MiB on all platforms.  This should be reasonable\r
1207 for all users/operating systems, except on the largest projects.\r
1208 You probably do not need to adjust this value.</simpara>\r
1209 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>\r
1210 </listitem>\r
1211 </varlistentry>\r
1212 <varlistentry>\r
1213 <term>\r
1214 core.bigFileThreshold\r
1215 </term>\r
1216 <listitem>\r
1217 <simpara>\r
1218         Files larger than this size are stored deflated, without\r
1219         attempting delta compression.  Storing large files without\r
1220         delta compression avoids excessive memory usage, at the\r
1221         slight expense of increased disk usage.\r
1222 </simpara>\r
1223 <simpara>Default is 512 MiB on all platforms.  This should be reasonable\r
1224 for most projects as source code and other text files can still\r
1225 be delta compressed, but larger binary media files won't be.</simpara>\r
1226 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>\r
1227 </listitem>\r
1228 </varlistentry>\r
1229 <varlistentry>\r
1230 <term>\r
1231 core.excludesfile\r
1232 </term>\r
1233 <listitem>\r
1234 <simpara>\r
1235         In addition to <emphasis>.gitignore</emphasis> (per-directory) and\r
1236         <emphasis>.git/info/exclude</emphasis>, git looks into this file for patterns\r
1237         of files which are not meant to be tracked.  "<emphasis>~/</emphasis>" is expanded\r
1238         to the value of <emphasis>$HOME</emphasis> and "<emphasis>~user/</emphasis>" to the specified user's\r
1239         home directory. Its default value is $XDG_CONFIG_HOME/git/ignore.\r
1240         If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore\r
1241         is used instead. See <xref linkend="gitignore(5)" />.\r
1242 </simpara>\r
1243 </listitem>\r
1244 </varlistentry>\r
1245 <varlistentry>\r
1246 <term>\r
1247 core.askpass\r
1248 </term>\r
1249 <listitem>\r
1250 <simpara>\r
1251         Some commands (e.g. svn and http interfaces) that interactively\r
1252         ask for a password can be told to use an external program given\r
1253         via the value of this variable. Can be overridden by the <emphasis>GIT_ASKPASS</emphasis>\r
1254         environment variable. If not set, fall back to the value of the\r
1255         <emphasis>SSH_ASKPASS</emphasis> environment variable or, failing that, a simple password\r
1256         prompt. The external program shall be given a suitable prompt as\r
1257         command line argument and write the password on its STDOUT.\r
1258 </simpara>\r
1259 </listitem>\r
1260 </varlistentry>\r
1261 <varlistentry>\r
1262 <term>\r
1263 core.attributesfile\r
1264 </term>\r
1265 <listitem>\r
1266 <simpara>\r
1267         In addition to <emphasis>.gitattributes</emphasis> (per-directory) and\r
1268         <emphasis>.git/info/attributes</emphasis>, git looks into this file for attributes\r
1269         (see <xref linkend="gitattributes(5)" />). Path expansions are made the same\r
1270         way as for <emphasis>core.excludesfile</emphasis>. Its default value is\r
1271         $XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not\r
1272         set or empty, $HOME/.config/git/attributes is used instead.\r
1273 </simpara>\r
1274 </listitem>\r
1275 </varlistentry>\r
1276 <varlistentry>\r
1277 <term>\r
1278 core.editor\r
1279 </term>\r
1280 <listitem>\r
1281 <simpara>\r
1282         Commands such as <emphasis>commit</emphasis> and <emphasis>tag</emphasis> that lets you edit\r
1283         messages by launching an editor uses the value of this\r
1284         variable when it is set, and the environment variable\r
1285         <emphasis>GIT_EDITOR</emphasis> is not set.  See <xref linkend="git-var(1)" />.\r
1286 </simpara>\r
1287 </listitem>\r
1288 </varlistentry>\r
1289 <varlistentry>\r
1290 <term>\r
1291 sequence.editor\r
1292 </term>\r
1293 <listitem>\r
1294 <simpara>\r
1295         Text editor used by <emphasis>git rebase -i</emphasis> for editing the rebase insn file.\r
1296         The value is meant to be interpreted by the shell when it is used.\r
1297         It can be overridden by the <emphasis>GIT_SEQUENCE_EDITOR</emphasis> environment variable.\r
1298         When not configured the default commit message editor is used instead.\r
1299 </simpara>\r
1300 </listitem>\r
1301 </varlistentry>\r
1302 <varlistentry>\r
1303 <term>\r
1304 core.pager\r
1305 </term>\r
1306 <listitem>\r
1307 <simpara>\r
1308         The command that git will use to paginate output.  Can\r
1309         be overridden with the <emphasis>GIT_PAGER</emphasis> environment\r
1310         variable.  Note that git sets the <emphasis>LESS</emphasis> environment\r
1311         variable to <emphasis>FRSX</emphasis> if it is unset when it runs the\r
1312         pager.  One can change these settings by setting the\r
1313         <emphasis>LESS</emphasis> variable to some other value.  Alternately,\r
1314         these settings can be overridden on a project or\r
1315         global basis by setting the <emphasis>core.pager</emphasis> option.\r
1316         Setting <emphasis>core.pager</emphasis> has no effect on the <emphasis>LESS</emphasis>\r
1317         environment variable behaviour above, so if you want\r
1318         to override git's default settings this way, you need\r
1319         to be explicit.  For example, to disable the S option\r
1320         in a backward compatible manner, set <emphasis>core.pager</emphasis>\r
1321         to <emphasis>less -+S</emphasis>.  This will be passed to the shell by\r
1322         git, which will translate the final command to\r
1323         <emphasis>LESS=FRSX less -+S</emphasis>.\r
1324 </simpara>\r
1325 </listitem>\r
1326 </varlistentry>\r
1327 <varlistentry>\r
1328 <term>\r
1329 core.whitespace\r
1330 </term>\r
1331 <listitem>\r
1332 <simpara>\r
1333         A comma separated list of common whitespace problems to\r
1334         notice.  <emphasis>git diff</emphasis> will use <emphasis>color.diff.whitespace</emphasis> to\r
1335         highlight them, and <emphasis>git apply --whitespace=error</emphasis> will\r
1336         consider them as errors.  You can prefix <emphasis>-</emphasis> to disable\r
1337         any of them (e.g. <emphasis>-trailing-space</emphasis>):\r
1338 </simpara>\r
1339 <itemizedlist>\r
1340 <listitem>\r
1341 <simpara>\r
1342 <emphasis>blank-at-eol</emphasis> treats trailing whitespaces at the end of the line\r
1343   as an error (enabled by default).\r
1344 </simpara>\r
1345 </listitem>\r
1346 <listitem>\r
1347 <simpara>\r
1348 <emphasis>space-before-tab</emphasis> treats a space character that appears immediately\r
1349   before a tab character in the initial indent part of the line as an\r
1350   error (enabled by default).\r
1351 </simpara>\r
1352 </listitem>\r
1353 <listitem>\r
1354 <simpara>\r
1355 <emphasis>indent-with-non-tab</emphasis> treats a line that is indented with space\r
1356   characters instead of the equivalent tabs as an error (not enabled by\r
1357   default).\r
1358 </simpara>\r
1359 </listitem>\r
1360 <listitem>\r
1361 <simpara>\r
1362 <emphasis>tab-in-indent</emphasis> treats a tab character in the initial indent part of\r
1363   the line as an error (not enabled by default).\r
1364 </simpara>\r
1365 </listitem>\r
1366 <listitem>\r
1367 <simpara>\r
1368 <emphasis>blank-at-eof</emphasis> treats blank lines added at the end of file as an error\r
1369   (enabled by default).\r
1370 </simpara>\r
1371 </listitem>\r
1372 <listitem>\r
1373 <simpara>\r
1374 <emphasis>trailing-space</emphasis> is a short-hand to cover both <emphasis>blank-at-eol</emphasis> and\r
1375   <emphasis>blank-at-eof</emphasis>.\r
1376 </simpara>\r
1377 </listitem>\r
1378 <listitem>\r
1379 <simpara>\r
1380 <emphasis>cr-at-eol</emphasis> treats a carriage-return at the end of line as\r
1381   part of the line terminator, i.e. with it, <emphasis>trailing-space</emphasis>\r
1382   does not trigger if the character before such a carriage-return\r
1383   is not a whitespace (not enabled by default).\r
1384 </simpara>\r
1385 </listitem>\r
1386 <listitem>\r
1387 <simpara>\r
1388 <emphasis>tabwidth=&lt;n&gt;</emphasis> tells how many character positions a tab occupies; this\r
1389   is relevant for <emphasis>indent-with-non-tab</emphasis> and when git fixes <emphasis>tab-in-indent</emphasis>\r
1390   errors. The default tab width is 8. Allowed values are 1 to 63.\r
1391 </simpara>\r
1392 </listitem>\r
1393 </itemizedlist>\r
1394 </listitem>\r
1395 </varlistentry>\r
1396 <varlistentry>\r
1397 <term>\r
1398 core.fsyncobjectfiles\r
1399 </term>\r
1400 <listitem>\r
1401 <simpara>\r
1402         This boolean will enable <emphasis>fsync()</emphasis> when writing object files.\r
1403 </simpara>\r
1404 <simpara>This is a total waste of time and effort on a filesystem that orders\r
1405 data writes properly, but can be useful for filesystems that do not use\r
1406 journalling (traditional UNIX filesystems) or that only journal metadata\r
1407 and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").</simpara>\r
1408 </listitem>\r
1409 </varlistentry>\r
1410 <varlistentry>\r
1411 <term>\r
1412 core.preloadindex\r
1413 </term>\r
1414 <listitem>\r
1415 <simpara>\r
1416         Enable parallel index preload for operations like <emphasis>git diff</emphasis>\r
1417 </simpara>\r
1418 <simpara>This can speed up operations like <emphasis>git diff</emphasis> and <emphasis>git status</emphasis> especially\r
1419 on filesystems like NFS that have weak caching semantics and thus\r
1420 relatively high IO latencies.  With this set to <emphasis>true</emphasis>, git will do the\r
1421 index comparison to the filesystem data in parallel, allowing\r
1422 overlapping IO's.</simpara>\r
1423 </listitem>\r
1424 </varlistentry>\r
1425 <varlistentry>\r
1426 <term>\r
1427 core.createObject\r
1428 </term>\r
1429 <listitem>\r
1430 <simpara>\r
1431         You can set this to <emphasis>link</emphasis>, in which case a hardlink followed by\r
1432         a delete of the source are used to make sure that object creation\r
1433         will not overwrite existing objects.\r
1434 </simpara>\r
1435 <simpara>On some file system/operating system combinations, this is unreliable.\r
1436 Set this config setting to <emphasis>rename</emphasis> there; However, This will remove the\r
1437 check that makes sure that existing object files will not get overwritten.</simpara>\r
1438 </listitem>\r
1439 </varlistentry>\r
1440 <varlistentry>\r
1441 <term>\r
1442 core.notesRef\r
1443 </term>\r
1444 <listitem>\r
1445 <simpara>\r
1446         When showing commit messages, also show notes which are stored in\r
1447         the given ref.  The ref must be fully qualified.  If the given\r
1448         ref does not exist, it is not an error but means that no\r
1449         notes should be printed.\r
1450 </simpara>\r
1451 <simpara>This setting defaults to "refs/notes/commits", and it can be overridden by\r
1452 the <emphasis>GIT_NOTES_REF</emphasis> environment variable.  See <xref linkend="git-notes(1)" />.</simpara>\r
1453 </listitem>\r
1454 </varlistentry>\r
1455 <varlistentry>\r
1456 <term>\r
1457 core.sparseCheckout\r
1458 </term>\r
1459 <listitem>\r
1460 <simpara>\r
1461         Enable "sparse checkout" feature. See section "Sparse checkout" in\r
1462         <xref linkend="git-read-tree(1)" /> for more information.\r
1463 </simpara>\r
1464 </listitem>\r
1465 </varlistentry>\r
1466 <varlistentry>\r
1467 <term>\r
1468 core.abbrev\r
1469 </term>\r
1470 <listitem>\r
1471 <simpara>\r
1472         Set the length object names are abbreviated to.  If unspecified,\r
1473         many commands abbreviate to 7 hexdigits, which may not be enough\r
1474         for abbreviated object names to stay unique for sufficiently long\r
1475         time.\r
1476 </simpara>\r
1477 </listitem>\r
1478 </varlistentry>\r
1479 <varlistentry>\r
1480 <term>\r
1481 add.ignore-errors\r
1482 </term>\r
1483 <term>\r
1484 add.ignoreErrors\r
1485 </term>\r
1486 <listitem>\r
1487 <simpara>\r
1488         Tells <emphasis>git add</emphasis> to continue adding files when some files cannot be\r
1489         added due to indexing errors. Equivalent to the <emphasis>--ignore-errors</emphasis>\r
1490         option of <xref linkend="git-add(1)" />.  Older versions of git accept only\r
1491         <emphasis>add.ignore-errors</emphasis>, which does not follow the usual naming\r
1492         convention for configuration variables.  Newer versions of git\r
1493         honor <emphasis>add.ignoreErrors</emphasis> as well.\r
1494 </simpara>\r
1495 </listitem>\r
1496 </varlistentry>\r
1497 <varlistentry>\r
1498 <term>\r
1499 alias.*\r
1500 </term>\r
1501 <listitem>\r
1502 <simpara>\r
1503         Command aliases for the <xref linkend="git(1)" /> command wrapper - e.g.\r
1504         after defining "alias.last = cat-file commit HEAD", the invocation\r
1505         "git last" is equivalent to "git cat-file commit HEAD". To avoid\r
1506         confusion and troubles with script usage, aliases that\r
1507         hide existing git commands are ignored. Arguments are split by\r
1508         spaces, the usual shell quoting and escaping is supported.\r
1509         quote pair and a backslash can be used to quote them.\r
1510 </simpara>\r
1511 <simpara>If the alias expansion is prefixed with an exclamation point,\r
1512 it will be treated as a shell command.  For example, defining\r
1513 "alias.new = !gitk --all --not ORIG_HEAD", the invocation\r
1514 "git new" is equivalent to running the shell command\r
1515 "gitk --all --not ORIG_HEAD".  Note that shell commands will be\r
1516 executed from the top-level directory of a repository, which may\r
1517 not necessarily be the current directory.\r
1518 <emphasis>GIT_PREFIX</emphasis> is set as returned by running <emphasis>git rev-parse --show-prefix</emphasis>\r
1519 from the original current directory. See <xref linkend="git-rev-parse(1)" />.</simpara>\r
1520 </listitem>\r
1521 </varlistentry>\r
1522 <varlistentry>\r
1523 <term>\r
1524 am.keepcr\r
1525 </term>\r
1526 <listitem>\r
1527 <simpara>\r
1528         If true, git-am will call git-mailsplit for patches in mbox format\r
1529         with parameter <emphasis>--keep-cr</emphasis>. In this case git-mailsplit will\r
1530         not remove <emphasis>\r</emphasis> from lines ending with <emphasis>\r\n</emphasis>. Can be overridden\r
1531         by giving <emphasis>--no-keep-cr</emphasis> from the command line.\r
1532         See <xref linkend="git-am(1)" />, <xref linkend="git-mailsplit(1)" />.\r
1533 </simpara>\r
1534 </listitem>\r
1535 </varlistentry>\r
1536 <varlistentry>\r
1537 <term>\r
1538 apply.ignorewhitespace\r
1539 </term>\r
1540 <listitem>\r
1541 <simpara>\r
1542         When set to <emphasis>change</emphasis>, tells <emphasis>git apply</emphasis> to ignore changes in\r
1543         whitespace, in the same way as the <emphasis>--ignore-space-change</emphasis>\r
1544         option.\r
1545         When set to one of: no, none, never, false tells <emphasis>git apply</emphasis> to\r
1546         respect all whitespace differences.\r
1547         See <xref linkend="git-apply(1)" />.\r
1548 </simpara>\r
1549 </listitem>\r
1550 </varlistentry>\r
1551 <varlistentry>\r
1552 <term>\r
1553 apply.whitespace\r
1554 </term>\r
1555 <listitem>\r
1556 <simpara>\r
1557         Tells <emphasis>git apply</emphasis> how to handle whitespaces, in the same way\r
1558         as the <emphasis>--whitespace</emphasis> option. See <xref linkend="git-apply(1)" />.\r
1559 </simpara>\r
1560 </listitem>\r
1561 </varlistentry>\r
1562 <varlistentry>\r
1563 <term>\r
1564 branch.autosetupmerge\r
1565 </term>\r
1566 <listitem>\r
1567 <simpara>\r
1568         Tells <emphasis>git branch</emphasis> and <emphasis>git checkout</emphasis> to set up new branches\r
1569         so that <xref linkend="git-pull(1)" /> will appropriately merge from the\r
1570         starting point branch. Note that even if this option is not set,\r
1571         this behavior can be chosen per-branch using the <emphasis>--track</emphasis>\r
1572         and <emphasis>--no-track</emphasis> options. The valid settings are: <emphasis>false</emphasis> -- no\r
1573         automatic setup is done; <emphasis>true</emphasis> -- automatic setup is done when the\r
1574         starting point is a remote-tracking branch; <emphasis>always</emphasis> --\r
1575         automatic setup is done when the starting point is either a\r
1576         local branch or remote-tracking\r
1577         branch. This option defaults to true.\r
1578 </simpara>\r
1579 </listitem>\r
1580 </varlistentry>\r
1581 <varlistentry>\r
1582 <term>\r
1583 branch.autosetuprebase\r
1584 </term>\r
1585 <listitem>\r
1586 <simpara>\r
1587         When a new branch is created with <emphasis>git branch</emphasis> or <emphasis>git checkout</emphasis>\r
1588         that tracks another branch, this variable tells git to set\r
1589         up pull to rebase instead of merge (see "branch.&lt;name&gt;.rebase").\r
1590         When <emphasis>never</emphasis>, rebase is never automatically set to true.\r
1591         When <emphasis>local</emphasis>, rebase is set to true for tracked branches of\r
1592         other local branches.\r
1593         When <emphasis>remote</emphasis>, rebase is set to true for tracked branches of\r
1594         remote-tracking branches.\r
1595         When <emphasis>always</emphasis>, rebase will be set to true for all tracking\r
1596         branches.\r
1597         See "branch.autosetupmerge" for details on how to set up a\r
1598         branch to track another branch.\r
1599         This option defaults to never.\r
1600 </simpara>\r
1601 </listitem>\r
1602 </varlistentry>\r
1603 <varlistentry>\r
1604 <term>\r
1605 branch.&lt;name&gt;.remote\r
1606 </term>\r
1607 <listitem>\r
1608 <simpara>\r
1609         When in branch &lt;name&gt;, it tells <emphasis>git fetch</emphasis> and <emphasis>git push</emphasis> which\r
1610         remote to fetch from/push to.  It defaults to <emphasis>origin</emphasis> if no remote is\r
1611         configured. <emphasis>origin</emphasis> is also used if you are not on any branch.\r
1612 </simpara>\r
1613 </listitem>\r
1614 </varlistentry>\r
1615 <varlistentry>\r
1616 <term>\r
1617 branch.&lt;name&gt;.merge\r
1618 </term>\r
1619 <listitem>\r
1620 <simpara>\r
1621         Defines, together with branch.&lt;name&gt;.remote, the upstream branch\r
1622         for the given branch. It tells <emphasis>git fetch</emphasis>/<emphasis>git pull</emphasis>/<emphasis>git rebase</emphasis> which\r
1623         branch to merge and can also affect <emphasis>git push</emphasis> (see push.default).\r
1624         When in branch &lt;name&gt;, it tells <emphasis>git fetch</emphasis> the default\r
1625         refspec to be marked for merging in FETCH_HEAD. The value is\r
1626         handled like the remote part of a refspec, and must match a\r
1627         ref which is fetched from the remote given by\r
1628         "branch.&lt;name&gt;.remote".\r
1629         The merge information is used by <emphasis>git pull</emphasis> (which at first calls\r
1630         <emphasis>git fetch</emphasis>) to lookup the default branch for merging. Without\r
1631         this option, <emphasis>git pull</emphasis> defaults to merge the first refspec fetched.\r
1632         Specify multiple values to get an octopus merge.\r
1633         If you wish to setup <emphasis>git pull</emphasis> so that it merges into &lt;name&gt; from\r
1634         another branch in the local repository, you can point\r
1635         branch.&lt;name&gt;.merge to the desired branch, and use the special setting\r
1636         <emphasis>.</emphasis> (a period) for branch.&lt;name&gt;.remote.\r
1637 </simpara>\r
1638 </listitem>\r
1639 </varlistentry>\r
1640 <varlistentry>\r
1641 <term>\r
1642 branch.&lt;name&gt;.mergeoptions\r
1643 </term>\r
1644 <listitem>\r
1645 <simpara>\r
1646         Sets default options for merging into branch &lt;name&gt;. The syntax and\r
1647         supported options are the same as those of <xref linkend="git-merge(1)" />, but\r
1648         option values containing whitespace characters are currently not\r
1649         supported.\r
1650 </simpara>\r
1651 </listitem>\r
1652 </varlistentry>\r
1653 <varlistentry>\r
1654 <term>\r
1655 branch.&lt;name&gt;.rebase\r
1656 </term>\r
1657 <listitem>\r
1658 <simpara>\r
1659         When true, rebase the branch &lt;name&gt; on top of the fetched branch,\r
1660         instead of merging the default branch from the default remote when\r
1661         "git pull" is run. See "pull.rebase" for doing this in a non\r
1662         branch-specific manner.\r
1663 </simpara>\r
1664 <simpara><emphasis role="strong">NOTE</emphasis>: this is a possibly dangerous operation; do <emphasis role="strong">not</emphasis> use\r
1665 it unless you understand the implications (see <xref linkend="git-rebase(1)" />\r
1666 for details).</simpara>\r
1667 </listitem>\r
1668 </varlistentry>\r
1669 <varlistentry>\r
1670 <term>\r
1671 browser.&lt;tool&gt;.cmd\r
1672 </term>\r
1673 <listitem>\r
1674 <simpara>\r
1675         Specify the command to invoke the specified browser. The\r
1676         specified command is evaluated in shell with the URLs passed\r
1677         as arguments. (See <xref linkend="git-web&#45;&#45;browse(1)" />.)\r
1678 </simpara>\r
1679 </listitem>\r
1680 </varlistentry>\r
1681 <varlistentry>\r
1682 <term>\r
1683 browser.&lt;tool&gt;.path\r
1684 </term>\r
1685 <listitem>\r
1686 <simpara>\r
1687         Override the path for the given tool that may be used to\r
1688         browse HTML help (see <emphasis>-w</emphasis> option in <xref linkend="git-help(1)" />) or a\r
1689         working repository in gitweb (see <xref linkend="git-instaweb(1)" />).\r
1690 </simpara>\r
1691 </listitem>\r
1692 </varlistentry>\r
1693 <varlistentry>\r
1694 <term>\r
1695 clean.requireForce\r
1696 </term>\r
1697 <listitem>\r
1698 <simpara>\r
1699         A boolean to make git-clean do nothing unless given -f\r
1700         or -n.   Defaults to true.\r
1701 </simpara>\r
1702 </listitem>\r
1703 </varlistentry>\r
1704 <varlistentry>\r
1705 <term>\r
1706 color.branch\r
1707 </term>\r
1708 <listitem>\r
1709 <simpara>\r
1710         A boolean to enable/disable color in the output of\r
1711         <xref linkend="git-branch(1)" />. May be set to <emphasis>always</emphasis>,\r
1712         <emphasis>false</emphasis> (or <emphasis>never</emphasis>) or <emphasis>auto</emphasis> (or <emphasis>true</emphasis>), in which case colors are used\r
1713         only when the output is to a terminal. Defaults to false.\r
1714 </simpara>\r
1715 </listitem>\r
1716 </varlistentry>\r
1717 <varlistentry>\r
1718 <term>\r
1719 color.branch.&lt;slot&gt;\r
1720 </term>\r
1721 <listitem>\r
1722 <simpara>\r
1723         Use customized color for branch coloration. <emphasis>&lt;slot&gt;</emphasis> is one of\r
1724         <emphasis>current</emphasis> (the current branch), <emphasis>local</emphasis> (a local branch),\r
1725         <emphasis>remote</emphasis> (a remote-tracking branch in refs/remotes/), <emphasis>plain</emphasis> (other\r
1726         refs).\r
1727 </simpara>\r
1728 <simpara>The value for these configuration variables is a list of colors (at most\r
1729 two) and attributes (at most one), separated by spaces.  The colors\r
1730 accepted are <emphasis>normal</emphasis>, <emphasis>black</emphasis>, <emphasis>red</emphasis>, <emphasis>green</emphasis>, <emphasis>yellow</emphasis>, <emphasis>blue</emphasis>,\r
1731 <emphasis>magenta</emphasis>, <emphasis>cyan</emphasis> and <emphasis>white</emphasis>; the attributes are <emphasis>bold</emphasis>, <emphasis>dim</emphasis>, <emphasis>ul</emphasis>,\r
1732 <emphasis>blink</emphasis> and <emphasis>reverse</emphasis>.  The first color given is the foreground; the\r
1733 second is the background.  The position of the attribute, if any,\r
1734 doesn't matter.</simpara>\r
1735 </listitem>\r
1736 </varlistentry>\r
1737 <varlistentry>\r
1738 <term>\r
1739 color.diff\r
1740 </term>\r
1741 <listitem>\r
1742 <simpara>\r
1743         Whether to use ANSI escape sequences to add color to patches.\r
1744         If this is set to <emphasis>always</emphasis>, <xref linkend="git-diff(1)" />,\r
1745         <xref linkend="git-log(1)" />, and <xref linkend="git-show(1)" /> will use color\r
1746         for all patches.  If it is set to <emphasis>true</emphasis> or <emphasis>auto</emphasis>, those\r
1747         commands will only use color when output is to the terminal.\r
1748         Defaults to false.\r
1749 </simpara>\r
1750 <simpara>This does not affect <xref linkend="git-format-patch(1)" /> nor the\r
1751 <emphasis>git-diff-&#42;</emphasis> plumbing commands.  Can be overridden on the\r
1752 command line with the <emphasis>--color[=&lt;when&gt;]</emphasis> option.</simpara>\r
1753 </listitem>\r
1754 </varlistentry>\r
1755 <varlistentry>\r
1756 <term>\r
1757 color.diff.&lt;slot&gt;\r
1758 </term>\r
1759 <listitem>\r
1760 <simpara>\r
1761         Use customized color for diff colorization.  <emphasis>&lt;slot&gt;</emphasis> specifies\r
1762         which part of the patch to use the specified color, and is one\r
1763         of <emphasis>plain</emphasis> (context text), <emphasis>meta</emphasis> (metainformation), <emphasis>frag</emphasis>\r
1764         (hunk header), <emphasis>func</emphasis> (function in hunk header), <emphasis>old</emphasis> (removed lines),\r
1765         <emphasis>new</emphasis> (added lines), <emphasis>commit</emphasis> (commit headers), or <emphasis>whitespace</emphasis>\r
1766         (highlighting whitespace errors). The values of these variables may be\r
1767         specified as in color.branch.&lt;slot&gt;.\r
1768 </simpara>\r
1769 </listitem>\r
1770 </varlistentry>\r
1771 <varlistentry>\r
1772 <term>\r
1773 color.decorate.&lt;slot&gt;\r
1774 </term>\r
1775 <listitem>\r
1776 <simpara>\r
1777         Use customized color for <emphasis>git log --decorate</emphasis> output.  <emphasis>&lt;slot&gt;</emphasis> is one\r
1778         of <emphasis>branch</emphasis>, <emphasis>remoteBranch</emphasis>, <emphasis>tag</emphasis>, <emphasis>stash</emphasis> or <emphasis>HEAD</emphasis> for local\r
1779         branches, remote-tracking branches, tags, stash and HEAD, respectively.\r
1780 </simpara>\r
1781 </listitem>\r
1782 </varlistentry>\r
1783 <varlistentry>\r
1784 <term>\r
1785 color.grep\r
1786 </term>\r
1787 <listitem>\r
1788 <simpara>\r
1789         When set to <emphasis>always</emphasis>, always highlight matches.  When <emphasis>false</emphasis> (or\r
1790         <emphasis>never</emphasis>), never.  When set to <emphasis>true</emphasis> or <emphasis>auto</emphasis>, use color only\r
1791         when the output is written to the terminal.  Defaults to <emphasis>false</emphasis>.\r
1792 </simpara>\r
1793 </listitem>\r
1794 </varlistentry>\r
1795 <varlistentry>\r
1796 <term>\r
1797 color.grep.&lt;slot&gt;\r
1798 </term>\r
1799 <listitem>\r
1800 <simpara>\r
1801         Use customized color for grep colorization.  <emphasis>&lt;slot&gt;</emphasis> specifies which\r
1802         part of the line to use the specified color, and is one of\r
1803 </simpara>\r
1804 <variablelist>\r
1805 <varlistentry>\r
1806 <term>\r
1807 <emphasis>context</emphasis>\r
1808 </term>\r
1809 <listitem>\r
1810 <simpara>\r
1811         non-matching text in context lines (when using <emphasis>-A</emphasis>, <emphasis>-B</emphasis>, or <emphasis>-C</emphasis>)\r
1812 </simpara>\r
1813 </listitem>\r
1814 </varlistentry>\r
1815 <varlistentry>\r
1816 <term>\r
1817 <emphasis>filename</emphasis>\r
1818 </term>\r
1819 <listitem>\r
1820 <simpara>\r
1821         filename prefix (when not using <emphasis>-h</emphasis>)\r
1822 </simpara>\r
1823 </listitem>\r
1824 </varlistentry>\r
1825 <varlistentry>\r
1826 <term>\r
1827 <emphasis>function</emphasis>\r
1828 </term>\r
1829 <listitem>\r
1830 <simpara>\r
1831         function name lines (when using <emphasis>-p</emphasis>)\r
1832 </simpara>\r
1833 </listitem>\r
1834 </varlistentry>\r
1835 <varlistentry>\r
1836 <term>\r
1837 <emphasis>linenumber</emphasis>\r
1838 </term>\r
1839 <listitem>\r
1840 <simpara>\r
1841         line number prefix (when using <emphasis>-n</emphasis>)\r
1842 </simpara>\r
1843 </listitem>\r
1844 </varlistentry>\r
1845 <varlistentry>\r
1846 <term>\r
1847 <emphasis>match</emphasis>\r
1848 </term>\r
1849 <listitem>\r
1850 <simpara>\r
1851         matching text\r
1852 </simpara>\r
1853 </listitem>\r
1854 </varlistentry>\r
1855 <varlistentry>\r
1856 <term>\r
1857 <emphasis>selected</emphasis>\r
1858 </term>\r
1859 <listitem>\r
1860 <simpara>\r
1861         non-matching text in selected lines\r
1862 </simpara>\r
1863 </listitem>\r
1864 </varlistentry>\r
1865 <varlistentry>\r
1866 <term>\r
1867 <emphasis>separator</emphasis>\r
1868 </term>\r
1869 <listitem>\r
1870 <simpara>\r
1871         separators between fields on a line (<emphasis>:</emphasis>, <emphasis>-</emphasis>, and <emphasis>=</emphasis>)\r
1872         and between hunks (<emphasis>--</emphasis>)\r
1873 </simpara>\r
1874 </listitem>\r
1875 </varlistentry>\r
1876 </variablelist>\r
1877 <simpara>The values of these variables may be specified as in color.branch.&lt;slot&gt;.</simpara>\r
1878 </listitem>\r
1879 </varlistentry>\r
1880 <varlistentry>\r
1881 <term>\r
1882 color.interactive\r
1883 </term>\r
1884 <listitem>\r
1885 <simpara>\r
1886         When set to <emphasis>always</emphasis>, always use colors for interactive prompts\r
1887         and displays (such as those used by "git-add --interactive").\r
1888         When false (or <emphasis>never</emphasis>), never.  When set to <emphasis>true</emphasis> or <emphasis>auto</emphasis>, use\r
1889         colors only when the output is to the terminal. Defaults to false.\r
1890 </simpara>\r
1891 </listitem>\r
1892 </varlistentry>\r
1893 <varlistentry>\r
1894 <term>\r
1895 color.interactive.&lt;slot&gt;\r
1896 </term>\r
1897 <listitem>\r
1898 <simpara>\r
1899         Use customized color for <emphasis>git add --interactive</emphasis>\r
1900         output. <emphasis>&lt;slot&gt;</emphasis> may be <emphasis>prompt</emphasis>, <emphasis>header</emphasis>, <emphasis>help</emphasis> or <emphasis>error</emphasis>, for\r
1901         four distinct types of normal output from interactive\r
1902         commands.  The values of these variables may be specified as\r
1903         in color.branch.&lt;slot&gt;.\r
1904 </simpara>\r
1905 </listitem>\r
1906 </varlistentry>\r
1907 <varlistentry>\r
1908 <term>\r
1909 color.pager\r
1910 </term>\r
1911 <listitem>\r
1912 <simpara>\r
1913         A boolean to enable/disable colored output when the pager is in\r
1914         use (default is true).\r
1915 </simpara>\r
1916 </listitem>\r
1917 </varlistentry>\r
1918 <varlistentry>\r
1919 <term>\r
1920 color.showbranch\r
1921 </term>\r
1922 <listitem>\r
1923 <simpara>\r
1924         A boolean to enable/disable color in the output of\r
1925         <xref linkend="git-show-branch(1)" />. May be set to <emphasis>always</emphasis>,\r
1926         <emphasis>false</emphasis> (or <emphasis>never</emphasis>) or <emphasis>auto</emphasis> (or <emphasis>true</emphasis>), in which case colors are used\r
1927         only when the output is to a terminal. Defaults to false.\r
1928 </simpara>\r
1929 </listitem>\r
1930 </varlistentry>\r
1931 <varlistentry>\r
1932 <term>\r
1933 color.status\r
1934 </term>\r
1935 <listitem>\r
1936 <simpara>\r
1937         A boolean to enable/disable color in the output of\r
1938         <xref linkend="git-status(1)" />. May be set to <emphasis>always</emphasis>,\r
1939         <emphasis>false</emphasis> (or <emphasis>never</emphasis>) or <emphasis>auto</emphasis> (or <emphasis>true</emphasis>), in which case colors are used\r
1940         only when the output is to a terminal. Defaults to false.\r
1941 </simpara>\r
1942 </listitem>\r
1943 </varlistentry>\r
1944 <varlistentry>\r
1945 <term>\r
1946 color.status.&lt;slot&gt;\r
1947 </term>\r
1948 <listitem>\r
1949 <simpara>\r
1950         Use customized color for status colorization. <emphasis>&lt;slot&gt;</emphasis> is\r
1951         one of <emphasis>header</emphasis> (the header text of the status message),\r
1952         <emphasis>added</emphasis> or <emphasis>updated</emphasis> (files which are added but not committed),\r
1953         <emphasis>changed</emphasis> (files which are changed but not added in the index),\r
1954         <emphasis>untracked</emphasis> (files which are not tracked by git),\r
1955         <emphasis>branch</emphasis> (the current branch), or\r
1956         <emphasis>nobranch</emphasis> (the color the <emphasis>no branch</emphasis> warning is shown in, defaulting\r
1957         to red). The values of these variables may be specified as in\r
1958         color.branch.&lt;slot&gt;.\r
1959 </simpara>\r
1960 </listitem>\r
1961 </varlistentry>\r
1962 <varlistentry>\r
1963 <term>\r
1964 color.ui\r
1965 </term>\r
1966 <listitem>\r
1967 <simpara>\r
1968         This variable determines the default value for variables such\r
1969         as <emphasis>color.diff</emphasis> and <emphasis>color.grep</emphasis> that control the use of color\r
1970         per command family. Its scope will expand as more commands learn\r
1971         configuration to set a default for the <emphasis>--color</emphasis> option.  Set it\r
1972         to <emphasis>always</emphasis> if you want all output not intended for machine\r
1973         consumption to use color, to <emphasis>true</emphasis> or <emphasis>auto</emphasis> if you want such\r
1974         output to use color when written to the terminal, or to <emphasis>false</emphasis> or\r
1975         <emphasis>never</emphasis> if you prefer git commands not to use color unless enabled\r
1976         explicitly with some other configuration or the <emphasis>--color</emphasis> option.\r
1977 </simpara>\r
1978 </listitem>\r
1979 </varlistentry>\r
1980 <varlistentry>\r
1981 <term>\r
1982 column.ui\r
1983 </term>\r
1984 <listitem>\r
1985 <simpara>\r
1986         Specify whether supported commands should output in columns.\r
1987         This variable consists of a list of tokens separated by spaces\r
1988         or commas:\r
1989 </simpara>\r
1990 <variablelist>\r
1991 <varlistentry>\r
1992 <term>\r
1993 <emphasis>always</emphasis>\r
1994 </term>\r
1995 <listitem>\r
1996 <simpara>\r
1997         always show in columns\r
1998 </simpara>\r
1999 </listitem>\r
2000 </varlistentry>\r
2001 <varlistentry>\r
2002 <term>\r
2003 <emphasis>never</emphasis>\r
2004 </term>\r
2005 <listitem>\r
2006 <simpara>\r
2007         never show in columns\r
2008 </simpara>\r
2009 </listitem>\r
2010 </varlistentry>\r
2011 <varlistentry>\r
2012 <term>\r
2013 <emphasis>auto</emphasis>\r
2014 </term>\r
2015 <listitem>\r
2016 <simpara>\r
2017         show in columns if the output is to the terminal\r
2018 </simpara>\r
2019 </listitem>\r
2020 </varlistentry>\r
2021 <varlistentry>\r
2022 <term>\r
2023 <emphasis>column</emphasis>\r
2024 </term>\r
2025 <listitem>\r
2026 <simpara>\r
2027         fill columns before rows (default)\r
2028 </simpara>\r
2029 </listitem>\r
2030 </varlistentry>\r
2031 <varlistentry>\r
2032 <term>\r
2033 <emphasis>row</emphasis>\r
2034 </term>\r
2035 <listitem>\r
2036 <simpara>\r
2037         fill rows before columns\r
2038 </simpara>\r
2039 </listitem>\r
2040 </varlistentry>\r
2041 <varlistentry>\r
2042 <term>\r
2043 <emphasis>plain</emphasis>\r
2044 </term>\r
2045 <listitem>\r
2046 <simpara>\r
2047         show in one column\r
2048 </simpara>\r
2049 </listitem>\r
2050 </varlistentry>\r
2051 <varlistentry>\r
2052 <term>\r
2053 <emphasis>dense</emphasis>\r
2054 </term>\r
2055 <listitem>\r
2056 <simpara>\r
2057         make unequal size columns to utilize more space\r
2058 </simpara>\r
2059 </listitem>\r
2060 </varlistentry>\r
2061 <varlistentry>\r
2062 <term>\r
2063 <emphasis>nodense</emphasis>\r
2064 </term>\r
2065 <listitem>\r
2066 <simpara>\r
2067         make equal size columns\r
2068 </simpara>\r
2069 </listitem>\r
2070 </varlistentry>\r
2071 </variablelist>\r
2072 <simpara>This option defaults to <emphasis>never</emphasis>.</simpara>\r
2073 </listitem>\r
2074 </varlistentry>\r
2075 <varlistentry>\r
2076 <term>\r
2077 column.branch\r
2078 </term>\r
2079 <listitem>\r
2080 <simpara>\r
2081         Specify whether to output branch listing in <emphasis>git branch</emphasis> in columns.\r
2082         See <emphasis>column.ui</emphasis> for details.\r
2083 </simpara>\r
2084 </listitem>\r
2085 </varlistentry>\r
2086 <varlistentry>\r
2087 <term>\r
2088 column.status\r
2089 </term>\r
2090 <listitem>\r
2091 <simpara>\r
2092         Specify whether to output untracked files in <emphasis>git status</emphasis> in columns.\r
2093         See <emphasis>column.ui</emphasis> for details.\r
2094 </simpara>\r
2095 </listitem>\r
2096 </varlistentry>\r
2097 <varlistentry>\r
2098 <term>\r
2099 column.tag\r
2100 </term>\r
2101 <listitem>\r
2102 <simpara>\r
2103         Specify whether to output tag listing in <emphasis>git tag</emphasis> in columns.\r
2104         See <emphasis>column.ui</emphasis> for details.\r
2105 </simpara>\r
2106 </listitem>\r
2107 </varlistentry>\r
2108 <varlistentry>\r
2109 <term>\r
2110 commit.status\r
2111 </term>\r
2112 <listitem>\r
2113 <simpara>\r
2114         A boolean to enable/disable inclusion of status information in the\r
2115         commit message template when using an editor to prepare the commit\r
2116         message.  Defaults to true.\r
2117 </simpara>\r
2118 </listitem>\r
2119 </varlistentry>\r
2120 <varlistentry>\r
2121 <term>\r
2122 commit.template\r
2123 </term>\r
2124 <listitem>\r
2125 <simpara>\r
2126         Specify a file to use as the template for new commit messages.\r
2127         "<emphasis>~/</emphasis>" is expanded to the value of <emphasis>$HOME</emphasis> and "<emphasis>~user/</emphasis>" to the\r
2128         specified user's home directory.\r
2129 </simpara>\r
2130 </listitem>\r
2131 </varlistentry>\r
2132 <varlistentry>\r
2133 <term>\r
2134 credential.helper\r
2135 </term>\r
2136 <listitem>\r
2137 <simpara>\r
2138         Specify an external helper to be called when a username or\r
2139         password credential is needed; the helper may consult external\r
2140         storage to avoid prompting the user for the credentials. See\r
2141         <xref linkend="gitcredentials(7)" /> for details.\r
2142 </simpara>\r
2143 </listitem>\r
2144 </varlistentry>\r
2145 <varlistentry>\r
2146 <term>\r
2147 credential.useHttpPath\r
2148 </term>\r
2149 <listitem>\r
2150 <simpara>\r
2151         When acquiring credentials, consider the "path" component of an http\r
2152         or https URL to be important. Defaults to false. See\r
2153         <xref linkend="gitcredentials(7)" /> for more information.\r
2154 </simpara>\r
2155 </listitem>\r
2156 </varlistentry>\r
2157 <varlistentry>\r
2158 <term>\r
2159 credential.username\r
2160 </term>\r
2161 <listitem>\r
2162 <simpara>\r
2163         If no username is set for a network authentication, use this username\r
2164         by default. See credential.&lt;context&gt;.* below, and\r
2165         <xref linkend="gitcredentials(7)" />.\r
2166 </simpara>\r
2167 </listitem>\r
2168 </varlistentry>\r
2169 <varlistentry>\r
2170 <term>\r
2171 credential.&lt;url&gt;.*\r
2172 </term>\r
2173 <listitem>\r
2174 <simpara>\r
2175         Any of the credential.* options above can be applied selectively to\r
2176         some credentials. For example "credential.https://example.com.username"\r
2177         would set the default username only for https connections to\r
2178         example.com. See <xref linkend="gitcredentials(7)" /> for details on how URLs are\r
2179         matched.\r
2180 </simpara>\r
2181 </listitem>\r
2182 </varlistentry>\r
2183 <varlistentry>\r
2184 <term>\r
2185 diff.autorefreshindex\r
2186 </term>\r
2187 <listitem>\r
2188 <simpara>\r
2189         When using <emphasis>git diff</emphasis> to compare with work tree\r
2190         files, do not consider stat-only change as changed.\r
2191         Instead, silently run <emphasis>git update-index --refresh</emphasis> to\r
2192         update the cached stat information for paths whose\r
2193         contents in the work tree match the contents in the\r
2194         index.  This option defaults to true.  Note that this\r
2195         affects only <emphasis>git diff</emphasis> Porcelain, and not lower level\r
2196         <emphasis>diff</emphasis> commands such as <emphasis>git diff-files</emphasis>.\r
2197 </simpara>\r
2198 </listitem>\r
2199 </varlistentry>\r
2200 <varlistentry>\r
2201 <term>\r
2202 diff.dirstat\r
2203 </term>\r
2204 <listitem>\r
2205 <simpara>\r
2206         A comma separated list of <emphasis>--dirstat</emphasis> parameters specifying the\r
2207         default behavior of the <emphasis>--dirstat</emphasis> option to <xref linkend="git-diff(1)" />`\r
2208         and friends. The defaults can be overridden on the command line\r
2209         (using <emphasis>--dirstat=&lt;param1,param2,...&gt;</emphasis>). The fallback defaults\r
2210         (when not changed by <emphasis>diff.dirstat</emphasis>) are <emphasis>changes,noncumulative,3</emphasis>.\r
2211         The following parameters are available:\r
2212 </simpara>\r
2213 <variablelist>\r
2214 <varlistentry>\r
2215 <term>\r
2216 <emphasis>changes</emphasis>\r
2217 </term>\r
2218 <listitem>\r
2219 <simpara>\r
2220         Compute the dirstat numbers by counting the lines that have been\r
2221         removed from the source, or added to the destination. This ignores\r
2222         the amount of pure code movements within a file.  In other words,\r
2223         rearranging lines in a file is not counted as much as other changes.\r
2224         This is the default behavior when no parameter is given.\r
2225 </simpara>\r
2226 </listitem>\r
2227 </varlistentry>\r
2228 <varlistentry>\r
2229 <term>\r
2230 <emphasis>lines</emphasis>\r
2231 </term>\r
2232 <listitem>\r
2233 <simpara>\r
2234         Compute the dirstat numbers by doing the regular line-based diff\r
2235         analysis, and summing the removed/added line counts. (For binary\r
2236         files, count 64-byte chunks instead, since binary files have no\r
2237         natural concept of lines). This is a more expensive <emphasis>--dirstat</emphasis>\r
2238         behavior than the <emphasis>changes</emphasis> behavior, but it does count rearranged\r
2239         lines within a file as much as other changes. The resulting output\r
2240         is consistent with what you get from the other <emphasis>--*stat</emphasis> options.\r
2241 </simpara>\r
2242 </listitem>\r
2243 </varlistentry>\r
2244 <varlistentry>\r
2245 <term>\r
2246 <emphasis>files</emphasis>\r
2247 </term>\r
2248 <listitem>\r
2249 <simpara>\r
2250         Compute the dirstat numbers by counting the number of files changed.\r
2251         Each changed file counts equally in the dirstat analysis. This is\r
2252         the computationally cheapest <emphasis>--dirstat</emphasis> behavior, since it does\r
2253         not have to look at the file contents at all.\r
2254 </simpara>\r
2255 </listitem>\r
2256 </varlistentry>\r
2257 <varlistentry>\r
2258 <term>\r
2259 <emphasis>cumulative</emphasis>\r
2260 </term>\r
2261 <listitem>\r
2262 <simpara>\r
2263         Count changes in a child directory for the parent directory as well.\r
2264         Note that when using <emphasis>cumulative</emphasis>, the sum of the percentages\r
2265         reported may exceed 100%. The default (non-cumulative) behavior can\r
2266         be specified with the <emphasis>noncumulative</emphasis> parameter.\r
2267 </simpara>\r
2268 </listitem>\r
2269 </varlistentry>\r
2270 <varlistentry>\r
2271 <term>\r
2272 &lt;limit&gt;\r
2273 </term>\r
2274 <listitem>\r
2275 <simpara>\r
2276         An integer parameter specifies a cut-off percent (3% by default).\r
2277         Directories contributing less than this percentage of the changes\r
2278         are not shown in the output.\r
2279 </simpara>\r
2280 </listitem>\r
2281 </varlistentry>\r
2282 </variablelist>\r
2283 <simpara>Example: The following will count changed files, while ignoring\r
2284 directories with less than 10% of the total amount of changed files,\r
2285 and accumulating child directory counts in the parent directories:\r
2286 <emphasis>files,10,cumulative</emphasis>.</simpara>\r
2287 </listitem>\r
2288 </varlistentry>\r
2289 <varlistentry>\r
2290 <term>\r
2291 diff.statGraphWidth\r
2292 </term>\r
2293 <listitem>\r
2294 <simpara>\r
2295         Limit the width of the graph part in --stat output. If set, applies\r
2296         to all commands generating --stat output except format-patch.\r
2297 </simpara>\r
2298 </listitem>\r
2299 </varlistentry>\r
2300 <varlistentry>\r
2301 <term>\r
2302 diff.context\r
2303 </term>\r
2304 <listitem>\r
2305 <simpara>\r
2306         Generate diffs with &lt;n&gt; lines of context instead of the default\r
2307         of 3. This value is overridden by the -U option.\r
2308 </simpara>\r
2309 </listitem>\r
2310 </varlistentry>\r
2311 <varlistentry>\r
2312 <term>\r
2313 diff.external\r
2314 </term>\r
2315 <listitem>\r
2316 <simpara>\r
2317         If this config variable is set, diff generation is not\r
2318         performed using the internal diff machinery, but using the\r
2319         given command.  Can be overridden with the GIT_EXTERNAL_DIFF\r
2320         environment variable.  The command is called with parameters\r
2321         as described under "git Diffs" in <xref linkend="git(1)" />.  Note: if\r
2322         you want to use an external diff program only on a subset of\r
2323         your files, you might want to use <xref linkend="gitattributes(5)" /> instead.\r
2324 </simpara>\r
2325 </listitem>\r
2326 </varlistentry>\r
2327 <varlistentry>\r
2328 <term>\r
2329 diff.ignoreSubmodules\r
2330 </term>\r
2331 <listitem>\r
2332 <simpara>\r
2333         Sets the default value of --ignore-submodules. Note that this\r
2334         affects only <emphasis>git diff</emphasis> Porcelain, and not lower level <emphasis>diff</emphasis>\r
2335         commands such as <emphasis>git diff-files</emphasis>. <emphasis>git checkout</emphasis> also honors\r
2336         this setting when reporting uncommitted changes.\r
2337 </simpara>\r
2338 </listitem>\r
2339 </varlistentry>\r
2340 <varlistentry>\r
2341 <term>\r
2342 diff.mnemonicprefix\r
2343 </term>\r
2344 <listitem>\r
2345 <simpara>\r
2346         If set, <emphasis>git diff</emphasis> uses a prefix pair that is different from the\r
2347         standard "a/" and "b/" depending on what is being compared.  When\r
2348         this configuration is in effect, reverse diff output also swaps\r
2349         the order of the prefixes:\r
2350 </simpara>\r
2351 <variablelist>\r
2352 <varlistentry>\r
2353 <term>\r
2354 <emphasis>git diff</emphasis>\r
2355 </term>\r
2356 <listitem>\r
2357 <simpara>\r
2358         compares the (i)ndex and the (w)ork tree;\r
2359 </simpara>\r
2360 </listitem>\r
2361 </varlistentry>\r
2362 <varlistentry>\r
2363 <term>\r
2364 <emphasis>git diff HEAD</emphasis>\r
2365 </term>\r
2366 <listitem>\r
2367 <simpara>\r
2368          compares a (c)ommit and the (w)ork tree;\r
2369 </simpara>\r
2370 </listitem>\r
2371 </varlistentry>\r
2372 <varlistentry>\r
2373 <term>\r
2374 <emphasis>git diff --cached</emphasis>\r
2375 </term>\r
2376 <listitem>\r
2377 <simpara>\r
2378         compares a (c)ommit and the (i)ndex;\r
2379 </simpara>\r
2380 </listitem>\r
2381 </varlistentry>\r
2382 <varlistentry>\r
2383 <term>\r
2384 <emphasis>git diff HEAD:file1 file2</emphasis>\r
2385 </term>\r
2386 <listitem>\r
2387 <simpara>\r
2388         compares an (o)bject and a (w)ork tree entity;\r
2389 </simpara>\r
2390 </listitem>\r
2391 </varlistentry>\r
2392 <varlistentry>\r
2393 <term>\r
2394 <emphasis>git diff --no-index a b</emphasis>\r
2395 </term>\r
2396 <listitem>\r
2397 <simpara>\r
2398         compares two non-git things (1) and (2).\r
2399 </simpara>\r
2400 </listitem>\r
2401 </varlistentry>\r
2402 </variablelist>\r
2403 </listitem>\r
2404 </varlistentry>\r
2405 <varlistentry>\r
2406 <term>\r
2407 diff.noprefix\r
2408 </term>\r
2409 <listitem>\r
2410 <simpara>\r
2411         If set, <emphasis>git diff</emphasis> does not show any source or destination prefix.\r
2412 </simpara>\r
2413 </listitem>\r
2414 </varlistentry>\r
2415 <varlistentry>\r
2416 <term>\r
2417 diff.renameLimit\r
2418 </term>\r
2419 <listitem>\r
2420 <simpara>\r
2421         The number of files to consider when performing the copy/rename\r
2422         detection; equivalent to the <emphasis>git diff</emphasis> option <emphasis>-l</emphasis>.\r
2423 </simpara>\r
2424 </listitem>\r
2425 </varlistentry>\r
2426 <varlistentry>\r
2427 <term>\r
2428 diff.renames\r
2429 </term>\r
2430 <listitem>\r
2431 <simpara>\r
2432         Tells git to detect renames.  If set to any boolean value, it\r
2433         will enable basic rename detection.  If set to "copies" or\r
2434         "copy", it will detect copies, as well.\r
2435 </simpara>\r
2436 </listitem>\r
2437 </varlistentry>\r
2438 <varlistentry>\r
2439 <term>\r
2440 diff.suppressBlankEmpty\r
2441 </term>\r
2442 <listitem>\r
2443 <simpara>\r
2444         A boolean to inhibit the standard behavior of printing a space\r
2445         before each empty output line. Defaults to false.\r
2446 </simpara>\r
2447 </listitem>\r
2448 </varlistentry>\r
2449 <varlistentry>\r
2450 <term>\r
2451 diff.submodule\r
2452 </term>\r
2453 <listitem>\r
2454 <simpara>\r
2455         Specify the format in which differences in submodules are\r
2456         shown.  The "log" format lists the commits in the range like\r
2457         <xref linkend="git-submodule(1)" /> <emphasis>summary</emphasis> does.  The "short" format\r
2458         format just shows the names of the commits at the beginning\r
2459         and end of the range.  Defaults to short.\r
2460 </simpara>\r
2461 </listitem>\r
2462 </varlistentry>\r
2463 <varlistentry>\r
2464 <term>\r
2465 diff.wordRegex\r
2466 </term>\r
2467 <listitem>\r
2468 <simpara>\r
2469         A POSIX Extended Regular Expression used to determine what is a "word"\r
2470         when performing word-by-word difference calculations.  Character\r
2471         sequences that match the regular expression are "words", all other\r
2472         characters are <emphasis role="strong">ignorable</emphasis> whitespace.\r
2473 </simpara>\r
2474 </listitem>\r
2475 </varlistentry>\r
2476 <varlistentry>\r
2477 <term>\r
2478 diff.&lt;driver&gt;.command\r
2479 </term>\r
2480 <listitem>\r
2481 <simpara>\r
2482         The custom diff driver command.  See <xref linkend="gitattributes(5)" />\r
2483         for details.\r
2484 </simpara>\r
2485 </listitem>\r
2486 </varlistentry>\r
2487 <varlistentry>\r
2488 <term>\r
2489 diff.&lt;driver&gt;.xfuncname\r
2490 </term>\r
2491 <listitem>\r
2492 <simpara>\r
2493         The regular expression that the diff driver should use to\r
2494         recognize the hunk header.  A built-in pattern may also be used.\r
2495         See <xref linkend="gitattributes(5)" /> for details.\r
2496 </simpara>\r
2497 </listitem>\r
2498 </varlistentry>\r
2499 <varlistentry>\r
2500 <term>\r
2501 diff.&lt;driver&gt;.binary\r
2502 </term>\r
2503 <listitem>\r
2504 <simpara>\r
2505         Set this option to true to make the diff driver treat files as\r
2506         binary.  See <xref linkend="gitattributes(5)" /> for details.\r
2507 </simpara>\r
2508 </listitem>\r
2509 </varlistentry>\r
2510 <varlistentry>\r
2511 <term>\r
2512 diff.&lt;driver&gt;.textconv\r
2513 </term>\r
2514 <listitem>\r
2515 <simpara>\r
2516         The command that the diff driver should call to generate the\r
2517         text-converted version of a file.  The result of the\r
2518         conversion is used to generate a human-readable diff.  See\r
2519         <xref linkend="gitattributes(5)" /> for details.\r
2520 </simpara>\r
2521 </listitem>\r
2522 </varlistentry>\r
2523 <varlistentry>\r
2524 <term>\r
2525 diff.&lt;driver&gt;.wordregex\r
2526 </term>\r
2527 <listitem>\r
2528 <simpara>\r
2529         The regular expression that the diff driver should use to\r
2530         split words in a line.  See <xref linkend="gitattributes(5)" /> for\r
2531         details.\r
2532 </simpara>\r
2533 </listitem>\r
2534 </varlistentry>\r
2535 <varlistentry>\r
2536 <term>\r
2537 diff.&lt;driver&gt;.cachetextconv\r
2538 </term>\r
2539 <listitem>\r
2540 <simpara>\r
2541         Set this option to true to make the diff driver cache the text\r
2542         conversion outputs.  See <xref linkend="gitattributes(5)" /> for details.\r
2543 </simpara>\r
2544 </listitem>\r
2545 </varlistentry>\r
2546 <varlistentry>\r
2547 <term>\r
2548 diff.tool\r
2549 </term>\r
2550 <listitem>\r
2551 <simpara>\r
2552         The diff tool to be used by <xref linkend="git-difftool(1)" />.  This\r
2553         option overrides <emphasis>merge.tool</emphasis>, and has the same valid built-in\r
2554         values as <emphasis>merge.tool</emphasis> minus "tortoisemerge" and plus\r
2555         "kompare".  Any other value is treated as a custom diff tool,\r
2556         and there must be a corresponding <emphasis>difftool.&lt;tool&gt;.cmd</emphasis>\r
2557         option.\r
2558 </simpara>\r
2559 </listitem>\r
2560 </varlistentry>\r
2561 <varlistentry>\r
2562 <term>\r
2563 difftool.&lt;tool&gt;.path\r
2564 </term>\r
2565 <listitem>\r
2566 <simpara>\r
2567         Override the path for the given tool.  This is useful in case\r
2568         your tool is not in the PATH.\r
2569 </simpara>\r
2570 </listitem>\r
2571 </varlistentry>\r
2572 <varlistentry>\r
2573 <term>\r
2574 difftool.&lt;tool&gt;.cmd\r
2575 </term>\r
2576 <listitem>\r
2577 <simpara>\r
2578         Specify the command to invoke the specified diff tool.\r
2579         The specified command is evaluated in shell with the following\r
2580         variables available:  <emphasis>LOCAL</emphasis> is set to the name of the temporary\r
2581         file containing the contents of the diff pre-image and <emphasis>REMOTE</emphasis>\r
2582         is set to the name of the temporary file containing the contents\r
2583         of the diff post-image.\r
2584 </simpara>\r
2585 </listitem>\r
2586 </varlistentry>\r
2587 <varlistentry>\r
2588 <term>\r
2589 difftool.prompt\r
2590 </term>\r
2591 <listitem>\r
2592 <simpara>\r
2593         Prompt before each invocation of the diff tool.\r
2594 </simpara>\r
2595 </listitem>\r
2596 </varlistentry>\r
2597 <varlistentry>\r
2598 <term>\r
2599 fetch.recurseSubmodules\r
2600 </term>\r
2601 <listitem>\r
2602 <simpara>\r
2603         This option can be either set to a boolean value or to <emphasis>on-demand</emphasis>.\r
2604         Setting it to a boolean changes the behavior of fetch and pull to\r
2605         unconditionally recurse into submodules when set to true or to not\r
2606         recurse at all when set to false. When set to <emphasis>on-demand</emphasis> (the default\r
2607         value), fetch and pull will only recurse into a populated submodule\r
2608         when its superproject retrieves a commit that updates the submodule's\r
2609         reference.\r
2610 </simpara>\r
2611 </listitem>\r
2612 </varlistentry>\r
2613 <varlistentry>\r
2614 <term>\r
2615 fetch.fsckObjects\r
2616 </term>\r
2617 <listitem>\r
2618 <simpara>\r
2619         If it is set to true, git-fetch-pack will check all fetched\r
2620         objects. It will abort in the case of a malformed object or a\r
2621         broken link. The result of an abort are only dangling objects.\r
2622         Defaults to false. If not set, the value of <emphasis>transfer.fsckObjects</emphasis>\r
2623         is used instead.\r
2624 </simpara>\r
2625 </listitem>\r
2626 </varlistentry>\r
2627 <varlistentry>\r
2628 <term>\r
2629 fetch.unpackLimit\r
2630 </term>\r
2631 <listitem>\r
2632 <simpara>\r
2633         If the number of objects fetched over the git native\r
2634         transfer is below this\r
2635         limit, then the objects will be unpacked into loose object\r
2636         files. However if the number of received objects equals or\r
2637         exceeds this limit then the received pack will be stored as\r
2638         a pack, after adding any missing delta bases.  Storing the\r
2639         pack from a push can make the push operation complete faster,\r
2640         especially on slow filesystems.  If not set, the value of\r
2641         <emphasis>transfer.unpackLimit</emphasis> is used instead.\r
2642 </simpara>\r
2643 </listitem>\r
2644 </varlistentry>\r
2645 <varlistentry>\r
2646 <term>\r
2647 format.attach\r
2648 </term>\r
2649 <listitem>\r
2650 <simpara>\r
2651         Enable multipart/mixed attachments as the default for\r
2652         <emphasis>format-patch</emphasis>.  The value can also be a double quoted string\r
2653         which will enable attachments as the default and set the\r
2654         value as the boundary.  See the --attach option in\r
2655         <xref linkend="git-format-patch(1)" />.\r
2656 </simpara>\r
2657 </listitem>\r
2658 </varlistentry>\r
2659 <varlistentry>\r
2660 <term>\r
2661 format.numbered\r
2662 </term>\r
2663 <listitem>\r
2664 <simpara>\r
2665         A boolean which can enable or disable sequence numbers in patch\r
2666         subjects.  It defaults to "auto" which enables it only if there\r
2667         is more than one patch.  It can be enabled or disabled for all\r
2668         messages by setting it to "true" or "false".  See --numbered\r
2669         option in <xref linkend="git-format-patch(1)" />.\r
2670 </simpara>\r
2671 </listitem>\r
2672 </varlistentry>\r
2673 <varlistentry>\r
2674 <term>\r
2675 format.headers\r
2676 </term>\r
2677 <listitem>\r
2678 <simpara>\r
2679         Additional email headers to include in a patch to be submitted\r
2680         by mail.  See <xref linkend="git-format-patch(1)" />.\r
2681 </simpara>\r
2682 </listitem>\r
2683 </varlistentry>\r
2684 <varlistentry>\r
2685 <term>\r
2686 format.to\r
2687 </term>\r
2688 <term>\r
2689 format.cc\r
2690 </term>\r
2691 <listitem>\r
2692 <simpara>\r
2693         Additional recipients to include in a patch to be submitted\r
2694         by mail.  See the --to and --cc options in\r
2695         <xref linkend="git-format-patch(1)" />.\r
2696 </simpara>\r
2697 </listitem>\r
2698 </varlistentry>\r
2699 <varlistentry>\r
2700 <term>\r
2701 format.subjectprefix\r
2702 </term>\r
2703 <listitem>\r
2704 <simpara>\r
2705         The default for format-patch is to output files with the <emphasis>[PATCH]</emphasis>\r
2706         subject prefix. Use this variable to change that prefix.\r
2707 </simpara>\r
2708 </listitem>\r
2709 </varlistentry>\r
2710 <varlistentry>\r
2711 <term>\r
2712 format.signature\r
2713 </term>\r
2714 <listitem>\r
2715 <simpara>\r
2716         The default for format-patch is to output a signature containing\r
2717         the git version number. Use this variable to change that default.\r
2718         Set this variable to the empty string ("") to suppress\r
2719         signature generation.\r
2720 </simpara>\r
2721 </listitem>\r
2722 </varlistentry>\r
2723 <varlistentry>\r
2724 <term>\r
2725 format.suffix\r
2726 </term>\r
2727 <listitem>\r
2728 <simpara>\r
2729         The default for format-patch is to output files with the suffix\r
2730         <emphasis>.patch</emphasis>. Use this variable to change that suffix (make sure to\r
2731         include the dot if you want it).\r
2732 </simpara>\r
2733 </listitem>\r
2734 </varlistentry>\r
2735 <varlistentry>\r
2736 <term>\r
2737 format.pretty\r
2738 </term>\r
2739 <listitem>\r
2740 <simpara>\r
2741         The default pretty format for log/show/whatchanged command,\r
2742         See <xref linkend="git-log(1)" />, <xref linkend="git-show(1)" />,\r
2743         <xref linkend="git-whatchanged(1)" />.\r
2744 </simpara>\r
2745 </listitem>\r
2746 </varlistentry>\r
2747 <varlistentry>\r
2748 <term>\r
2749 format.thread\r
2750 </term>\r
2751 <listitem>\r
2752 <simpara>\r
2753         The default threading style for <emphasis>git format-patch</emphasis>.  Can be\r
2754         a boolean value, or <emphasis>shallow</emphasis> or <emphasis>deep</emphasis>.  <emphasis>shallow</emphasis> threading\r
2755         makes every mail a reply to the head of the series,\r
2756         where the head is chosen from the cover letter, the\r
2757         <emphasis>--in-reply-to</emphasis>, and the first patch mail, in this order.\r
2758         <emphasis>deep</emphasis> threading makes every mail a reply to the previous one.\r
2759         A true boolean value is the same as <emphasis>shallow</emphasis>, and a false\r
2760         value disables threading.\r
2761 </simpara>\r
2762 </listitem>\r
2763 </varlistentry>\r
2764 <varlistentry>\r
2765 <term>\r
2766 format.signoff\r
2767 </term>\r
2768 <listitem>\r
2769 <simpara>\r
2770     A boolean value which lets you enable the <emphasis>-s/--signoff</emphasis> option of\r
2771     format-patch by default. <emphasis role="strong">Note:</emphasis> Adding the Signed-off-by: line to a\r
2772     patch should be a conscious act and means that you certify you have\r
2773     the rights to submit this work under the same open source license.\r
2774     Please see the <emphasis>SubmittingPatches</emphasis> document for further discussion.\r
2775 </simpara>\r
2776 </listitem>\r
2777 </varlistentry>\r
2778 <varlistentry>\r
2779 <term>\r
2780 filter.&lt;driver&gt;.clean\r
2781 </term>\r
2782 <listitem>\r
2783 <simpara>\r
2784         The command which is used to convert the content of a worktree\r
2785         file to a blob upon checkin.  See <xref linkend="gitattributes(5)" /> for\r
2786         details.\r
2787 </simpara>\r
2788 </listitem>\r
2789 </varlistentry>\r
2790 <varlistentry>\r
2791 <term>\r
2792 filter.&lt;driver&gt;.smudge\r
2793 </term>\r
2794 <listitem>\r
2795 <simpara>\r
2796         The command which is used to convert the content of a blob\r
2797         object to a worktree file upon checkout.  See\r
2798         <xref linkend="gitattributes(5)" /> for details.\r
2799 </simpara>\r
2800 </listitem>\r
2801 </varlistentry>\r
2802 <varlistentry>\r
2803 <term>\r
2804 gc.aggressiveWindow\r
2805 </term>\r
2806 <listitem>\r
2807 <simpara>\r
2808         The window size parameter used in the delta compression\r
2809         algorithm used by <emphasis>git gc --aggressive</emphasis>.  This defaults\r
2810         to 250.\r
2811 </simpara>\r
2812 </listitem>\r
2813 </varlistentry>\r
2814 <varlistentry>\r
2815 <term>\r
2816 gc.auto\r
2817 </term>\r
2818 <listitem>\r
2819 <simpara>\r
2820         When there are approximately more than this many loose\r
2821         objects in the repository, <emphasis>git gc --auto</emphasis> will pack them.\r
2822         Some Porcelain commands use this command to perform a\r
2823         light-weight garbage collection from time to time.  The\r
2824         default value is 6700.  Setting this to 0 disables it.\r
2825 </simpara>\r
2826 </listitem>\r
2827 </varlistentry>\r
2828 <varlistentry>\r
2829 <term>\r
2830 gc.autopacklimit\r
2831 </term>\r
2832 <listitem>\r
2833 <simpara>\r
2834         When there are more than this many packs that are not\r
2835         marked with <emphasis>*.keep</emphasis> file in the repository, <emphasis>git gc\r
2836         --auto</emphasis> consolidates them into one larger pack.  The\r
2837         default value is 50.  Setting this to 0 disables it.\r
2838 </simpara>\r
2839 </listitem>\r
2840 </varlistentry>\r
2841 <varlistentry>\r
2842 <term>\r
2843 gc.packrefs\r
2844 </term>\r
2845 <listitem>\r
2846 <simpara>\r
2847         Running <emphasis>git pack-refs</emphasis> in a repository renders it\r
2848         unclonable by Git versions prior to 1.5.1.2 over dumb\r
2849         transports such as HTTP.  This variable determines whether\r
2850         <emphasis>git gc</emphasis> runs <emphasis>git pack-refs</emphasis>. This can be set to <emphasis>notbare</emphasis>\r
2851         to enable it within all non-bare repos or it can be set to a\r
2852         boolean value.  The default is <emphasis>true</emphasis>.\r
2853 </simpara>\r
2854 </listitem>\r
2855 </varlistentry>\r
2856 <varlistentry>\r
2857 <term>\r
2858 gc.pruneexpire\r
2859 </term>\r
2860 <listitem>\r
2861 <simpara>\r
2862         When <emphasis>git gc</emphasis> is run, it will call <emphasis>prune --expire 2.weeks.ago</emphasis>.\r
2863         Override the grace period with this config variable.  The value\r
2864         "now" may be used to disable this  grace period and always prune\r
2865         unreachable objects immediately.\r
2866 </simpara>\r
2867 </listitem>\r
2868 </varlistentry>\r
2869 <varlistentry>\r
2870 <term>\r
2871 gc.reflogexpire\r
2872 </term>\r
2873 <term>\r
2874 gc.&lt;pattern&gt;.reflogexpire\r
2875 </term>\r
2876 <listitem>\r
2877 <simpara>\r
2878         <emphasis>git reflog expire</emphasis> removes reflog entries older than\r
2879         this time; defaults to 90 days.  With "&lt;pattern&gt;" (e.g.\r
2880         "refs/stash") in the middle the setting applies only to\r
2881         the refs that match the &lt;pattern&gt;.\r
2882 </simpara>\r
2883 </listitem>\r
2884 </varlistentry>\r
2885 <varlistentry>\r
2886 <term>\r
2887 gc.reflogexpireunreachable\r
2888 </term>\r
2889 <term>\r
2890 gc.&lt;ref&gt;.reflogexpireunreachable\r
2891 </term>\r
2892 <listitem>\r
2893 <simpara>\r
2894         <emphasis>git reflog expire</emphasis> removes reflog entries older than\r
2895         this time and are not reachable from the current tip;\r
2896         defaults to 30 days.  With "&lt;pattern&gt;" (e.g. "refs/stash")\r
2897         in the middle, the setting applies only to the refs that\r
2898         match the &lt;pattern&gt;.\r
2899 </simpara>\r
2900 </listitem>\r
2901 </varlistentry>\r
2902 <varlistentry>\r
2903 <term>\r
2904 gc.rerereresolved\r
2905 </term>\r
2906 <listitem>\r
2907 <simpara>\r
2908         Records of conflicted merge you resolved earlier are\r
2909         kept for this many days when <emphasis>git rerere gc</emphasis> is run.\r
2910         The default is 60 days.  See <xref linkend="git-rerere(1)" />.\r
2911 </simpara>\r
2912 </listitem>\r
2913 </varlistentry>\r
2914 <varlistentry>\r
2915 <term>\r
2916 gc.rerereunresolved\r
2917 </term>\r
2918 <listitem>\r
2919 <simpara>\r
2920         Records of conflicted merge you have not resolved are\r
2921         kept for this many days when <emphasis>git rerere gc</emphasis> is run.\r
2922         The default is 15 days.  See <xref linkend="git-rerere(1)" />.\r
2923 </simpara>\r
2924 </listitem>\r
2925 </varlistentry>\r
2926 <varlistentry>\r
2927 <term>\r
2928 gitcvs.commitmsgannotation\r
2929 </term>\r
2930 <listitem>\r
2931 <simpara>\r
2932         Append this string to each commit message. Set to empty string\r
2933         to disable this feature. Defaults to "via git-CVS emulator".\r
2934 </simpara>\r
2935 </listitem>\r
2936 </varlistentry>\r
2937 <varlistentry>\r
2938 <term>\r
2939 gitcvs.enabled\r
2940 </term>\r
2941 <listitem>\r
2942 <simpara>\r
2943         Whether the CVS server interface is enabled for this repository.\r
2944         See <xref linkend="git-cvsserver(1)" />.\r
2945 </simpara>\r
2946 </listitem>\r
2947 </varlistentry>\r
2948 <varlistentry>\r
2949 <term>\r
2950 gitcvs.logfile\r
2951 </term>\r
2952 <listitem>\r
2953 <simpara>\r
2954         Path to a log file where the CVS server interface well&#8230; logs\r
2955         various stuff. See <xref linkend="git-cvsserver(1)" />.\r
2956 </simpara>\r
2957 </listitem>\r
2958 </varlistentry>\r
2959 <varlistentry>\r
2960 <term>\r
2961 gitcvs.usecrlfattr\r
2962 </term>\r
2963 <listitem>\r
2964 <simpara>\r
2965         If true, the server will look up the end-of-line conversion\r
2966         attributes for files to determine the <emphasis>-k</emphasis> modes to use. If\r
2967         the attributes force git to treat a file as text,\r
2968         the <emphasis>-k</emphasis> mode will be left blank so CVS clients will\r
2969         treat it as text. If they suppress text conversion, the file\r
2970         will be set with <emphasis>-kb</emphasis> mode, which suppresses any newline munging\r
2971         the client might otherwise do. If the attributes do not allow\r
2972         the file type to be determined, then <emphasis>gitcvs.allbinary</emphasis> is\r
2973         used. See <xref linkend="gitattributes(5)" />.\r
2974 </simpara>\r
2975 </listitem>\r
2976 </varlistentry>\r
2977 <varlistentry>\r
2978 <term>\r
2979 gitcvs.allbinary\r
2980 </term>\r
2981 <listitem>\r
2982 <simpara>\r
2983         This is used if <emphasis>gitcvs.usecrlfattr</emphasis> does not resolve\r
2984         the correct <emphasis>-kb</emphasis> mode to use. If true, all\r
2985         unresolved files are sent to the client in\r
2986         mode <emphasis>-kb</emphasis>. This causes the client to treat them\r
2987         as binary files, which suppresses any newline munging it\r
2988         otherwise might do. Alternatively, if it is set to "guess",\r
2989         then the contents of the file are examined to decide if\r
2990         it is binary, similar to <emphasis>core.autocrlf</emphasis>.\r
2991 </simpara>\r
2992 </listitem>\r
2993 </varlistentry>\r
2994 <varlistentry>\r
2995 <term>\r
2996 gitcvs.dbname\r
2997 </term>\r
2998 <listitem>\r
2999 <simpara>\r
3000         Database used by git-cvsserver to cache revision information\r
3001         derived from the git repository. The exact meaning depends on the\r
3002         used database driver, for SQLite (which is the default driver) this\r
3003         is a filename. Supports variable substitution (see\r
3004         <xref linkend="git-cvsserver(1)" /> for details). May not contain semicolons (<emphasis>;</emphasis>).\r
3005         Default: <emphasis>%Ggitcvs.%m.sqlite</emphasis>\r
3006 </simpara>\r
3007 </listitem>\r
3008 </varlistentry>\r
3009 <varlistentry>\r
3010 <term>\r
3011 gitcvs.dbdriver\r
3012 </term>\r
3013 <listitem>\r
3014 <simpara>\r
3015         Used Perl DBI driver. You can specify any available driver\r
3016         for this here, but it might not work. git-cvsserver is tested\r
3017         with <emphasis>DBD::SQLite</emphasis>, reported to work with <emphasis>DBD::Pg</emphasis>, and\r
3018         reported <emphasis role="strong">not</emphasis> to work with <emphasis>DBD::mysql</emphasis>. Experimental feature.\r
3019         May not contain double colons (<emphasis>:</emphasis>). Default: <emphasis>SQLite</emphasis>.\r
3020         See <xref linkend="git-cvsserver(1)" />.\r
3021 </simpara>\r
3022 </listitem>\r
3023 </varlistentry>\r
3024 <varlistentry>\r
3025 <term>\r
3026 gitcvs.dbuser, gitcvs.dbpass\r
3027 </term>\r
3028 <listitem>\r
3029 <simpara>\r
3030         Database user and password. Only useful if setting <emphasis>gitcvs.dbdriver</emphasis>,\r
3031         since SQLite has no concept of database users and/or passwords.\r
3032         <emphasis>gitcvs.dbuser</emphasis> supports variable substitution (see\r
3033         <xref linkend="git-cvsserver(1)" /> for details).\r
3034 </simpara>\r
3035 </listitem>\r
3036 </varlistentry>\r
3037 <varlistentry>\r
3038 <term>\r
3039 gitcvs.dbTableNamePrefix\r
3040 </term>\r
3041 <listitem>\r
3042 <simpara>\r
3043         Database table name prefix.  Prepended to the names of any\r
3044         database tables used, allowing a single database to be used\r
3045         for several repositories.  Supports variable substitution (see\r
3046         <xref linkend="git-cvsserver(1)" /> for details).  Any non-alphabetic\r
3047         characters will be replaced with underscores.\r
3048 </simpara>\r
3049 </listitem>\r
3050 </varlistentry>\r
3051 </variablelist>\r
3052 <simpara>All gitcvs variables except for <emphasis>gitcvs.usecrlfattr</emphasis> and\r
3053 <emphasis>gitcvs.allbinary</emphasis> can also be specified as\r
3054 <emphasis>gitcvs.&lt;access_method&gt;.&lt;varname&gt;</emphasis> (where <emphasis>access_method</emphasis>\r
3055 is one of "ext" and "pserver") to make them apply only for the given\r
3056 access method.</simpara>\r
3057 <variablelist>\r
3058 <varlistentry>\r
3059 <term>\r
3060 gitweb.category\r
3061 </term>\r
3062 <term>\r
3063 gitweb.description\r
3064 </term>\r
3065 <term>\r
3066 gitweb.owner\r
3067 </term>\r
3068 <term>\r
3069 gitweb.url\r
3070 </term>\r
3071 <listitem>\r
3072 <simpara>\r
3073         See <xref linkend="gitweb(1)" /> for description.\r
3074 </simpara>\r
3075 </listitem>\r
3076 </varlistentry>\r
3077 <varlistentry>\r
3078 <term>\r
3079 gitweb.avatar\r
3080 </term>\r
3081 <term>\r
3082 gitweb.blame\r
3083 </term>\r
3084 <term>\r
3085 gitweb.grep\r
3086 </term>\r
3087 <term>\r
3088 gitweb.highlight\r
3089 </term>\r
3090 <term>\r
3091 gitweb.patches\r
3092 </term>\r
3093 <term>\r
3094 gitweb.pickaxe\r
3095 </term>\r
3096 <term>\r
3097 gitweb.remote_heads\r
3098 </term>\r
3099 <term>\r
3100 gitweb.showsizes\r
3101 </term>\r
3102 <term>\r
3103 gitweb.snapshot\r
3104 </term>\r
3105 <listitem>\r
3106 <simpara>\r
3107         See <xref linkend="gitweb.conf(5)" /> for description.\r
3108 </simpara>\r
3109 </listitem>\r
3110 </varlistentry>\r
3111 <varlistentry>\r
3112 <term>\r
3113 grep.lineNumber\r
3114 </term>\r
3115 <listitem>\r
3116 <simpara>\r
3117         If set to true, enable <emphasis>-n</emphasis> option by default.\r
3118 </simpara>\r
3119 </listitem>\r
3120 </varlistentry>\r
3121 <varlistentry>\r
3122 <term>\r
3123 grep.patternType\r
3124 </term>\r
3125 <listitem>\r
3126 <simpara>\r
3127         Set the default matching behavior. Using a value of <emphasis>basic</emphasis>, <emphasis>extended</emphasis>,\r
3128         <emphasis>fixed</emphasis>, or <emphasis>perl</emphasis> will enable the <emphasis>--basic-regexp</emphasis>, <emphasis>--extended-regexp</emphasis>,\r
3129         <emphasis>--fixed-strings</emphasis>, or <emphasis>--perl-regexp</emphasis> option accordingly, while the\r
3130         value <emphasis>default</emphasis> will return to the default matching behavior.\r
3131 </simpara>\r
3132 </listitem>\r
3133 </varlistentry>\r
3134 <varlistentry>\r
3135 <term>\r
3136 grep.extendedRegexp\r
3137 </term>\r
3138 <listitem>\r
3139 <simpara>\r
3140         If set to true, enable <emphasis>--extended-regexp</emphasis> option by default. This\r
3141         option is ignored when the <emphasis>grep.patternType</emphasis> option is set to a value\r
3142         other than <emphasis>default</emphasis>.\r
3143 </simpara>\r
3144 </listitem>\r
3145 </varlistentry>\r
3146 <varlistentry>\r
3147 <term>\r
3148 gpg.program\r
3149 </term>\r
3150 <listitem>\r
3151 <simpara>\r
3152         Use this custom program instead of "gpg" found on $PATH when\r
3153         making or verifying a PGP signature. The program must support the\r
3154         same command line interface as GPG, namely, to verify a detached\r
3155         signature, "gpg --verify $file - &lt;$signature" is run, and the\r
3156         program is expected to signal a good signature by exiting with\r
3157         code 0, and to generate an ascii-armored detached signature, the\r
3158         standard input of "gpg -bsau $key" is fed with the contents to be\r
3159         signed, and the program is expected to send the result to its\r
3160         standard output.\r
3161 </simpara>\r
3162 </listitem>\r
3163 </varlistentry>\r
3164 <varlistentry>\r
3165 <term>\r
3166 gui.commitmsgwidth\r
3167 </term>\r
3168 <listitem>\r
3169 <simpara>\r
3170         Defines how wide the commit message window is in the\r
3171         <xref linkend="git-gui(1)" />. "75" is the default.\r
3172 </simpara>\r
3173 </listitem>\r
3174 </varlistentry>\r
3175 <varlistentry>\r
3176 <term>\r
3177 gui.diffcontext\r
3178 </term>\r
3179 <listitem>\r
3180 <simpara>\r
3181         Specifies how many context lines should be used in calls to diff\r
3182         made by the <xref linkend="git-gui(1)" />. The default is "5".\r
3183 </simpara>\r
3184 </listitem>\r
3185 </varlistentry>\r
3186 <varlistentry>\r
3187 <term>\r
3188 gui.encoding\r
3189 </term>\r
3190 <listitem>\r
3191 <simpara>\r
3192         Specifies the default encoding to use for displaying of\r
3193         file contents in <xref linkend="git-gui(1)" /> and <xref linkend="gitk(1)" />.\r
3194         It can be overridden by setting the <emphasis>encoding</emphasis> attribute\r
3195         for relevant files (see <xref linkend="gitattributes(5)" />).\r
3196         If this option is not set, the tools default to the\r
3197         locale encoding.\r
3198 </simpara>\r
3199 </listitem>\r
3200 </varlistentry>\r
3201 <varlistentry>\r
3202 <term>\r
3203 gui.matchtrackingbranch\r
3204 </term>\r
3205 <listitem>\r
3206 <simpara>\r
3207         Determines if new branches created with <xref linkend="git-gui(1)" /> should\r
3208         default to tracking remote branches with matching names or\r
3209         not. Default: "false".\r
3210 </simpara>\r
3211 </listitem>\r
3212 </varlistentry>\r
3213 <varlistentry>\r
3214 <term>\r
3215 gui.newbranchtemplate\r
3216 </term>\r
3217 <listitem>\r
3218 <simpara>\r
3219         Is used as suggested name when creating new branches using the\r
3220         <xref linkend="git-gui(1)" />.\r
3221 </simpara>\r
3222 </listitem>\r
3223 </varlistentry>\r
3224 <varlistentry>\r
3225 <term>\r
3226 gui.pruneduringfetch\r
3227 </term>\r
3228 <listitem>\r
3229 <simpara>\r
3230         "true" if <xref linkend="git-gui(1)" /> should prune remote-tracking branches when\r
3231         performing a fetch. The default value is "false".\r
3232 </simpara>\r
3233 </listitem>\r
3234 </varlistentry>\r
3235 <varlistentry>\r
3236 <term>\r
3237 gui.trustmtime\r
3238 </term>\r
3239 <listitem>\r
3240 <simpara>\r
3241         Determines if <xref linkend="git-gui(1)" /> should trust the file modification\r
3242         timestamp or not. By default the timestamps are not trusted.\r
3243 </simpara>\r
3244 </listitem>\r
3245 </varlistentry>\r
3246 <varlistentry>\r
3247 <term>\r
3248 gui.spellingdictionary\r
3249 </term>\r
3250 <listitem>\r
3251 <simpara>\r
3252         Specifies the dictionary used for spell checking commit messages in\r
3253         the <xref linkend="git-gui(1)" />. When set to "none" spell checking is turned\r
3254         off.\r
3255 </simpara>\r
3256 </listitem>\r
3257 </varlistentry>\r
3258 <varlistentry>\r
3259 <term>\r
3260 gui.fastcopyblame\r
3261 </term>\r
3262 <listitem>\r
3263 <simpara>\r
3264         If true, <emphasis>git gui blame</emphasis> uses <emphasis>-C</emphasis> instead of <emphasis>-C -C</emphasis> for original\r
3265         location detection. It makes blame significantly faster on huge\r
3266         repositories at the expense of less thorough copy detection.\r
3267 </simpara>\r
3268 </listitem>\r
3269 </varlistentry>\r
3270 <varlistentry>\r
3271 <term>\r
3272 gui.copyblamethreshold\r
3273 </term>\r
3274 <listitem>\r
3275 <simpara>\r
3276         Specifies the threshold to use in <emphasis>git gui blame</emphasis> original location\r
3277         detection, measured in alphanumeric characters. See the\r
3278         <xref linkend="git-blame(1)" /> manual for more information on copy detection.\r
3279 </simpara>\r
3280 </listitem>\r
3281 </varlistentry>\r
3282 <varlistentry>\r
3283 <term>\r
3284 gui.blamehistoryctx\r
3285 </term>\r
3286 <listitem>\r
3287 <simpara>\r
3288         Specifies the radius of history context in days to show in\r
3289         <xref linkend="gitk(1)" /> for the selected commit, when the <emphasis>Show History\r
3290         Context</emphasis> menu item is invoked from <emphasis>git gui blame</emphasis>. If this\r
3291         variable is set to zero, the whole history is shown.\r
3292 </simpara>\r
3293 </listitem>\r
3294 </varlistentry>\r
3295 <varlistentry>\r
3296 <term>\r
3297 guitool.&lt;name&gt;.cmd\r
3298 </term>\r
3299 <listitem>\r
3300 <simpara>\r
3301         Specifies the shell command line to execute when the corresponding item\r
3302         of the <xref linkend="git-gui(1)" /> <emphasis>Tools</emphasis> menu is invoked. This option is\r
3303         mandatory for every tool. The command is executed from the root of\r
3304         the working directory, and in the environment it receives the name of\r
3305         the tool as <emphasis>GIT_GUITOOL</emphasis>, the name of the currently selected file as\r
3306         <emphasis>FILENAME</emphasis>, and the name of the current branch as <emphasis>CUR_BRANCH</emphasis> (if\r
3307         the head is detached, <emphasis>CUR_BRANCH</emphasis> is empty).\r
3308 </simpara>\r
3309 </listitem>\r
3310 </varlistentry>\r
3311 <varlistentry>\r
3312 <term>\r
3313 guitool.&lt;name&gt;.needsfile\r
3314 </term>\r
3315 <listitem>\r
3316 <simpara>\r
3317         Run the tool only if a diff is selected in the GUI. It guarantees\r
3318         that <emphasis>FILENAME</emphasis> is not empty.\r
3319 </simpara>\r
3320 </listitem>\r
3321 </varlistentry>\r
3322 <varlistentry>\r
3323 <term>\r
3324 guitool.&lt;name&gt;.noconsole\r
3325 </term>\r
3326 <listitem>\r
3327 <simpara>\r
3328         Run the command silently, without creating a window to display its\r
3329         output.\r
3330 </simpara>\r
3331 </listitem>\r
3332 </varlistentry>\r
3333 <varlistentry>\r
3334 <term>\r
3335 guitool.&lt;name&gt;.norescan\r
3336 </term>\r
3337 <listitem>\r
3338 <simpara>\r
3339         Don't rescan the working directory for changes after the tool\r
3340         finishes execution.\r
3341 </simpara>\r
3342 </listitem>\r
3343 </varlistentry>\r
3344 <varlistentry>\r
3345 <term>\r
3346 guitool.&lt;name&gt;.confirm\r
3347 </term>\r
3348 <listitem>\r
3349 <simpara>\r
3350         Show a confirmation dialog before actually running the tool.\r
3351 </simpara>\r
3352 </listitem>\r
3353 </varlistentry>\r
3354 <varlistentry>\r
3355 <term>\r
3356 guitool.&lt;name&gt;.argprompt\r
3357 </term>\r
3358 <listitem>\r
3359 <simpara>\r
3360         Request a string argument from the user, and pass it to the tool\r
3361         through the <emphasis>ARGS</emphasis> environment variable. Since requesting an\r
3362         argument implies confirmation, the <emphasis>confirm</emphasis> option has no effect\r
3363         if this is enabled. If the option is set to <emphasis>true</emphasis>, <emphasis>yes</emphasis>, or <emphasis>1</emphasis>,\r
3364         the dialog uses a built-in generic prompt; otherwise the exact\r
3365         value of the variable is used.\r
3366 </simpara>\r
3367 </listitem>\r
3368 </varlistentry>\r
3369 <varlistentry>\r
3370 <term>\r
3371 guitool.&lt;name&gt;.revprompt\r
3372 </term>\r
3373 <listitem>\r
3374 <simpara>\r
3375         Request a single valid revision from the user, and set the\r
3376         <emphasis>REVISION</emphasis> environment variable. In other aspects this option\r
3377         is similar to <emphasis>argprompt</emphasis>, and can be used together with it.\r
3378 </simpara>\r
3379 </listitem>\r
3380 </varlistentry>\r
3381 <varlistentry>\r
3382 <term>\r
3383 guitool.&lt;name&gt;.revunmerged\r
3384 </term>\r
3385 <listitem>\r
3386 <simpara>\r
3387         Show only unmerged branches in the <emphasis>revprompt</emphasis> subdialog.\r
3388         This is useful for tools similar to merge or rebase, but not\r
3389         for things like checkout or reset.\r
3390 </simpara>\r
3391 </listitem>\r
3392 </varlistentry>\r
3393 <varlistentry>\r
3394 <term>\r
3395 guitool.&lt;name&gt;.title\r
3396 </term>\r
3397 <listitem>\r
3398 <simpara>\r
3399         Specifies the title to use for the prompt dialog. The default\r
3400         is the tool name.\r
3401 </simpara>\r
3402 </listitem>\r
3403 </varlistentry>\r
3404 <varlistentry>\r
3405 <term>\r
3406 guitool.&lt;name&gt;.prompt\r
3407 </term>\r
3408 <listitem>\r
3409 <simpara>\r
3410         Specifies the general prompt string to display at the top of\r
3411         the dialog, before subsections for <emphasis>argprompt</emphasis> and <emphasis>revprompt</emphasis>.\r
3412         The default value includes the actual command.\r
3413 </simpara>\r
3414 </listitem>\r
3415 </varlistentry>\r
3416 <varlistentry>\r
3417 <term>\r
3418 help.browser\r
3419 </term>\r
3420 <listitem>\r
3421 <simpara>\r
3422         Specify the browser that will be used to display help in the\r
3423         <emphasis>web</emphasis> format. See <xref linkend="git-help(1)" />.\r
3424 </simpara>\r
3425 </listitem>\r
3426 </varlistentry>\r
3427 <varlistentry>\r
3428 <term>\r
3429 help.format\r
3430 </term>\r
3431 <listitem>\r
3432 <simpara>\r
3433         Override the default help format used by <xref linkend="git-help(1)" />.\r
3434         Values <emphasis>man</emphasis>, <emphasis>info</emphasis>, <emphasis>web</emphasis> and <emphasis>html</emphasis> are supported. <emphasis>man</emphasis> is\r
3435         the default. <emphasis>web</emphasis> and <emphasis>html</emphasis> are the same.\r
3436 </simpara>\r
3437 </listitem>\r
3438 </varlistentry>\r
3439 <varlistentry>\r
3440 <term>\r
3441 help.autocorrect\r
3442 </term>\r
3443 <listitem>\r
3444 <simpara>\r
3445         Automatically correct and execute mistyped commands after\r
3446         waiting for the given number of deciseconds (0.1 sec). If more\r
3447         than one command can be deduced from the entered text, nothing\r
3448         will be executed.  If the value of this option is negative,\r
3449         the corrected command will be executed immediately. If the\r
3450         value is 0 - the command will be just shown but not executed.\r
3451         This is the default.\r
3452 </simpara>\r
3453 </listitem>\r
3454 </varlistentry>\r
3455 <varlistentry>\r
3456 <term>\r
3457 http.proxy\r
3458 </term>\r
3459 <listitem>\r
3460 <simpara>\r
3461         Override the HTTP proxy, normally configured using the <emphasis>http_proxy</emphasis>,\r
3462         <emphasis>https_proxy</emphasis>, and <emphasis>all_proxy</emphasis> environment variables (see\r
3463         <emphasis>curl(1)</emphasis>).  This can be overridden on a per-remote basis; see\r
3464         remote.&lt;name&gt;.proxy\r
3465 </simpara>\r
3466 </listitem>\r
3467 </varlistentry>\r
3468 <varlistentry>\r
3469 <term>\r
3470 http.cookiefile\r
3471 </term>\r
3472 <listitem>\r
3473 <simpara>\r
3474         File containing previously stored cookie lines which should be used\r
3475         in the git http session, if they match the server. The file format\r
3476         of the file to read cookies from should be plain HTTP headers or\r
3477         the Netscape/Mozilla cookie file format (see <xref linkend="curl(1)" />).\r
3478         NOTE that the file specified with http.cookiefile is only used as\r
3479         input. No cookies will be stored in the file.\r
3480 </simpara>\r
3481 </listitem>\r
3482 </varlistentry>\r
3483 <varlistentry>\r
3484 <term>\r
3485 http.sslVerify\r
3486 </term>\r
3487 <listitem>\r
3488 <simpara>\r
3489         Whether to verify the SSL certificate when fetching or pushing\r
3490         over HTTPS. Can be overridden by the <emphasis>GIT_SSL_NO_VERIFY</emphasis> environment\r
3491         variable.\r
3492 </simpara>\r
3493 </listitem>\r
3494 </varlistentry>\r
3495 <varlistentry>\r
3496 <term>\r
3497 http.sslCert\r
3498 </term>\r
3499 <listitem>\r
3500 <simpara>\r
3501         File containing the SSL certificate when fetching or pushing\r
3502         over HTTPS. Can be overridden by the <emphasis>GIT_SSL_CERT</emphasis> environment\r
3503         variable.\r
3504 </simpara>\r
3505 </listitem>\r
3506 </varlistentry>\r
3507 <varlistentry>\r
3508 <term>\r
3509 http.sslKey\r
3510 </term>\r
3511 <listitem>\r
3512 <simpara>\r
3513         File containing the SSL private key when fetching or pushing\r
3514         over HTTPS. Can be overridden by the <emphasis>GIT_SSL_KEY</emphasis> environment\r
3515         variable.\r
3516 </simpara>\r
3517 </listitem>\r
3518 </varlistentry>\r
3519 <varlistentry>\r
3520 <term>\r
3521 http.sslCertPasswordProtected\r
3522 </term>\r
3523 <listitem>\r
3524 <simpara>\r
3525         Enable git's password prompt for the SSL certificate.  Otherwise\r
3526         OpenSSL will prompt the user, possibly many times, if the\r
3527         certificate or private key is encrypted.  Can be overridden by the\r
3528         <emphasis>GIT_SSL_CERT_PASSWORD_PROTECTED</emphasis> environment variable.\r
3529 </simpara>\r
3530 </listitem>\r
3531 </varlistentry>\r
3532 <varlistentry>\r
3533 <term>\r
3534 http.sslCAInfo\r
3535 </term>\r
3536 <listitem>\r
3537 <simpara>\r
3538         File containing the certificates to verify the peer with when\r
3539         fetching or pushing over HTTPS. Can be overridden by the\r
3540         <emphasis>GIT_SSL_CAINFO</emphasis> environment variable.\r
3541 </simpara>\r
3542 </listitem>\r
3543 </varlistentry>\r
3544 <varlistentry>\r
3545 <term>\r
3546 http.sslCAPath\r
3547 </term>\r
3548 <listitem>\r
3549 <simpara>\r
3550         Path containing files with the CA certificates to verify the peer\r
3551         with when fetching or pushing over HTTPS. Can be overridden\r
3552         by the <emphasis>GIT_SSL_CAPATH</emphasis> environment variable.\r
3553 </simpara>\r
3554 </listitem>\r
3555 </varlistentry>\r
3556 <varlistentry>\r
3557 <term>\r
3558 http.maxRequests\r
3559 </term>\r
3560 <listitem>\r
3561 <simpara>\r
3562         How many HTTP requests to launch in parallel. Can be overridden\r
3563         by the <emphasis>GIT_HTTP_MAX_REQUESTS</emphasis> environment variable. Default is 5.\r
3564 </simpara>\r
3565 </listitem>\r
3566 </varlistentry>\r
3567 <varlistentry>\r
3568 <term>\r
3569 http.minSessions\r
3570 </term>\r
3571 <listitem>\r
3572 <simpara>\r
3573         The number of curl sessions (counted across slots) to be kept across\r
3574         requests. They will not be ended with curl_easy_cleanup() until\r
3575         http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this\r
3576         value will be capped at 1. Defaults to 1.\r
3577 </simpara>\r
3578 </listitem>\r
3579 </varlistentry>\r
3580 <varlistentry>\r
3581 <term>\r
3582 http.postBuffer\r
3583 </term>\r
3584 <listitem>\r
3585 <simpara>\r
3586         Maximum size in bytes of the buffer used by smart HTTP\r
3587         transports when POSTing data to the remote system.\r
3588         For requests larger than this buffer size, HTTP/1.1 and\r
3589         Transfer-Encoding: chunked is used to avoid creating a\r
3590         massive pack file locally.  Default is 1 MiB, which is\r
3591         sufficient for most requests.\r
3592 </simpara>\r
3593 </listitem>\r
3594 </varlistentry>\r
3595 <varlistentry>\r
3596 <term>\r
3597 http.lowSpeedLimit, http.lowSpeedTime\r
3598 </term>\r
3599 <listitem>\r
3600 <simpara>\r
3601         If the HTTP transfer speed is less than <emphasis>http.lowSpeedLimit</emphasis>\r
3602         for longer than <emphasis>http.lowSpeedTime</emphasis> seconds, the transfer is aborted.\r
3603         Can be overridden by the <emphasis>GIT_HTTP_LOW_SPEED_LIMIT</emphasis> and\r
3604         <emphasis>GIT_HTTP_LOW_SPEED_TIME</emphasis> environment variables.\r
3605 </simpara>\r
3606 </listitem>\r
3607 </varlistentry>\r
3608 <varlistentry>\r
3609 <term>\r
3610 http.noEPSV\r
3611 </term>\r
3612 <listitem>\r
3613 <simpara>\r
3614         A boolean which disables using of EPSV ftp command by curl.\r
3615         This can helpful with some "poor" ftp servers which don't\r
3616         support EPSV mode. Can be overridden by the <emphasis>GIT_CURL_FTP_NO_EPSV</emphasis>\r
3617         environment variable. Default is false (curl will use EPSV).\r
3618 </simpara>\r
3619 </listitem>\r
3620 </varlistentry>\r
3621 <varlistentry>\r
3622 <term>\r
3623 http.useragent\r
3624 </term>\r
3625 <listitem>\r
3626 <simpara>\r
3627         The HTTP USER_AGENT string presented to an HTTP server.  The default\r
3628         value represents the version of the client git such as git/1.7.1.\r
3629         This option allows you to override this value to a more common value\r
3630         such as Mozilla/4.0.  This may be necessary, for instance, if\r
3631         connecting through a firewall that restricts HTTP connections to a set\r
3632         of common USER_AGENT strings (but not including those like git/1.7.1).\r
3633         Can be overridden by the <emphasis>GIT_HTTP_USER_AGENT</emphasis> environment variable.\r
3634 </simpara>\r
3635 </listitem>\r
3636 </varlistentry>\r
3637 <varlistentry>\r
3638 <term>\r
3639 i18n.commitEncoding\r
3640 </term>\r
3641 <listitem>\r
3642 <simpara>\r
3643         Character encoding the commit messages are stored in; git itself\r
3644         does not care per se, but this information is necessary e.g. when\r
3645         importing commits from emails or in the gitk graphical history\r
3646         browser (and possibly at other places in the future or in other\r
3647         porcelains). See e.g. <xref linkend="git-mailinfo(1)" />. Defaults to <emphasis>utf-8</emphasis>.\r
3648 </simpara>\r
3649 </listitem>\r
3650 </varlistentry>\r
3651 <varlistentry>\r
3652 <term>\r
3653 i18n.logOutputEncoding\r
3654 </term>\r
3655 <listitem>\r
3656 <simpara>\r
3657         Character encoding the commit messages are converted to when\r
3658         running <emphasis>git log</emphasis> and friends.\r
3659 </simpara>\r
3660 </listitem>\r
3661 </varlistentry>\r
3662 <varlistentry>\r
3663 <term>\r
3664 imap\r
3665 </term>\r
3666 <listitem>\r
3667 <simpara>\r
3668         The configuration variables in the <emphasis>imap</emphasis> section are described\r
3669         in <xref linkend="git-imap-send(1)" />.\r
3670 </simpara>\r
3671 </listitem>\r
3672 </varlistentry>\r
3673 <varlistentry>\r
3674 <term>\r
3675 init.templatedir\r
3676 </term>\r
3677 <listitem>\r
3678 <simpara>\r
3679         Specify the directory from which templates will be copied.\r
3680         (See the "TEMPLATE DIRECTORY" section of <xref linkend="git-init(1)" />.)\r
3681 </simpara>\r
3682 </listitem>\r
3683 </varlistentry>\r
3684 <varlistentry>\r
3685 <term>\r
3686 instaweb.browser\r
3687 </term>\r
3688 <listitem>\r
3689 <simpara>\r
3690         Specify the program that will be used to browse your working\r
3691         repository in gitweb. See <xref linkend="git-instaweb(1)" />.\r
3692 </simpara>\r
3693 </listitem>\r
3694 </varlistentry>\r
3695 <varlistentry>\r
3696 <term>\r
3697 instaweb.httpd\r
3698 </term>\r
3699 <listitem>\r
3700 <simpara>\r
3701         The HTTP daemon command-line to start gitweb on your working\r
3702         repository. See <xref linkend="git-instaweb(1)" />.\r
3703 </simpara>\r
3704 </listitem>\r
3705 </varlistentry>\r
3706 <varlistentry>\r
3707 <term>\r
3708 instaweb.local\r
3709 </term>\r
3710 <listitem>\r
3711 <simpara>\r
3712         If true the web server started by <xref linkend="git-instaweb(1)" /> will\r
3713         be bound to the local IP (127.0.0.1).\r
3714 </simpara>\r
3715 </listitem>\r
3716 </varlistentry>\r
3717 <varlistentry>\r
3718 <term>\r
3719 instaweb.modulepath\r
3720 </term>\r
3721 <listitem>\r
3722 <simpara>\r
3723         The default module path for <xref linkend="git-instaweb(1)" /> to use\r
3724         instead of /usr/lib/apache2/modules.  Only used if httpd\r
3725         is Apache.\r
3726 </simpara>\r
3727 </listitem>\r
3728 </varlistentry>\r
3729 <varlistentry>\r
3730 <term>\r
3731 instaweb.port\r
3732 </term>\r
3733 <listitem>\r
3734 <simpara>\r
3735         The port number to bind the gitweb httpd to. See\r
3736         <xref linkend="git-instaweb(1)" />.\r
3737 </simpara>\r
3738 </listitem>\r
3739 </varlistentry>\r
3740 <varlistentry>\r
3741 <term>\r
3742 interactive.singlekey\r
3743 </term>\r
3744 <listitem>\r
3745 <simpara>\r
3746         In interactive commands, allow the user to provide one-letter\r
3747         input with a single key (i.e., without hitting enter).\r
3748         Currently this is used by the <emphasis>--patch</emphasis> mode of\r
3749         <xref linkend="git-add(1)" />, <xref linkend="git-checkout(1)" />, <xref linkend="git-commit(1)" />,\r
3750         <xref linkend="git-reset(1)" />, and <xref linkend="git-stash(1)" />. Note that this\r
3751         setting is silently ignored if portable keystroke input\r
3752         is not available.\r
3753 </simpara>\r
3754 </listitem>\r
3755 </varlistentry>\r
3756 <varlistentry>\r
3757 <term>\r
3758 log.abbrevCommit\r
3759 </term>\r
3760 <listitem>\r
3761 <simpara>\r
3762         If true, makes <xref linkend="git-log(1)" />, <xref linkend="git-show(1)" />, and\r
3763         <xref linkend="git-whatchanged(1)" /> assume <emphasis>--abbrev-commit</emphasis>. You may\r
3764         override this option with <emphasis>--no-abbrev-commit</emphasis>.\r
3765 </simpara>\r
3766 </listitem>\r
3767 </varlistentry>\r
3768 <varlistentry>\r
3769 <term>\r
3770 log.date\r
3771 </term>\r
3772 <listitem>\r
3773 <simpara>\r
3774         Set the default date-time mode for the <emphasis>log</emphasis> command.\r
3775         Setting a value for log.date is similar to using <emphasis>git log</emphasis>'s\r
3776         <emphasis>--date</emphasis> option.  Possible values are <emphasis>relative</emphasis>, <emphasis>local</emphasis>,\r
3777         <emphasis>default</emphasis>, <emphasis>iso</emphasis>, <emphasis>rfc</emphasis>, and <emphasis>short</emphasis>; see <xref linkend="git-log(1)" />\r
3778         for details.\r
3779 </simpara>\r
3780 </listitem>\r
3781 </varlistentry>\r
3782 <varlistentry>\r
3783 <term>\r
3784 log.decorate\r
3785 </term>\r
3786 <listitem>\r
3787 <simpara>\r
3788         Print out the ref names of any commits that are shown by the log\r
3789         command. If <emphasis>short</emphasis> is specified, the ref name prefixes <emphasis>refs/heads/</emphasis>,\r
3790         <emphasis>refs/tags/</emphasis> and <emphasis>refs/remotes/</emphasis> will not be printed. If <emphasis>full</emphasis> is\r
3791         specified, the full ref name (including prefix) will be printed.\r
3792         This is the same as the log commands <emphasis>--decorate</emphasis> option.\r
3793 </simpara>\r
3794 </listitem>\r
3795 </varlistentry>\r
3796 <varlistentry>\r
3797 <term>\r
3798 log.showroot\r
3799 </term>\r
3800 <listitem>\r
3801 <simpara>\r
3802         If true, the initial commit will be shown as a big creation event.\r
3803         This is equivalent to a diff against an empty tree.\r
3804         Tools like <xref linkend="git-log(1)" /> or <xref linkend="git-whatchanged(1)" />, which\r
3805         normally hide the root commit will now show it. True by default.\r
3806 </simpara>\r
3807 </listitem>\r
3808 </varlistentry>\r
3809 <varlistentry>\r
3810 <term>\r
3811 mailmap.file\r
3812 </term>\r
3813 <listitem>\r
3814 <simpara>\r
3815         The location of an augmenting mailmap file. The default\r
3816         mailmap, located in the root of the repository, is loaded\r
3817         first, then the mailmap file pointed to by this variable.\r
3818         The location of the mailmap file may be in a repository\r
3819         subdirectory, or somewhere outside of the repository itself.\r
3820         See <xref linkend="git-shortlog(1)" /> and <xref linkend="git-blame(1)" />.\r
3821 </simpara>\r
3822 </listitem>\r
3823 </varlistentry>\r
3824 <varlistentry>\r
3825 <term>\r
3826 man.viewer\r
3827 </term>\r
3828 <listitem>\r
3829 <simpara>\r
3830         Specify the programs that may be used to display help in the\r
3831         <emphasis>man</emphasis> format. See <xref linkend="git-help(1)" />.\r
3832 </simpara>\r
3833 </listitem>\r
3834 </varlistentry>\r
3835 <varlistentry>\r
3836 <term>\r
3837 man.&lt;tool&gt;.cmd\r
3838 </term>\r
3839 <listitem>\r
3840 <simpara>\r
3841         Specify the command to invoke the specified man viewer. The\r
3842         specified command is evaluated in shell with the man page\r
3843         passed as argument. (See <xref linkend="git-help(1)" />.)\r
3844 </simpara>\r
3845 </listitem>\r
3846 </varlistentry>\r
3847 <varlistentry>\r
3848 <term>\r
3849 man.&lt;tool&gt;.path\r
3850 </term>\r
3851 <listitem>\r
3852 <simpara>\r
3853         Override the path for the given tool that may be used to\r
3854         display help in the <emphasis>man</emphasis> format. See <xref linkend="git-help(1)" />.\r
3855 </simpara>\r
3856 </listitem>\r
3857 </varlistentry>\r
3858 <varlistentry>\r
3859 <term>\r
3860 merge.conflictstyle\r
3861 </term>\r
3862 <listitem>\r
3863 <simpara>\r
3864         Specify the style in which conflicted hunks are written out to\r
3865         working tree files upon merge.  The default is "merge", which\r
3866         shows a <emphasis>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</emphasis> conflict marker, changes made by one side,\r
3867         a <emphasis>=======</emphasis> marker, changes made by the other side, and then\r
3868         a <emphasis>&gt;&gt;&gt;&gt;&gt;&gt;&gt;</emphasis> marker.  An alternate style, "diff3", adds a <emphasis>|||||||</emphasis>\r
3869         marker and the original text before the <emphasis>=======</emphasis> marker.\r
3870 </simpara>\r
3871 </listitem>\r
3872 </varlistentry>\r
3873 <varlistentry>\r
3874 <term>\r
3875 merge.defaultToUpstream\r
3876 </term>\r
3877 <listitem>\r
3878 <simpara>\r
3879         If merge is called without any commit argument, merge the upstream\r
3880         branches configured for the current branch by using their last\r
3881         observed values stored in their remote-tracking branches.\r
3882         The values of the <emphasis>branch.&lt;current branch&gt;.merge</emphasis> that name the\r
3883         branches at the remote named by <emphasis>branch.&lt;current branch&gt;.remote</emphasis>\r
3884         are consulted, and then they are mapped via <emphasis>remote.&lt;remote&gt;.fetch</emphasis>\r
3885         to their corresponding remote-tracking branches, and the tips of\r
3886         these tracking branches are merged.\r
3887 </simpara>\r
3888 </listitem>\r
3889 </varlistentry>\r
3890 <varlistentry>\r
3891 <term>\r
3892 merge.ff\r
3893 </term>\r
3894 <listitem>\r
3895 <simpara>\r
3896         By default, git does not create an extra merge commit when merging\r
3897         a commit that is a descendant of the current commit. Instead, the\r
3898         tip of the current branch is fast-forwarded. When set to <emphasis>false</emphasis>,\r
3899         this variable tells git to create an extra merge commit in such\r
3900         a case (equivalent to giving the <emphasis>--no-ff</emphasis> option from the command\r
3901         line). When set to <emphasis>only</emphasis>, only such fast-forward merges are\r
3902         allowed (equivalent to giving the <emphasis>--ff-only</emphasis> option from the\r
3903         command line).\r
3904 </simpara>\r
3905 </listitem>\r
3906 </varlistentry>\r
3907 <varlistentry>\r
3908 <term>\r
3909 merge.log\r
3910 </term>\r
3911 <listitem>\r
3912 <simpara>\r
3913         In addition to branch names, populate the log message with at\r
3914         most the specified number of one-line descriptions from the\r
3915         actual commits that are being merged.  Defaults to false, and\r
3916         true is a synonym for 20.\r
3917 </simpara>\r
3918 </listitem>\r
3919 </varlistentry>\r
3920 <varlistentry>\r
3921 <term>\r
3922 merge.renameLimit\r
3923 </term>\r
3924 <listitem>\r
3925 <simpara>\r
3926         The number of files to consider when performing rename detection\r
3927         during a merge; if not specified, defaults to the value of\r
3928         diff.renameLimit.\r
3929 </simpara>\r
3930 </listitem>\r
3931 </varlistentry>\r
3932 <varlistentry>\r
3933 <term>\r
3934 merge.renormalize\r
3935 </term>\r
3936 <listitem>\r
3937 <simpara>\r
3938         Tell git that canonical representation of files in the\r
3939         repository has changed over time (e.g. earlier commits record\r
3940         text files with CRLF line endings, but recent ones use LF line\r
3941         endings).  In such a repository, git can convert the data\r
3942         recorded in commits to a canonical form before performing a\r
3943         merge to reduce unnecessary conflicts.  For more information,\r
3944         see section "Merging branches with differing checkin/checkout\r
3945         attributes" in <xref linkend="gitattributes(5)" />.\r
3946 </simpara>\r
3947 </listitem>\r
3948 </varlistentry>\r
3949 <varlistentry>\r
3950 <term>\r
3951 merge.stat\r
3952 </term>\r
3953 <listitem>\r
3954 <simpara>\r
3955         Whether to print the diffstat between ORIG_HEAD and the merge result\r
3956         at the end of the merge.  True by default.\r
3957 </simpara>\r
3958 </listitem>\r
3959 </varlistentry>\r
3960 <varlistentry>\r
3961 <term>\r
3962 merge.tool\r
3963 </term>\r
3964 <listitem>\r
3965 <simpara>\r
3966         Controls which merge resolution program is used by\r
3967         <xref linkend="git-mergetool(1)" />.  Valid built-in values are: "araxis",\r
3968         "bc3", "diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld",\r
3969         "opendiff", "p4merge", "tkdiff", "tortoisemerge", "vimdiff"\r
3970         and "xxdiff".  Any other value is treated is custom merge tool\r
3971         and there must be a corresponding mergetool.&lt;tool&gt;.cmd option.\r
3972 </simpara>\r
3973 </listitem>\r
3974 </varlistentry>\r
3975 <varlistentry>\r
3976 <term>\r
3977 merge.verbosity\r
3978 </term>\r
3979 <listitem>\r
3980 <simpara>\r
3981         Controls the amount of output shown by the recursive merge\r
3982         strategy.  Level 0 outputs nothing except a final error\r
3983         message if conflicts were detected. Level 1 outputs only\r
3984         conflicts, 2 outputs conflicts and file changes.  Level 5 and\r
3985         above outputs debugging information.  The default is level 2.\r
3986         Can be overridden by the <emphasis>GIT_MERGE_VERBOSITY</emphasis> environment variable.\r
3987 </simpara>\r
3988 </listitem>\r
3989 </varlistentry>\r
3990 <varlistentry>\r
3991 <term>\r
3992 merge.&lt;driver&gt;.name\r
3993 </term>\r
3994 <listitem>\r
3995 <simpara>\r
3996         Defines a human-readable name for a custom low-level\r
3997         merge driver.  See <xref linkend="gitattributes(5)" /> for details.\r
3998 </simpara>\r
3999 </listitem>\r
4000 </varlistentry>\r
4001 <varlistentry>\r
4002 <term>\r
4003 merge.&lt;driver&gt;.driver\r
4004 </term>\r
4005 <listitem>\r
4006 <simpara>\r
4007         Defines the command that implements a custom low-level\r
4008         merge driver.  See <xref linkend="gitattributes(5)" /> for details.\r
4009 </simpara>\r
4010 </listitem>\r
4011 </varlistentry>\r
4012 <varlistentry>\r
4013 <term>\r
4014 merge.&lt;driver&gt;.recursive\r
4015 </term>\r
4016 <listitem>\r
4017 <simpara>\r
4018         Names a low-level merge driver to be used when\r
4019         performing an internal merge between common ancestors.\r
4020         See <xref linkend="gitattributes(5)" /> for details.\r
4021 </simpara>\r
4022 </listitem>\r
4023 </varlistentry>\r
4024 <varlistentry>\r
4025 <term>\r
4026 mergetool.&lt;tool&gt;.path\r
4027 </term>\r
4028 <listitem>\r
4029 <simpara>\r
4030         Override the path for the given tool.  This is useful in case\r
4031         your tool is not in the PATH.\r
4032 </simpara>\r
4033 </listitem>\r
4034 </varlistentry>\r
4035 <varlistentry>\r
4036 <term>\r
4037 mergetool.&lt;tool&gt;.cmd\r
4038 </term>\r
4039 <listitem>\r
4040 <simpara>\r
4041         Specify the command to invoke the specified merge tool.  The\r
4042         specified command is evaluated in shell with the following\r
4043         variables available: <emphasis>BASE</emphasis> is the name of a temporary file\r
4044         containing the common base of the files to be merged, if available;\r
4045         <emphasis>LOCAL</emphasis> is the name of a temporary file containing the contents of\r
4046         the file on the current branch; <emphasis>REMOTE</emphasis> is the name of a temporary\r
4047         file containing the contents of the file from the branch being\r
4048         merged; <emphasis>MERGED</emphasis> contains the name of the file to which the merge\r
4049         tool should write the results of a successful merge.\r
4050 </simpara>\r
4051 </listitem>\r
4052 </varlistentry>\r
4053 <varlistentry>\r
4054 <term>\r
4055 mergetool.&lt;tool&gt;.trustExitCode\r
4056 </term>\r
4057 <listitem>\r
4058 <simpara>\r
4059         For a custom merge command, specify whether the exit code of\r
4060         the merge command can be used to determine whether the merge was\r
4061         successful.  If this is not set to true then the merge target file\r
4062         timestamp is checked and the merge assumed to have been successful\r
4063         if the file has been updated, otherwise the user is prompted to\r
4064         indicate the success of the merge.\r
4065 </simpara>\r
4066 </listitem>\r
4067 </varlistentry>\r
4068 <varlistentry>\r
4069 <term>\r
4070 mergetool.keepBackup\r
4071 </term>\r
4072 <listitem>\r
4073 <simpara>\r
4074         After performing a merge, the original file with conflict markers\r
4075         can be saved as a file with a <emphasis>.orig</emphasis> extension.  If this variable\r
4076         is set to <emphasis>false</emphasis> then this file is not preserved.  Defaults to\r
4077         <emphasis>true</emphasis> (i.e. keep the backup files).\r
4078 </simpara>\r
4079 </listitem>\r
4080 </varlistentry>\r
4081 <varlistentry>\r
4082 <term>\r
4083 mergetool.keepTemporaries\r
4084 </term>\r
4085 <listitem>\r
4086 <simpara>\r
4087         When invoking a custom merge tool, git uses a set of temporary\r
4088         files to pass to the tool. If the tool returns an error and this\r
4089         variable is set to <emphasis>true</emphasis>, then these temporary files will be\r
4090         preserved, otherwise they will be removed after the tool has\r
4091         exited. Defaults to <emphasis>false</emphasis>.\r
4092 </simpara>\r
4093 </listitem>\r
4094 </varlistentry>\r
4095 <varlistentry>\r
4096 <term>\r
4097 mergetool.prompt\r
4098 </term>\r
4099 <listitem>\r
4100 <simpara>\r
4101         Prompt before each invocation of the merge resolution program.\r
4102 </simpara>\r
4103 </listitem>\r
4104 </varlistentry>\r
4105 <varlistentry>\r
4106 <term>\r
4107 notes.displayRef\r
4108 </term>\r
4109 <listitem>\r
4110 <simpara>\r
4111         The (fully qualified) refname from which to show notes when\r
4112         showing commit messages.  The value of this variable can be set\r
4113         to a glob, in which case notes from all matching refs will be\r
4114         shown.  You may also specify this configuration variable\r
4115         several times.  A warning will be issued for refs that do not\r
4116         exist, but a glob that does not match any refs is silently\r
4117         ignored.\r
4118 </simpara>\r
4119 <simpara>This setting can be overridden with the <emphasis>GIT_NOTES_DISPLAY_REF</emphasis>\r
4120 environment variable, which must be a colon separated list of refs or\r
4121 globs.</simpara>\r
4122 <simpara>The effective value of "core.notesRef" (possibly overridden by\r
4123 GIT_NOTES_REF) is also implicitly added to the list of refs to be\r
4124 displayed.</simpara>\r
4125 </listitem>\r
4126 </varlistentry>\r
4127 <varlistentry>\r
4128 <term>\r
4129 notes.rewrite.&lt;command&gt;\r
4130 </term>\r
4131 <listitem>\r
4132 <simpara>\r
4133         When rewriting commits with &lt;command&gt; (currently <emphasis>amend</emphasis> or\r
4134         <emphasis>rebase</emphasis>) and this variable is set to <emphasis>true</emphasis>, git\r
4135         automatically copies your notes from the original to the\r
4136         rewritten commit.  Defaults to <emphasis>true</emphasis>, but see\r
4137         "notes.rewriteRef" below.\r
4138 </simpara>\r
4139 </listitem>\r
4140 </varlistentry>\r
4141 <varlistentry>\r
4142 <term>\r
4143 notes.rewriteMode\r
4144 </term>\r
4145 <listitem>\r
4146 <simpara>\r
4147         When copying notes during a rewrite (see the\r
4148         "notes.rewrite.&lt;command&gt;" option), determines what to do if\r
4149         the target commit already has a note.  Must be one of\r
4150         <emphasis>overwrite</emphasis>, <emphasis>concatenate</emphasis>, or <emphasis>ignore</emphasis>.  Defaults to\r
4151         <emphasis>concatenate</emphasis>.\r
4152 </simpara>\r
4153 <simpara>This setting can be overridden with the <emphasis>GIT_NOTES_REWRITE_MODE</emphasis>\r
4154 environment variable.</simpara>\r
4155 </listitem>\r
4156 </varlistentry>\r
4157 <varlistentry>\r
4158 <term>\r
4159 notes.rewriteRef\r
4160 </term>\r
4161 <listitem>\r
4162 <simpara>\r
4163         When copying notes during a rewrite, specifies the (fully\r
4164         qualified) ref whose notes should be copied.  The ref may be a\r
4165         glob, in which case notes in all matching refs will be copied.\r
4166         You may also specify this configuration several times.\r
4167 </simpara>\r
4168 <simpara>Does not have a default value; you must configure this variable to\r
4169 enable note rewriting.  Set it to <emphasis>refs/notes/commits</emphasis> to enable\r
4170 rewriting for the default commit notes.</simpara>\r
4171 <simpara>This setting can be overridden with the <emphasis>GIT_NOTES_REWRITE_REF</emphasis>\r
4172 environment variable, which must be a colon separated list of refs or\r
4173 globs.</simpara>\r
4174 </listitem>\r
4175 </varlistentry>\r
4176 <varlistentry>\r
4177 <term>\r
4178 pack.window\r
4179 </term>\r
4180 <listitem>\r
4181 <simpara>\r
4182         The size of the window used by <xref linkend="git-pack-objects(1)" /> when no\r
4183         window size is given on the command line. Defaults to 10.\r
4184 </simpara>\r
4185 </listitem>\r
4186 </varlistentry>\r
4187 <varlistentry>\r
4188 <term>\r
4189 pack.depth\r
4190 </term>\r
4191 <listitem>\r
4192 <simpara>\r
4193         The maximum delta depth used by <xref linkend="git-pack-objects(1)" /> when no\r
4194         maximum depth is given on the command line. Defaults to 50.\r
4195 </simpara>\r
4196 </listitem>\r
4197 </varlistentry>\r
4198 <varlistentry>\r
4199 <term>\r
4200 pack.windowMemory\r
4201 </term>\r
4202 <listitem>\r
4203 <simpara>\r
4204         The window memory size limit used by <xref linkend="git-pack-objects(1)" />\r
4205         when no limit is given on the command line.  The value can be\r
4206         suffixed with "k", "m", or "g".  Defaults to 0, meaning no\r
4207         limit.\r
4208 </simpara>\r
4209 </listitem>\r
4210 </varlistentry>\r
4211 <varlistentry>\r
4212 <term>\r
4213 pack.compression\r
4214 </term>\r
4215 <listitem>\r
4216 <simpara>\r
4217         An integer -1..9, indicating the compression level for objects\r
4218         in a pack file. -1 is the zlib default. 0 means no\r
4219         compression, and 1..9 are various speed/size tradeoffs, 9 being\r
4220         slowest.  If not set,  defaults to core.compression.  If that is\r
4221         not set,  defaults to -1, the zlib default, which is "a default\r
4222         compromise between speed and compression (currently equivalent\r
4223         to level 6)."\r
4224 </simpara>\r
4225 <simpara>Note that changing the compression level will not automatically recompress\r
4226 all existing objects. You can force recompression by passing the -F option\r
4227 to <xref linkend="git-repack(1)" />.</simpara>\r
4228 </listitem>\r
4229 </varlistentry>\r
4230 <varlistentry>\r
4231 <term>\r
4232 pack.deltaCacheSize\r
4233 </term>\r
4234 <listitem>\r
4235 <simpara>\r
4236         The maximum memory in bytes used for caching deltas in\r
4237         <xref linkend="git-pack-objects(1)" /> before writing them out to a pack.\r
4238         This cache is used to speed up the writing object phase by not\r
4239         having to recompute the final delta result once the best match\r
4240         for all objects is found.  Repacking large repositories on machines\r
4241         which are tight with memory might be badly impacted by this though,\r
4242         especially if this cache pushes the system into swapping.\r
4243         A value of 0 means no limit. The smallest size of 1 byte may be\r
4244         used to virtually disable this cache. Defaults to 256 MiB.\r
4245 </simpara>\r
4246 </listitem>\r
4247 </varlistentry>\r
4248 <varlistentry>\r
4249 <term>\r
4250 pack.deltaCacheLimit\r
4251 </term>\r
4252 <listitem>\r
4253 <simpara>\r
4254         The maximum size of a delta, that is cached in\r
4255         <xref linkend="git-pack-objects(1)" />. This cache is used to speed up the\r
4256         writing object phase by not having to recompute the final delta\r
4257         result once the best match for all objects is found. Defaults to 1000.\r
4258 </simpara>\r
4259 </listitem>\r
4260 </varlistentry>\r
4261 <varlistentry>\r
4262 <term>\r
4263 pack.threads\r
4264 </term>\r
4265 <listitem>\r
4266 <simpara>\r
4267         Specifies the number of threads to spawn when searching for best\r
4268         delta matches.  This requires that <xref linkend="git-pack-objects(1)" />\r
4269         be compiled with pthreads otherwise this option is ignored with a\r
4270         warning. This is meant to reduce packing time on multiprocessor\r
4271         machines. The required amount of memory for the delta search window\r
4272         is however multiplied by the number of threads.\r
4273         Specifying 0 will cause git to auto-detect the number of CPU's\r
4274         and set the number of threads accordingly.\r
4275 </simpara>\r
4276 </listitem>\r
4277 </varlistentry>\r
4278 <varlistentry>\r
4279 <term>\r
4280 pack.indexVersion\r
4281 </term>\r
4282 <listitem>\r
4283 <simpara>\r
4284         Specify the default pack index version.  Valid values are 1 for\r
4285         legacy pack index used by Git versions prior to 1.5.2, and 2 for\r
4286         the new pack index with capabilities for packs larger than 4 GB\r
4287         as well as proper protection against the repacking of corrupted\r
4288         packs.  Version 2 is the default.  Note that version 2 is enforced\r
4289         and this config option ignored whenever the corresponding pack is\r
4290         larger than 2 GB.\r
4291 </simpara>\r
4292 <simpara>If you have an old git that does not understand the version 2 <emphasis>*.idx</emphasis> file,\r
4293 cloning or fetching over a non native protocol (e.g. "http" and "rsync")\r
4294 that will copy both <emphasis>*.pack</emphasis> file and corresponding <emphasis>*.idx</emphasis> file from the\r
4295 other side may give you a repository that cannot be accessed with your\r
4296 older version of git. If the <emphasis>*.pack</emphasis> file is smaller than 2 GB, however,\r
4297 you can use <xref linkend="git-index-pack(1)" /> on the *.pack file to regenerate\r
4298 the <emphasis>*.idx</emphasis> file.</simpara>\r
4299 </listitem>\r
4300 </varlistentry>\r
4301 <varlistentry>\r
4302 <term>\r
4303 pack.packSizeLimit\r
4304 </term>\r
4305 <listitem>\r
4306 <simpara>\r
4307         The maximum size of a pack.  This setting only affects\r
4308         packing to a file when repacking, i.e. the git:// protocol\r
4309         is unaffected.  It can be overridden by the <emphasis>--max-pack-size</emphasis>\r
4310         option of <xref linkend="git-repack(1)" />. The minimum size allowed is\r
4311         limited to 1 MiB. The default is unlimited.\r
4312         Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are\r
4313         supported.\r
4314 </simpara>\r
4315 </listitem>\r
4316 </varlistentry>\r
4317 <varlistentry>\r
4318 <term>\r
4319 pager.&lt;cmd&gt;\r
4320 </term>\r
4321 <listitem>\r
4322 <simpara>\r
4323         If the value is boolean, turns on or off pagination of the\r
4324         output of a particular git subcommand when writing to a tty.\r
4325         Otherwise, turns on pagination for the subcommand using the\r
4326         pager specified by the value of <emphasis>pager.&lt;cmd&gt;</emphasis>.  If <emphasis>--paginate</emphasis>\r
4327         or <emphasis>--no-pager</emphasis> is specified on the command line, it takes\r
4328         precedence over this option.  To disable pagination for all\r
4329         commands, set <emphasis>core.pager</emphasis> or <emphasis>GIT_PAGER</emphasis> to <emphasis>cat</emphasis>.\r
4330 </simpara>\r
4331 </listitem>\r
4332 </varlistentry>\r
4333 <varlistentry>\r
4334 <term>\r
4335 pretty.&lt;name&gt;\r
4336 </term>\r
4337 <listitem>\r
4338 <simpara>\r
4339         Alias for a --pretty= format string, as specified in\r
4340         <xref linkend="git-log(1)" />. Any aliases defined here can be used just\r
4341         as the built-in pretty formats could. For example,\r
4342         running <emphasis>git config pretty.changelog "format:* %H %s"</emphasis>\r
4343         would cause the invocation <emphasis>git log --pretty=changelog</emphasis>\r
4344         to be equivalent to running <emphasis>git log "--pretty=format:* %H %s"</emphasis>.\r
4345         Note that an alias with the same name as a built-in format\r
4346         will be silently ignored.\r
4347 </simpara>\r
4348 </listitem>\r
4349 </varlistentry>\r
4350 <varlistentry>\r
4351 <term>\r
4352 pull.rebase\r
4353 </term>\r
4354 <listitem>\r
4355 <simpara>\r
4356         When true, rebase branches on top of the fetched branch, instead\r
4357         of merging the default branch from the default remote when "git\r
4358         pull" is run. See "branch.&lt;name&gt;.rebase" for setting this on a\r
4359         per-branch basis.\r
4360 </simpara>\r
4361 <simpara><emphasis role="strong">NOTE</emphasis>: this is a possibly dangerous operation; do <emphasis role="strong">not</emphasis> use\r
4362 it unless you understand the implications (see <xref linkend="git-rebase(1)" />\r
4363 for details).</simpara>\r
4364 </listitem>\r
4365 </varlistentry>\r
4366 <varlistentry>\r
4367 <term>\r
4368 pull.octopus\r
4369 </term>\r
4370 <listitem>\r
4371 <simpara>\r
4372         The default merge strategy to use when pulling multiple branches\r
4373         at once.\r
4374 </simpara>\r
4375 </listitem>\r
4376 </varlistentry>\r
4377 <varlistentry>\r
4378 <term>\r
4379 pull.twohead\r
4380 </term>\r
4381 <listitem>\r
4382 <simpara>\r
4383         The default merge strategy to use when pulling a single branch.\r
4384 </simpara>\r
4385 </listitem>\r
4386 </varlistentry>\r
4387 <varlistentry>\r
4388 <term>\r
4389 push.default\r
4390 </term>\r
4391 <listitem>\r
4392 <simpara>\r
4393         Defines the action git push should take if no refspec is given\r
4394         on the command line, no refspec is configured in the remote, and\r
4395         no refspec is implied by any of the options given on the command\r
4396         line. Possible values are:\r
4397 </simpara>\r
4398 <itemizedlist>\r
4399 <listitem>\r
4400 <simpara>\r
4401 <emphasis>nothing</emphasis> - do not push anything.\r
4402 </simpara>\r
4403 </listitem>\r
4404 <listitem>\r
4405 <simpara>\r
4406 <emphasis>matching</emphasis> - push all branches having the same name in both ends.\r
4407   This is for those who prepare all the branches into a publishable\r
4408   shape and then push them out with a single command.  It is not\r
4409   appropriate for pushing into a repository shared by multiple users,\r
4410   since locally stalled branches will attempt a non-fast forward push\r
4411   if other users updated the branch.\r
4412  <?asciidoc-br?>\r
4413   This is currently the default, but Git 2.0 will change the default\r
4414   to <emphasis>simple</emphasis>.\r
4415 </simpara>\r
4416 </listitem>\r
4417 <listitem>\r
4418 <simpara>\r
4419 <emphasis>upstream</emphasis> - push the current branch to its upstream branch.\r
4420   With this, <emphasis>git push</emphasis> will update the same remote ref as the one which\r
4421   is merged by <emphasis>git pull</emphasis>, making <emphasis>push</emphasis> and <emphasis>pull</emphasis> symmetrical.\r
4422   See "branch.&lt;name&gt;.merge" for how to configure the upstream branch.\r
4423 </simpara>\r
4424 </listitem>\r
4425 <listitem>\r
4426 <simpara>\r
4427 <emphasis>simple</emphasis> - like <emphasis>upstream</emphasis>, but refuses to push if the upstream\r
4428   branch's name is different from the local one. This is the safest\r
4429   option and is well-suited for beginners. It will become the default\r
4430   in Git 2.0.\r
4431 </simpara>\r
4432 </listitem>\r
4433 <listitem>\r
4434 <simpara>\r
4435 <emphasis>current</emphasis> - push the current branch to a branch of the same name.\r
4436 </simpara>\r
4437 </listitem>\r
4438 </itemizedlist>\r
4439 <simpara>The <emphasis>simple</emphasis>, <emphasis>current</emphasis> and <emphasis>upstream</emphasis> modes are for those who want to\r
4440 push out a single branch after finishing work, even when the other\r
4441 branches are not yet ready to be pushed out. If you are working with\r
4442 other people to push into the same shared repository, you would want\r
4443 to use one of these.</simpara>\r
4444 </listitem>\r
4445 </varlistentry>\r
4446 <varlistentry>\r
4447 <term>\r
4448 rebase.stat\r
4449 </term>\r
4450 <listitem>\r
4451 <simpara>\r
4452         Whether to show a diffstat of what changed upstream since the last\r
4453         rebase. False by default.\r
4454 </simpara>\r
4455 </listitem>\r
4456 </varlistentry>\r
4457 <varlistentry>\r
4458 <term>\r
4459 rebase.autosquash\r
4460 </term>\r
4461 <listitem>\r
4462 <simpara>\r
4463         If set to true enable <emphasis>--autosquash</emphasis> option by default.\r
4464 </simpara>\r
4465 </listitem>\r
4466 </varlistentry>\r
4467 <varlistentry>\r
4468 <term>\r
4469 receive.autogc\r
4470 </term>\r
4471 <listitem>\r
4472 <simpara>\r
4473         By default, git-receive-pack will run "git-gc --auto" after\r
4474         receiving data from git-push and updating refs.  You can stop\r
4475         it by setting this variable to false.\r
4476 </simpara>\r
4477 </listitem>\r
4478 </varlistentry>\r
4479 <varlistentry>\r
4480 <term>\r
4481 receive.fsckObjects\r
4482 </term>\r
4483 <listitem>\r
4484 <simpara>\r
4485         If it is set to true, git-receive-pack will check all received\r
4486         objects. It will abort in the case of a malformed object or a\r
4487         broken link. The result of an abort are only dangling objects.\r
4488         Defaults to false. If not set, the value of <emphasis>transfer.fsckObjects</emphasis>\r
4489         is used instead.\r
4490 </simpara>\r
4491 </listitem>\r
4492 </varlistentry>\r
4493 <varlistentry>\r
4494 <term>\r
4495 receive.unpackLimit\r
4496 </term>\r
4497 <listitem>\r
4498 <simpara>\r
4499         If the number of objects received in a push is below this\r
4500         limit then the objects will be unpacked into loose object\r
4501         files. However if the number of received objects equals or\r
4502         exceeds this limit then the received pack will be stored as\r
4503         a pack, after adding any missing delta bases.  Storing the\r
4504         pack from a push can make the push operation complete faster,\r
4505         especially on slow filesystems.  If not set, the value of\r
4506         <emphasis>transfer.unpackLimit</emphasis> is used instead.\r
4507 </simpara>\r
4508 </listitem>\r
4509 </varlistentry>\r
4510 <varlistentry>\r
4511 <term>\r
4512 receive.denyDeletes\r
4513 </term>\r
4514 <listitem>\r
4515 <simpara>\r
4516         If set to true, git-receive-pack will deny a ref update that deletes\r
4517         the ref. Use this to prevent such a ref deletion via a push.\r
4518 </simpara>\r
4519 </listitem>\r
4520 </varlistentry>\r
4521 <varlistentry>\r
4522 <term>\r
4523 receive.denyDeleteCurrent\r
4524 </term>\r
4525 <listitem>\r
4526 <simpara>\r
4527         If set to true, git-receive-pack will deny a ref update that\r
4528         deletes the currently checked out branch of a non-bare repository.\r
4529 </simpara>\r
4530 </listitem>\r
4531 </varlistentry>\r
4532 <varlistentry>\r
4533 <term>\r
4534 receive.denyCurrentBranch\r
4535 </term>\r
4536 <listitem>\r
4537 <simpara>\r
4538         If set to true or "refuse", git-receive-pack will deny a ref update\r
4539         to the currently checked out branch of a non-bare repository.\r
4540         Such a push is potentially dangerous because it brings the HEAD\r
4541         out of sync with the index and working tree. If set to "warn",\r
4542         print a warning of such a push to stderr, but allow the push to\r
4543         proceed. If set to false or "ignore", allow such pushes with no\r
4544         message. Defaults to "refuse".\r
4545 </simpara>\r
4546 </listitem>\r
4547 </varlistentry>\r
4548 <varlistentry>\r
4549 <term>\r
4550 receive.denyNonFastForwards\r
4551 </term>\r
4552 <listitem>\r
4553 <simpara>\r
4554         If set to true, git-receive-pack will deny a ref update which is\r
4555         not a fast-forward. Use this to prevent such an update via a push,\r
4556         even if that push is forced. This configuration variable is\r
4557         set when initializing a shared repository.\r
4558 </simpara>\r
4559 </listitem>\r
4560 </varlistentry>\r
4561 <varlistentry>\r
4562 <term>\r
4563 receive.updateserverinfo\r
4564 </term>\r
4565 <listitem>\r
4566 <simpara>\r
4567         If set to true, git-receive-pack will run git-update-server-info\r
4568         after receiving data from git-push and updating refs.\r
4569 </simpara>\r
4570 </listitem>\r
4571 </varlistentry>\r
4572 <varlistentry>\r
4573 <term>\r
4574 remote.&lt;name&gt;.url\r
4575 </term>\r
4576 <listitem>\r
4577 <simpara>\r
4578         The URL of a remote repository.  See <xref linkend="git-fetch(1)" /> or\r
4579         <xref linkend="git-push(1)" />.\r
4580 </simpara>\r
4581 </listitem>\r
4582 </varlistentry>\r
4583 <varlistentry>\r
4584 <term>\r
4585 remote.&lt;name&gt;.pushurl\r
4586 </term>\r
4587 <listitem>\r
4588 <simpara>\r
4589         The push URL of a remote repository.  See <xref linkend="git-push(1)" />.\r
4590 </simpara>\r
4591 </listitem>\r
4592 </varlistentry>\r
4593 <varlistentry>\r
4594 <term>\r
4595 remote.&lt;name&gt;.proxy\r
4596 </term>\r
4597 <listitem>\r
4598 <simpara>\r
4599         For remotes that require curl (http, https and ftp), the URL to\r
4600         the proxy to use for that remote.  Set to the empty string to\r
4601         disable proxying for that remote.\r
4602 </simpara>\r
4603 </listitem>\r
4604 </varlistentry>\r
4605 <varlistentry>\r
4606 <term>\r
4607 remote.&lt;name&gt;.fetch\r
4608 </term>\r
4609 <listitem>\r
4610 <simpara>\r
4611         The default set of "refspec" for <xref linkend="git-fetch(1)" />. See\r
4612         <xref linkend="git-fetch(1)" />.\r
4613 </simpara>\r
4614 </listitem>\r
4615 </varlistentry>\r
4616 <varlistentry>\r
4617 <term>\r
4618 remote.&lt;name&gt;.push\r
4619 </term>\r
4620 <listitem>\r
4621 <simpara>\r
4622         The default set of "refspec" for <xref linkend="git-push(1)" />. See\r
4623         <xref linkend="git-push(1)" />.\r
4624 </simpara>\r
4625 </listitem>\r
4626 </varlistentry>\r
4627 <varlistentry>\r
4628 <term>\r
4629 remote.&lt;name&gt;.mirror\r
4630 </term>\r
4631 <listitem>\r
4632 <simpara>\r
4633         If true, pushing to this remote will automatically behave\r
4634         as if the <emphasis>--mirror</emphasis> option was given on the command line.\r
4635 </simpara>\r
4636 </listitem>\r
4637 </varlistentry>\r
4638 <varlistentry>\r
4639 <term>\r
4640 remote.&lt;name&gt;.skipDefaultUpdate\r
4641 </term>\r
4642 <listitem>\r
4643 <simpara>\r
4644         If true, this remote will be skipped by default when updating\r
4645         using <xref linkend="git-fetch(1)" /> or the <emphasis>update</emphasis> subcommand of\r
4646         <xref linkend="git-remote(1)" />.\r
4647 </simpara>\r
4648 </listitem>\r
4649 </varlistentry>\r
4650 <varlistentry>\r
4651 <term>\r
4652 remote.&lt;name&gt;.skipFetchAll\r
4653 </term>\r
4654 <listitem>\r
4655 <simpara>\r
4656         If true, this remote will be skipped by default when updating\r
4657         using <xref linkend="git-fetch(1)" /> or the <emphasis>update</emphasis> subcommand of\r
4658         <xref linkend="git-remote(1)" />.\r
4659 </simpara>\r
4660 </listitem>\r
4661 </varlistentry>\r
4662 <varlistentry>\r
4663 <term>\r
4664 remote.&lt;name&gt;.receivepack\r
4665 </term>\r
4666 <listitem>\r
4667 <simpara>\r
4668         The default program to execute on the remote side when pushing.  See\r
4669         option --receive-pack of <xref linkend="git-push(1)" />.\r
4670 </simpara>\r
4671 </listitem>\r
4672 </varlistentry>\r
4673 <varlistentry>\r
4674 <term>\r
4675 remote.&lt;name&gt;.uploadpack\r
4676 </term>\r
4677 <listitem>\r
4678 <simpara>\r
4679         The default program to execute on the remote side when fetching.  See\r
4680         option --upload-pack of <xref linkend="git-fetch-pack(1)" />.\r
4681 </simpara>\r
4682 </listitem>\r
4683 </varlistentry>\r
4684 <varlistentry>\r
4685 <term>\r
4686 remote.&lt;name&gt;.tagopt\r
4687 </term>\r
4688 <listitem>\r
4689 <simpara>\r
4690         Setting this value to --no-tags disables automatic tag following when\r
4691         fetching from remote &lt;name&gt;. Setting it to --tags will fetch every\r
4692         tag from remote &lt;name&gt;, even if they are not reachable from remote\r
4693         branch heads. Passing these flags directly to <xref linkend="git-fetch(1)" /> can\r
4694         override this setting. See options --tags and --no-tags of\r
4695         <xref linkend="git-fetch(1)" />.\r
4696 </simpara>\r
4697 </listitem>\r
4698 </varlistentry>\r
4699 <varlistentry>\r
4700 <term>\r
4701 remote.&lt;name&gt;.vcs\r
4702 </term>\r
4703 <listitem>\r
4704 <simpara>\r
4705         Setting this to a value &lt;vcs&gt; will cause git to interact with\r
4706         the remote with the git-remote-&lt;vcs&gt; helper.\r
4707 </simpara>\r
4708 </listitem>\r
4709 </varlistentry>\r
4710 <varlistentry>\r
4711 <term>\r
4712 remotes.&lt;group&gt;\r
4713 </term>\r
4714 <listitem>\r
4715 <simpara>\r
4716         The list of remotes which are fetched by "git remote update\r
4717         &lt;group&gt;".  See <xref linkend="git-remote(1)" />.\r
4718 </simpara>\r
4719 </listitem>\r
4720 </varlistentry>\r
4721 <varlistentry>\r
4722 <term>\r
4723 repack.usedeltabaseoffset\r
4724 </term>\r
4725 <listitem>\r
4726 <simpara>\r
4727         By default, <xref linkend="git-repack(1)" /> creates packs that use\r
4728         delta-base offset. If you need to share your repository with\r
4729         git older than version 1.4.4, either directly or via a dumb\r
4730         protocol such as http, then you need to set this option to\r
4731         "false" and repack. Access from old git versions over the\r
4732         native protocol are unaffected by this option.\r
4733 </simpara>\r
4734 </listitem>\r
4735 </varlistentry>\r
4736 <varlistentry>\r
4737 <term>\r
4738 rerere.autoupdate\r
4739 </term>\r
4740 <listitem>\r
4741 <simpara>\r
4742         When set to true, <emphasis>git-rerere</emphasis> updates the index with the\r
4743         resulting contents after it cleanly resolves conflicts using\r
4744         previously recorded resolution.  Defaults to false.\r
4745 </simpara>\r
4746 </listitem>\r
4747 </varlistentry>\r
4748 <varlistentry>\r
4749 <term>\r
4750 rerere.enabled\r
4751 </term>\r
4752 <listitem>\r
4753 <simpara>\r
4754         Activate recording of resolved conflicts, so that identical\r
4755         conflict hunks can be resolved automatically, should they be\r
4756         encountered again.  By default, <xref linkend="git-rerere(1)" /> is\r
4757         enabled if there is an <emphasis>rr-cache</emphasis> directory under the\r
4758         <emphasis>$GIT_DIR</emphasis>, e.g. if "rerere" was previously used in the\r
4759         repository.\r
4760 </simpara>\r
4761 </listitem>\r
4762 </varlistentry>\r
4763 <varlistentry>\r
4764 <term>\r
4765 sendemail.identity\r
4766 </term>\r
4767 <listitem>\r
4768 <simpara>\r
4769         A configuration identity. When given, causes values in the\r
4770         <emphasis>sendemail.&lt;identity&gt;</emphasis> subsection to take precedence over\r
4771         values in the <emphasis>sendemail</emphasis> section. The default identity is\r
4772         the value of <emphasis>sendemail.identity</emphasis>.\r
4773 </simpara>\r
4774 </listitem>\r
4775 </varlistentry>\r
4776 <varlistentry>\r
4777 <term>\r
4778 sendemail.smtpencryption\r
4779 </term>\r
4780 <listitem>\r
4781 <simpara>\r
4782         See <xref linkend="git-send-email(1)" /> for description.  Note that this\r
4783         setting is not subject to the <emphasis>identity</emphasis> mechanism.\r
4784 </simpara>\r
4785 </listitem>\r
4786 </varlistentry>\r
4787 <varlistentry>\r
4788 <term>\r
4789 sendemail.smtpssl\r
4790 </term>\r
4791 <listitem>\r
4792 <simpara>\r
4793         Deprecated alias for <emphasis>sendemail.smtpencryption = ssl</emphasis>.\r
4794 </simpara>\r
4795 </listitem>\r
4796 </varlistentry>\r
4797 <varlistentry>\r
4798 <term>\r
4799 sendemail.&lt;identity&gt;.*\r
4800 </term>\r
4801 <listitem>\r
4802 <simpara>\r
4803         Identity-specific versions of the <emphasis>sendemail.*</emphasis> parameters\r
4804         found below, taking precedence over those when the this\r
4805         identity is selected, through command-line or\r
4806         <emphasis>sendemail.identity</emphasis>.\r
4807 </simpara>\r
4808 </listitem>\r
4809 </varlistentry>\r
4810 <varlistentry>\r
4811 <term>\r
4812 sendemail.aliasesfile\r
4813 </term>\r
4814 <term>\r
4815 sendemail.aliasfiletype\r
4816 </term>\r
4817 <term>\r
4818 sendemail.bcc\r
4819 </term>\r
4820 <term>\r
4821 sendemail.cc\r
4822 </term>\r
4823 <term>\r
4824 sendemail.cccmd\r
4825 </term>\r
4826 <term>\r
4827 sendemail.chainreplyto\r
4828 </term>\r
4829 <term>\r
4830 sendemail.confirm\r
4831 </term>\r
4832 <term>\r
4833 sendemail.envelopesender\r
4834 </term>\r
4835 <term>\r
4836 sendemail.from\r
4837 </term>\r
4838 <term>\r
4839 sendemail.multiedit\r
4840 </term>\r
4841 <term>\r
4842 sendemail.signedoffbycc\r
4843 </term>\r
4844 <term>\r
4845 sendemail.smtppass\r
4846 </term>\r
4847 <term>\r
4848 sendemail.suppresscc\r
4849 </term>\r
4850 <term>\r
4851 sendemail.suppressfrom\r
4852 </term>\r
4853 <term>\r
4854 sendemail.to\r
4855 </term>\r
4856 <term>\r
4857 sendemail.smtpdomain\r
4858 </term>\r
4859 <term>\r
4860 sendemail.smtpserver\r
4861 </term>\r
4862 <term>\r
4863 sendemail.smtpserverport\r
4864 </term>\r
4865 <term>\r
4866 sendemail.smtpserveroption\r
4867 </term>\r
4868 <term>\r
4869 sendemail.smtpuser\r
4870 </term>\r
4871 <term>\r
4872 sendemail.thread\r
4873 </term>\r
4874 <term>\r
4875 sendemail.validate\r
4876 </term>\r
4877 <listitem>\r
4878 <simpara>\r
4879         See <xref linkend="git-send-email(1)" /> for description.\r
4880 </simpara>\r
4881 </listitem>\r
4882 </varlistentry>\r
4883 <varlistentry>\r
4884 <term>\r
4885 sendemail.signedoffcc\r
4886 </term>\r
4887 <listitem>\r
4888 <simpara>\r
4889         Deprecated alias for <emphasis>sendemail.signedoffbycc</emphasis>.\r
4890 </simpara>\r
4891 </listitem>\r
4892 </varlistentry>\r
4893 <varlistentry>\r
4894 <term>\r
4895 showbranch.default\r
4896 </term>\r
4897 <listitem>\r
4898 <simpara>\r
4899         The default set of branches for <xref linkend="git-show-branch(1)" />.\r
4900         See <xref linkend="git-show-branch(1)" />.\r
4901 </simpara>\r
4902 </listitem>\r
4903 </varlistentry>\r
4904 <varlistentry>\r
4905 <term>\r
4906 status.relativePaths\r
4907 </term>\r
4908 <listitem>\r
4909 <simpara>\r
4910         By default, <xref linkend="git-status(1)" /> shows paths relative to the\r
4911         current directory. Setting this variable to <emphasis>false</emphasis> shows paths\r
4912         relative to the repository root (this was the default for git\r
4913         prior to v1.5.4).\r
4914 </simpara>\r
4915 </listitem>\r
4916 </varlistentry>\r
4917 <varlistentry>\r
4918 <term>\r
4919 status.showUntrackedFiles\r
4920 </term>\r
4921 <listitem>\r
4922 <simpara>\r
4923         By default, <xref linkend="git-status(1)" /> and <xref linkend="git-commit(1)" /> show\r
4924         files which are not currently tracked by Git. Directories which\r
4925         contain only untracked files, are shown with the directory name\r
4926         only. Showing untracked files means that Git needs to lstat() all\r
4927         all the files in the whole repository, which might be slow on some\r
4928         systems. So, this variable controls how the commands displays\r
4929         the untracked files. Possible values are:\r
4930 </simpara>\r
4931 <itemizedlist>\r
4932 <listitem>\r
4933 <simpara>\r
4934 <emphasis>no</emphasis> - Show no untracked files.\r
4935 </simpara>\r
4936 </listitem>\r
4937 <listitem>\r
4938 <simpara>\r
4939 <emphasis>normal</emphasis> - Show untracked files and directories.\r
4940 </simpara>\r
4941 </listitem>\r
4942 <listitem>\r
4943 <simpara>\r
4944 <emphasis>all</emphasis> - Show also individual files in untracked directories.\r
4945 </simpara>\r
4946 </listitem>\r
4947 </itemizedlist>\r
4948 <simpara>If this variable is not specified, it defaults to <emphasis>normal</emphasis>.\r
4949 This variable can be overridden with the -u|--untracked-files option\r
4950 of <xref linkend="git-status(1)" /> and <xref linkend="git-commit(1)" />.</simpara>\r
4951 </listitem>\r
4952 </varlistentry>\r
4953 <varlistentry>\r
4954 <term>\r
4955 status.submodulesummary\r
4956 </term>\r
4957 <listitem>\r
4958 <simpara>\r
4959         Defaults to false.\r
4960         If this is set to a non zero number or true (identical to -1 or an\r
4961         unlimited number), the submodule summary will be enabled and a\r
4962         summary of commits for modified submodules will be shown (see\r
4963         --summary-limit option of <xref linkend="git-submodule(1)" />).\r
4964 </simpara>\r
4965 </listitem>\r
4966 </varlistentry>\r
4967 <varlistentry>\r
4968 <term>\r
4969 submodule.&lt;name&gt;.path\r
4970 </term>\r
4971 <term>\r
4972 submodule.&lt;name&gt;.url\r
4973 </term>\r
4974 <term>\r
4975 submodule.&lt;name&gt;.update\r
4976 </term>\r
4977 <listitem>\r
4978 <simpara>\r
4979         The path within this project, URL, and the updating strategy\r
4980         for a submodule.  These variables are initially populated\r
4981         by <emphasis>git submodule init</emphasis>; edit them to override the\r
4982         URL and other values found in the <emphasis>.gitmodules</emphasis> file.  See\r
4983         <xref linkend="git-submodule(1)" /> and <xref linkend="gitmodules(5)" /> for details.\r
4984 </simpara>\r
4985 </listitem>\r
4986 </varlistentry>\r
4987 <varlistentry>\r
4988 <term>\r
4989 submodule.&lt;name&gt;.fetchRecurseSubmodules\r
4990 </term>\r
4991 <listitem>\r
4992 <simpara>\r
4993         This option can be used to control recursive fetching of this\r
4994         submodule. It can be overridden by using the --[no-]recurse-submodules\r
4995         command line option to "git fetch" and "git pull".\r
4996         This setting will override that from in the <xref linkend="gitmodules(5)" />\r
4997         file.\r
4998 </simpara>\r
4999 </listitem>\r
5000 </varlistentry>\r
5001 <varlistentry>\r
5002 <term>\r
5003 submodule.&lt;name&gt;.ignore\r
5004 </term>\r
5005 <listitem>\r
5006 <simpara>\r
5007         Defines under what circumstances "git status" and the diff family show\r
5008         a submodule as modified. When set to "all", it will never be considered\r
5009         modified, "dirty" will ignore all changes to the submodules work tree and\r
5010         takes only differences between the HEAD of the submodule and the commit\r
5011         recorded in the superproject into account. "untracked" will additionally\r
5012         let submodules with modified tracked files in their work tree show up.\r
5013         Using "none" (the default when this option is not set) also shows\r
5014         submodules that have untracked files in their work tree as changed.\r
5015         This setting overrides any setting made in .gitmodules for this submodule,\r
5016         both settings can be overridden on the command line by using the\r
5017         "--ignore-submodules" option.\r
5018 </simpara>\r
5019 </listitem>\r
5020 </varlistentry>\r
5021 <varlistentry>\r
5022 <term>\r
5023 tar.umask\r
5024 </term>\r
5025 <listitem>\r
5026 <simpara>\r
5027         This variable can be used to restrict the permission bits of\r
5028         tar archive entries.  The default is 0002, which turns off the\r
5029         world write bit.  The special value "user" indicates that the\r
5030         archiving user's umask will be used instead.  See umask(2) and\r
5031         <xref linkend="git-archive(1)" />.\r
5032 </simpara>\r
5033 </listitem>\r
5034 </varlistentry>\r
5035 <varlistentry>\r
5036 <term>\r
5037 transfer.fsckObjects\r
5038 </term>\r
5039 <listitem>\r
5040 <simpara>\r
5041         When <emphasis>fetch.fsckObjects</emphasis> or <emphasis>receive.fsckObjects</emphasis> are\r
5042         not set, the value of this variable is used instead.\r
5043         Defaults to false.\r
5044 </simpara>\r
5045 </listitem>\r
5046 </varlistentry>\r
5047 <varlistentry>\r
5048 <term>\r
5049 transfer.unpackLimit\r
5050 </term>\r
5051 <listitem>\r
5052 <simpara>\r
5053         When <emphasis>fetch.unpackLimit</emphasis> or <emphasis>receive.unpackLimit</emphasis> are\r
5054         not set, the value of this variable is used instead.\r
5055         The default value is 100.\r
5056 </simpara>\r
5057 </listitem>\r
5058 </varlistentry>\r
5059 <varlistentry>\r
5060 <term>\r
5061 url.&lt;base&gt;.insteadOf\r
5062 </term>\r
5063 <listitem>\r
5064 <simpara>\r
5065         Any URL that starts with this value will be rewritten to\r
5066         start, instead, with &lt;base&gt;. In cases where some site serves a\r
5067         large number of repositories, and serves them with multiple\r
5068         access methods, and some users need to use different access\r
5069         methods, this feature allows people to specify any of the\r
5070         equivalent URLs and have git automatically rewrite the URL to\r
5071         the best alternative for the particular user, even for a\r
5072         never-before-seen repository on the site.  When more than one\r
5073         insteadOf strings match a given URL, the longest match is used.\r
5074 </simpara>\r
5075 </listitem>\r
5076 </varlistentry>\r
5077 <varlistentry>\r
5078 <term>\r
5079 url.&lt;base&gt;.pushInsteadOf\r
5080 </term>\r
5081 <listitem>\r
5082 <simpara>\r
5083         Any URL that starts with this value will not be pushed to;\r
5084         instead, it will be rewritten to start with &lt;base&gt;, and the\r
5085         resulting URL will be pushed to. In cases where some site serves\r
5086         a large number of repositories, and serves them with multiple\r
5087         access methods, some of which do not allow push, this feature\r
5088         allows people to specify a pull-only URL and have git\r
5089         automatically use an appropriate URL to push, even for a\r
5090         never-before-seen repository on the site.  When more than one\r
5091         pushInsteadOf strings match a given URL, the longest match is\r
5092         used.  If a remote has an explicit pushurl, git will ignore this\r
5093         setting for that remote.\r
5094 </simpara>\r
5095 </listitem>\r
5096 </varlistentry>\r
5097 <varlistentry>\r
5098 <term>\r
5099 user.email\r
5100 </term>\r
5101 <listitem>\r
5102 <simpara>\r
5103         Your email address to be recorded in any newly created commits.\r
5104         Can be overridden by the <emphasis>GIT_AUTHOR_EMAIL</emphasis>, <emphasis>GIT_COMMITTER_EMAIL</emphasis>, and\r
5105         <emphasis>EMAIL</emphasis> environment variables.  See <xref linkend="git-commit-tree(1)" />.\r
5106 </simpara>\r
5107 </listitem>\r
5108 </varlistentry>\r
5109 <varlistentry>\r
5110 <term>\r
5111 user.name\r
5112 </term>\r
5113 <listitem>\r
5114 <simpara>\r
5115         Your full name to be recorded in any newly created commits.\r
5116         Can be overridden by the <emphasis>GIT_AUTHOR_NAME</emphasis> and <emphasis>GIT_COMMITTER_NAME</emphasis>\r
5117         environment variables.  See <xref linkend="git-commit-tree(1)" />.\r
5118 </simpara>\r
5119 </listitem>\r
5120 </varlistentry>\r
5121 <varlistentry>\r
5122 <term>\r
5123 user.signingkey\r
5124 </term>\r
5125 <listitem>\r
5126 <simpara>\r
5127         If <xref linkend="git-tag(1)" /> is not selecting the key you want it to\r
5128         automatically when creating a signed tag, you can override the\r
5129         default selection with this variable.  This option is passed\r
5130         unchanged to gpg's --local-user parameter, so you may specify a key\r
5131         using any method that gpg supports.\r
5132 </simpara>\r
5133 </listitem>\r
5134 </varlistentry>\r
5135 <varlistentry>\r
5136 <term>\r
5137 web.browser\r
5138 </term>\r
5139 <listitem>\r
5140 <simpara>\r
5141         Specify a web browser that may be used by some commands.\r
5142         Currently only <xref linkend="git-instaweb(1)" /> and <xref linkend="git-help(1)" />\r
5143         may use it.\r
5144 </simpara>\r
5145 </listitem>\r
5146 </varlistentry>\r
5147 </variablelist>\r
5148 </section>\r
5149 </simplesect>\r
5150 <simplesect id="git-config(1)__git">\r
5151 <title>GIT</title>\r
5152 <simpara>Part of the <xref linkend="git(1)" /> suite</simpara>\r
5153 </simplesect>\r
5154 </sect2>\r