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