Add Git official document to help
[TortoiseGit.git] / doc / source / en / TortoiseGit / git_doc / git-config.html.xml
blob5b62febd99f724c844d98a651f64b9265746ee63
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/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]</literallayout>\r
31 </blockquote>\r
32 </simplesect>\r
33 <simplesect id="_description">\r
34 <title>DESCRIPTION</title>\r
35 <simpara>You can query/set/replace/unset options with this command. The name is\r
36 actually the section and the key separated by a dot, and the value will be\r
37 escaped.</simpara>\r
38 <simpara>Multiple lines can be added to an option by using the <emphasis>--add</emphasis> option.\r
39 If you want to update or unset an option which can occur on multiple\r
40 lines, a POSIX regexp <literal>value_regex</literal> needs to be given.  Only the\r
41 existing values that match the regexp are updated or unset.  If\r
42 you want to handle the lines that do <emphasis role="strong">not</emphasis> match the regex, just\r
43 prepend a single exclamation mark in front (see also <xref linkend="EXAMPLES"/>).</simpara>\r
44 <simpara>The type specifier can be either <emphasis>--int</emphasis> or <emphasis>--bool</emphasis>, which will make\r
45 <emphasis>git-config</emphasis> ensure that the variable(s) are of the given type and\r
46 convert the value to the canonical form (simple decimal number for int,\r
47 a "true" or "false" string for bool).  If no type specifier is passed,\r
48 no checks or transformations are performed on the value.</simpara>\r
49 <simpara>The file-option can be one of <emphasis>--system</emphasis>, <emphasis>--global</emphasis> or <emphasis>--file</emphasis>\r
50 which specify where the values will be read from or written to.\r
51 The default is to assume the config file of the current repository,\r
52 .git/config unless defined otherwise with GIT_DIR and GIT_CONFIG\r
53 (see <xref linkend="FILES"/>).</simpara>\r
54 <simpara>This command will fail if:</simpara>\r
55 <orderedlist numeration="arabic">\r
56 <listitem>\r
57 <simpara>\r
58 The config file is invalid,\r
59 </simpara>\r
60 </listitem>\r
61 <listitem>\r
62 <simpara>\r
63 Can not write to the config file,\r
64 </simpara>\r
65 </listitem>\r
66 <listitem>\r
67 <simpara>\r
68 no section was provided,\r
69 </simpara>\r
70 </listitem>\r
71 <listitem>\r
72 <simpara>\r
73 the section or key is invalid,\r
74 </simpara>\r
75 </listitem>\r
76 <listitem>\r
77 <simpara>\r
78 you try to unset an option which does not exist,\r
79 </simpara>\r
80 </listitem>\r
81 <listitem>\r
82 <simpara>\r
83 you try to unset/set an option for which multiple lines match, or\r
84 </simpara>\r
85 </listitem>\r
86 <listitem>\r
87 <simpara>\r
88 you use <emphasis>--global</emphasis> option without $HOME being properly set.\r
89 </simpara>\r
90 </listitem>\r
91 </orderedlist>\r
92 </simplesect>\r
93 <simplesect id="_options">\r
94 <title>OPTIONS</title>\r
95 <variablelist>\r
96 <varlistentry>\r
97 <term>\r
98 --replace-all\r
99 </term>\r
100 <listitem>\r
101 <simpara>\r
102         Default behavior is to replace at most one line. This replaces\r
103         all lines matching the key (and optionally the value_regex).\r
104 </simpara>\r
105 </listitem>\r
106 </varlistentry>\r
107 <varlistentry>\r
108 <term>\r
109 --add\r
110 </term>\r
111 <listitem>\r
112 <simpara>\r
113         Adds a new line to the option without altering any existing\r
114         values.  This is the same as providing <emphasis>^$</emphasis> as the value_regex.\r
115 </simpara>\r
116 </listitem>\r
117 </varlistentry>\r
118 <varlistentry>\r
119 <term>\r
120 --get\r
121 </term>\r
122 <listitem>\r
123 <simpara>\r
124         Get the value for a given key (optionally filtered by a regex\r
125         matching the value). Returns error code 1 if the key was not\r
126         found and error code 2 if multiple key values were found.\r
127 </simpara>\r
128 </listitem>\r
129 </varlistentry>\r
130 <varlistentry>\r
131 <term>\r
132 --get-all\r
133 </term>\r
134 <listitem>\r
135 <simpara>\r
136         Like get, but does not fail if the number of values for the key\r
137         is not exactly one.\r
138 </simpara>\r
139 </listitem>\r
140 </varlistentry>\r
141 <varlistentry>\r
142 <term>\r
143 --get-regexp\r
144 </term>\r
145 <listitem>\r
146 <simpara>\r
147         Like --get-all, but interprets the name as a regular expression.\r
148         Also outputs the key names.\r
149 </simpara>\r
150 </listitem>\r
151 </varlistentry>\r
152 <varlistentry>\r
153 <term>\r
154 --global\r
155 </term>\r
156 <listitem>\r
157 <simpara>\r
158         For writing options: write to global ~/.gitconfig file rather than\r
159         the repository .git/config.\r
160 </simpara>\r
161 <simpara>For reading options: read only from global ~/.gitconfig rather than\r
162 from all available files.</simpara>\r
163 <simpara>See also <xref linkend="FILES"/>.</simpara>\r
164 </listitem>\r
165 </varlistentry>\r
166 <varlistentry>\r
167 <term>\r
168 --system\r
169 </term>\r
170 <listitem>\r
171 <simpara>\r
172         For writing options: write to system-wide $(prefix)/etc/gitconfig\r
173         rather than the repository .git/config.\r
174 </simpara>\r
175 <simpara>For reading options: read only from system-wide $(prefix)/etc/gitconfig\r
176 rather than from all available files.</simpara>\r
177 <simpara>See also <xref linkend="FILES"/>.</simpara>\r
178 </listitem>\r
179 </varlistentry>\r
180 <varlistentry>\r
181 <term>\r
182 -f config-file\r
183 </term>\r
184 <term>\r
185 --file config-file\r
186 </term>\r
187 <listitem>\r
188 <simpara>\r
189         Use the given config file instead of the one specified by GIT_CONFIG.\r
190 </simpara>\r
191 </listitem>\r
192 </varlistentry>\r
193 <varlistentry>\r
194 <term>\r
195 --remove-section\r
196 </term>\r
197 <listitem>\r
198 <simpara>\r
199         Remove the given section from the configuration file.\r
200 </simpara>\r
201 </listitem>\r
202 </varlistentry>\r
203 <varlistentry>\r
204 <term>\r
205 --rename-section\r
206 </term>\r
207 <listitem>\r
208 <simpara>\r
209         Rename the given section to a new name.\r
210 </simpara>\r
211 </listitem>\r
212 </varlistentry>\r
213 <varlistentry>\r
214 <term>\r
215 --unset\r
216 </term>\r
217 <listitem>\r
218 <simpara>\r
219         Remove the line matching the key from config file.\r
220 </simpara>\r
221 </listitem>\r
222 </varlistentry>\r
223 <varlistentry>\r
224 <term>\r
225 --unset-all\r
226 </term>\r
227 <listitem>\r
228 <simpara>\r
229         Remove all lines matching the key from config file.\r
230 </simpara>\r
231 </listitem>\r
232 </varlistentry>\r
233 <varlistentry>\r
234 <term>\r
235 -l\r
236 </term>\r
237 <term>\r
238 --list\r
239 </term>\r
240 <listitem>\r
241 <simpara>\r
242         List all variables set in config file.\r
243 </simpara>\r
244 </listitem>\r
245 </varlistentry>\r
246 <varlistentry>\r
247 <term>\r
248 --bool\r
249 </term>\r
250 <listitem>\r
251 <simpara>\r
252         <emphasis>git-config</emphasis> will ensure that the output is "true" or "false"\r
253 </simpara>\r
254 </listitem>\r
255 </varlistentry>\r
256 <varlistentry>\r
257 <term>\r
258 --int\r
259 </term>\r
260 <listitem>\r
261 <simpara>\r
262         <emphasis>git-config</emphasis> will ensure that the output is a simple\r
263         decimal number.  An optional value suffix of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis>\r
264         in the config file will cause the value to be multiplied\r
265         by 1024, 1048576, or 1073741824 prior to output.\r
266 </simpara>\r
267 </listitem>\r
268 </varlistentry>\r
269 <varlistentry>\r
270 <term>\r
271 -z\r
272 </term>\r
273 <term>\r
274 --null\r
275 </term>\r
276 <listitem>\r
277 <simpara>\r
278         For all options that output values and/or keys, always\r
279         end values with the null character (instead of a\r
280         newline). Use newline instead as a delimiter between\r
281         key and value. This allows for secure parsing of the\r
282         output without getting confused e.g. by values that\r
283         contain line breaks.\r
284 </simpara>\r
285 </listitem>\r
286 </varlistentry>\r
287 <varlistentry>\r
288 <term>\r
289 --get-colorbool name [stdout-is-tty]\r
290 </term>\r
291 <listitem>\r
292 <simpara>\r
293         Find the color setting for <literal>name</literal> (e.g. <literal>color.diff</literal>) and output\r
294         "true" or "false".  <literal>stdout-is-tty</literal> should be either "true" or\r
295         "false", and is taken into account when configuration says\r
296         "auto".  If <literal>stdout-is-tty</literal> is missing, then checks the standard\r
297         output of the command itself, and exits with status 0 if color\r
298         is to be used, or exits with status 1 otherwise.\r
299         When the color setting for <literal>name</literal> is undefined, the command uses\r
300         <literal>color.ui</literal> as fallback.\r
301 </simpara>\r
302 </listitem>\r
303 </varlistentry>\r
304 <varlistentry>\r
305 <term>\r
306 --get-color name default\r
307 </term>\r
308 <listitem>\r
309 <simpara>\r
310         Find the color configured for <literal>name</literal> (e.g. <literal>color.diff.new</literal>) and\r
311         output it as the ANSI color escape sequence to the standard\r
312         output.  The optional <literal>default</literal> parameter is used instead, if\r
313         there is no color configured for <literal>name</literal>.\r
314 </simpara>\r
315 </listitem>\r
316 </varlistentry>\r
317 </variablelist>\r
318 </simplesect>\r
319 <simplesect id="FILES">\r
320 <title>FILES</title>\r
321 <simpara>If not set explicitly with <emphasis>--file</emphasis>, there are three files where\r
322 <emphasis>git-config</emphasis> will search for configuration options:</simpara>\r
323 <variablelist>\r
324 <varlistentry>\r
325 <term>\r
326 $GIT_DIR/config\r
327 </term>\r
328 <listitem>\r
329 <simpara>\r
330         Repository specific configuration file. (The filename is\r
331         of course relative to the repository root, not the working\r
332         directory.)\r
333 </simpara>\r
334 </listitem>\r
335 </varlistentry>\r
336 <varlistentry>\r
337 <term>\r
338 ~/.gitconfig\r
339 </term>\r
340 <listitem>\r
341 <simpara>\r
342         User-specific configuration file. Also called "global"\r
343         configuration file.\r
344 </simpara>\r
345 </listitem>\r
346 </varlistentry>\r
347 <varlistentry>\r
348 <term>\r
349 $(prefix)/etc/gitconfig\r
350 </term>\r
351 <listitem>\r
352 <simpara>\r
353         System-wide configuration file.\r
354 </simpara>\r
355 </listitem>\r
356 </varlistentry>\r
357 </variablelist>\r
358 <simpara>If no further options are given, all reading options will read all of these\r
359 files that are available. If the global or the system-wide configuration\r
360 file are not available they will be ignored. If the repository configuration\r
361 file is not available or readable, <emphasis>git-config</emphasis> will exit with a non-zero\r
362 error code. However, in neither case will an error message be issued.</simpara>\r
363 <simpara>All writing options will per default write to the repository specific\r
364 configuration file. Note that this also affects options like <emphasis>--replace-all</emphasis>\r
365 and <emphasis>--unset</emphasis>. <emphasis role="strong"><emphasis>git-config</emphasis> will only ever change one file at a time</emphasis>.</simpara>\r
366 <simpara>You can override these rules either by command line options or by environment\r
367 variables. The <emphasis>--global</emphasis> and the <emphasis>--system</emphasis> options will limit the file used\r
368 to the global or system-wide file respectively. The GIT_CONFIG environment\r
369 variable has a similar effect, but you can specify any filename you want.</simpara>\r
370 </simplesect>\r
371 <simplesect id="_environment">\r
372 <title>ENVIRONMENT</title>\r
373 <variablelist>\r
374 <varlistentry>\r
375 <term>\r
376 GIT_CONFIG\r
377 </term>\r
378 <listitem>\r
379 <simpara>\r
380         Take the configuration from the given file instead of .git/config.\r
381         Using the "--global" option forces this to ~/.gitconfig. Using the\r
382         "--system" option forces this to $(prefix)/etc/gitconfig.\r
383 </simpara>\r
384 </listitem>\r
385 </varlistentry>\r
386 </variablelist>\r
387 <simpara>See also <xref linkend="FILES"/>.</simpara>\r
388 </simplesect>\r
389 <simplesect id="EXAMPLES">\r
390 <title>EXAMPLES</title>\r
391 <simpara>Given a .git/config like this:</simpara>\r
392 <literallayout class="monospaced">#\r
393 # This is the config file, and\r
394 # a '#' or ';' character indicates\r
395 # a comment\r
396 #</literallayout>\r
397 <literallayout class="monospaced">; core variables\r
398 [core]\r
399         ; Don't trust file modes\r
400         filemode = false</literallayout>\r
401 <literallayout class="monospaced">; Our diff algorithm\r
402 [diff]\r
403         external = /usr/local/bin/diff-wrapper\r
404         renames = true</literallayout>\r
405 <literallayout class="monospaced">; Proxy settings\r
406 [core]\r
407         gitproxy="proxy-command" for kernel.org\r
408         gitproxy=default-proxy ; for all the rest</literallayout>\r
409 <simpara>you can set the filemode to true with</simpara>\r
410 <literallayout>% git config core.filemode true</literallayout>\r
411 <simpara>The hypothetical proxy command entries actually have a postfix to discern\r
412 what URL they apply to. Here is how to change the entry for kernel.org\r
413 to "ssh".</simpara>\r
414 <literallayout>% git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</literallayout>\r
415 <simpara>This makes sure that only the key/value pair for kernel.org is replaced.</simpara>\r
416 <simpara>To delete the entry for renames, do</simpara>\r
417 <literallayout>% git config --unset diff.renames</literallayout>\r
418 <simpara>If you want to delete an entry for a multivar (like core.gitproxy above),\r
419 you have to provide a regex matching the value of exactly one line.</simpara>\r
420 <simpara>To query the value for a given key, do</simpara>\r
421 <literallayout>% git config --get core.filemode</literallayout>\r
422 <simpara>or</simpara>\r
423 <literallayout>% git config core.filemode</literallayout>\r
424 <simpara>or, to query a multivar:</simpara>\r
425 <literallayout>% git config --get core.gitproxy "for kernel.org$"</literallayout>\r
426 <simpara>If you want to know all the values for a multivar, do:</simpara>\r
427 <literallayout>% git config --get-all core.gitproxy</literallayout>\r
428 <simpara>If you like to live dangerously, you can replace <emphasis role="strong">all</emphasis> core.gitproxy by a\r
429 new one with</simpara>\r
430 <literallayout>% git config --replace-all core.gitproxy ssh</literallayout>\r
431 <simpara>However, if you really only want to replace the line for the default proxy,\r
432 i.e. the one without a "for &#8230;" postfix, do something like this:</simpara>\r
433 <literallayout>% git config core.gitproxy ssh '! for '</literallayout>\r
434 <simpara>To actually match only values with an exclamation mark, you have to</simpara>\r
435 <literallayout>% git config section.key value '[!]'</literallayout>\r
436 <simpara>To add a new proxy, without altering any of the existing ones, use</simpara>\r
437 <literallayout>% git config core.gitproxy '"proxy-command" for example.com'</literallayout>\r
438 <simpara>An example to use customized color from the configuration in your\r
439 script:</simpara>\r
440 <literallayout>#!/bin/sh\r
441 WS=$(git config --get-color color.diff.whitespace "blue reverse")\r
442 RESET=$(git config --get-color "" "reset")\r
443 echo "${WS}your whitespace color or blue reverse${RESET}"</literallayout>\r
444 </simplesect>\r
445 <simplesect id="_configuration_file">\r
446 <title>CONFIGURATION FILE</title>\r
447 <simpara>The git configuration file contains a number of variables that affect\r
448 the git command&#8217;s behavior. <literal>.git/config</literal> file for each repository\r
449 is used to store the information for that repository, and\r
450 <literal>$HOME/.gitconfig</literal> is used to store per user information to give\r
451 fallback values for <literal>.git/config</literal> file. The file <literal>/etc/gitconfig</literal>\r
452 can be used to store system-wide defaults.</simpara>\r
453 <simpara>They can be used by both the git plumbing\r
454 and the porcelains. The variables are divided into sections, where\r
455 in the fully qualified variable name the variable itself is the last\r
456 dot-separated segment and the section name is everything before the last\r
457 dot. The variable names are case-insensitive and only alphanumeric\r
458 characters are allowed. Some variables may appear multiple times.</simpara>\r
459 <simplesect id="_syntax">\r
460 <title>Syntax</title>\r
461 <simpara>The syntax is fairly flexible and permissive; whitespaces are mostly\r
462 ignored.  The <emphasis>#</emphasis> and <emphasis>;</emphasis> characters begin comments to the end of line,\r
463 blank lines are ignored.</simpara>\r
464 <simpara>The file consists of sections and variables.  A section begins with\r
465 the name of the section in square brackets and continues until the next\r
466 section begins.  Section names are not case sensitive.  Only alphanumeric\r
467 characters, <emphasis><literal>-</literal></emphasis> and <emphasis><literal>.</literal></emphasis> are allowed in section names.  Each variable\r
468 must belong to some section, which means that there must be section\r
469 header before first setting of a variable.</simpara>\r
470 <simpara>Sections can be further divided into subsections.  To begin a subsection\r
471 put its name in double quotes, separated by space from the section name,\r
472 in the section header, like in example below:</simpara>\r
473 <literallayout>        [section "subsection"]</literallayout>\r
474 <simpara>Subsection names can contain any characters except newline (doublequote\r
475 <emphasis><literal>"</literal></emphasis> and backslash have to be escaped as <emphasis><literal>\"</literal></emphasis> and <emphasis><literal>\\</literal></emphasis>,\r
476 respectively) and are case sensitive.  Section header cannot span multiple\r
477 lines.  Variables may belong directly to a section or to a given subsection.\r
478 You can have <literal>[section]</literal> if you have <literal>[section "subsection"]</literal>, but you\r
479 don&#8217;t need to.</simpara>\r
480 <simpara>There is also (case insensitive) alternative <literal>[section.subsection]</literal> syntax.\r
481 In this syntax subsection names follow the same restrictions as for section\r
482 name.</simpara>\r
483 <simpara>All the other lines are recognized as setting variables, in the form\r
484 <emphasis>name = value</emphasis>.  If there is no equal sign on the line, the entire line\r
485 is taken as <emphasis>name</emphasis> and the variable is recognized as boolean "true".\r
486 The variable names are case-insensitive and only alphanumeric\r
487 characters and <emphasis><literal>-</literal></emphasis> are allowed.  There can be more than one value\r
488 for a given variable; we say then that variable is multivalued.</simpara>\r
489 <simpara>Leading and trailing whitespace in a variable value is discarded.\r
490 Internal whitespace within a variable value is retained verbatim.</simpara>\r
491 <simpara>The values following the equals sign in variable assign are all either\r
492 a string, an integer, or a boolean.  Boolean values may be given as yes/no,\r
493 0/1 or true/false.  Case is not significant in boolean values, when\r
494 converting value to the canonical form using <emphasis>--bool</emphasis> type specifier;\r
495 <emphasis>git-config</emphasis> will ensure that the output is "true" or "false".</simpara>\r
496 <simpara>String values may be entirely or partially enclosed in double quotes.\r
497 You need to enclose variable value in double quotes if you want to\r
498 preserve leading or trailing whitespace, or if variable value contains\r
499 beginning of comment characters (if it contains <emphasis>#</emphasis> or <emphasis>;</emphasis>).\r
500 Double quote <emphasis><literal>"</literal></emphasis> and backslash <emphasis><literal>\</literal></emphasis> characters in variable value must\r
501 be escaped: use <emphasis><literal>\"</literal></emphasis> for <emphasis><literal>"</literal></emphasis> and <emphasis><literal>\\</literal></emphasis> for <emphasis><literal>\</literal></emphasis>.</simpara>\r
502 <simpara>The following escape sequences (beside <emphasis><literal>\"</literal></emphasis> and <emphasis><literal>\\</literal></emphasis>) are recognized:\r
503 <emphasis><literal>\n</literal></emphasis> for newline character (NL), <emphasis><literal>\t</literal></emphasis> for horizontal tabulation (HT, TAB)\r
504 and <emphasis><literal>\b</literal></emphasis> for backspace (BS).  No other char escape sequence, nor octal\r
505 char sequences are valid.</simpara>\r
506 <simpara>Variable value ending in a <emphasis><literal>\</literal></emphasis> is continued on the next line in the\r
507 customary UNIX fashion.</simpara>\r
508 <simpara>Some variables may require special value format.</simpara>\r
509 </simplesect>\r
510 <simplesect id="_example">\r
511 <title>Example</title>\r
512 <literallayout class="monospaced"># Core variables\r
513 [core]\r
514         ; Don't trust file modes\r
515         filemode = false</literallayout>\r
516 <literallayout class="monospaced"># Our diff algorithm\r
517 [diff]\r
518         external = /usr/local/bin/diff-wrapper\r
519         renames = true</literallayout>\r
520 <literallayout class="monospaced">[branch "devel"]\r
521         remote = origin\r
522         merge = refs/heads/devel</literallayout>\r
523 <literallayout class="monospaced"># Proxy settings\r
524 [core]\r
525         gitProxy="ssh" for "kernel.org"\r
526         gitProxy=default-proxy ; for the rest</literallayout>\r
527 </simplesect>\r
528 <simplesect id="_variables">\r
529 <title>Variables</title>\r
530 <simpara>Note that this list is non-comprehensive and not necessarily complete.\r
531 For command-specific variables, you will find a more detailed description\r
532 in the appropriate manual page. You will find a description of non-core\r
533 porcelain configuration variables in the respective porcelain documentation.</simpara>\r
534 <variablelist>\r
535 <varlistentry>\r
536 <term>\r
537 core.fileMode\r
538 </term>\r
539 <listitem>\r
540 <simpara>\r
541         If false, the executable bit differences between the index and\r
542         the working copy are ignored; useful on broken filesystems like FAT.\r
543         See <xref linkend="git-update-index(1)"/>. True by default.\r
544 </simpara>\r
545 </listitem>\r
546 </varlistentry>\r
547 <varlistentry>\r
548 <term>\r
549 core.ignoreCygwinFSTricks\r
550 </term>\r
551 <listitem>\r
552 <simpara>\r
553         This option is only used by Cygwin implementation of Git. If false,\r
554         the Cygwin stat() and lstat() functions are used. This may be useful\r
555         if your repository consists of a few separate directories joined in\r
556         one hierarchy using Cygwin mount. If true, Git uses native Win32 API\r
557         whenever it is possible and falls back to Cygwin functions only to\r
558         handle symbol links. The native mode is more than twice faster than\r
559         normal Cygwin l/stat() functions. True by default, unless core.filemode\r
560         is true, in which case ignoreCygwinFSTricks is ignored as Cygwin&#8217;s\r
561         POSIX emulation is required to support core.filemode.\r
562 </simpara>\r
563 </listitem>\r
564 </varlistentry>\r
565 <varlistentry>\r
566 <term>\r
567 core.trustctime\r
568 </term>\r
569 <listitem>\r
570 <simpara>\r
571         If false, the ctime differences between the index and the\r
572         working copy are ignored; useful when the inode change time\r
573         is regularly modified by something outside Git (file system\r
574         crawlers and some backup systems).\r
575         See <xref linkend="git-update-index(1)"/>. True by default.\r
576 </simpara>\r
577 </listitem>\r
578 </varlistentry>\r
579 <varlistentry>\r
580 <term>\r
581 core.quotepath\r
582 </term>\r
583 <listitem>\r
584 <simpara>\r
585         The commands that output paths (e.g. <emphasis>ls-files</emphasis>,\r
586         <emphasis>diff</emphasis>), when not given the <literal>-z</literal> option, will quote\r
587         "unusual" characters in the pathname by enclosing the\r
588         pathname in a double-quote pair and with backslashes the\r
589         same way strings in C source code are quoted.  If this\r
590         variable is set to false, the bytes higher than 0x80 are\r
591         not quoted but output as verbatim.  Note that double\r
592         quote, backslash and control characters are always\r
593         quoted without <literal>-z</literal> regardless of the setting of this\r
594         variable.\r
595 </simpara>\r
596 </listitem>\r
597 </varlistentry>\r
598 <varlistentry>\r
599 <term>\r
600 core.autocrlf\r
601 </term>\r
602 <listitem>\r
603 <simpara>\r
604         If true, makes git convert <literal>CRLF</literal> at the end of lines in text files to\r
605         <literal>LF</literal> when reading from the filesystem, and convert in reverse when\r
606         writing to the filesystem.  The variable can be set to\r
607         <emphasis>input</emphasis>, in which case the conversion happens only while\r
608         reading from the filesystem but files are written out with\r
609         <literal>LF</literal> at the end of lines.  Currently, which paths to consider\r
610         "text" (i.e. be subjected to the autocrlf mechanism) is\r
611         decided purely based on the contents.\r
612 </simpara>\r
613 </listitem>\r
614 </varlistentry>\r
615 <varlistentry>\r
616 <term>\r
617 core.safecrlf\r
618 </term>\r
619 <listitem>\r
620 <simpara>\r
621         If true, makes git check if converting <literal>CRLF</literal> as controlled by\r
622         <literal>core.autocrlf</literal> is reversible.  Git will verify if a command\r
623         modifies a file in the work tree either directly or indirectly.\r
624         For example, committing a file followed by checking out the\r
625         same file should yield the original file in the work tree.  If\r
626         this is not the case for the current setting of\r
627         <literal>core.autocrlf</literal>, git will reject the file.  The variable can\r
628         be set to "warn", in which case git will only warn about an\r
629         irreversible conversion but continue the operation.\r
630 </simpara>\r
631 <simpara>CRLF conversion bears a slight chance of corrupting data.\r
632 autocrlf=true will convert CRLF to LF during commit and LF to\r
633 CRLF during checkout.  A file that contains a mixture of LF and\r
634 CRLF before the commit cannot be recreated by git.  For text\r
635 files this is the right thing to do: it corrects line endings\r
636 such that we have only LF line endings in the repository.\r
637 But for binary files that are accidentally classified as text the\r
638 conversion can corrupt data.</simpara>\r
639 <simpara>If you recognize such corruption early you can easily fix it by\r
640 setting the conversion type explicitly in .gitattributes.  Right\r
641 after committing you still have the original file in your work\r
642 tree and this file is not yet corrupted.  You can explicitly tell\r
643 git that this file is binary and git will handle the file\r
644 appropriately.</simpara>\r
645 <simpara>Unfortunately, the desired effect of cleaning up text files with\r
646 mixed line endings and the undesired effect of corrupting binary\r
647 files cannot be distinguished.  In both cases CRLFs are removed\r
648 in an irreversible way.  For text files this is the right thing\r
649 to do because CRLFs are line endings, while for binary files\r
650 converting CRLFs corrupts data.</simpara>\r
651 <simpara>Note, this safety check does not mean that a checkout will generate a\r
652 file identical to the original file for a different setting of\r
653 <literal>core.autocrlf</literal>, but only for the current one.  For example, a text\r
654 file with <literal>LF</literal> would be accepted with <literal>core.autocrlf=input</literal> and could\r
655 later be checked out with <literal>core.autocrlf=true</literal>, in which case the\r
656 resulting file would contain <literal>CRLF</literal>, although the original file\r
657 contained <literal>LF</literal>.  However, in both work trees the line endings would be\r
658 consistent, that is either all <literal>LF</literal> or all <literal>CRLF</literal>, but never mixed.  A\r
659 file with mixed line endings would be reported by the <literal>core.safecrlf</literal>\r
660 mechanism.</simpara>\r
661 </listitem>\r
662 </varlistentry>\r
663 <varlistentry>\r
664 <term>\r
665 core.symlinks\r
666 </term>\r
667 <listitem>\r
668 <simpara>\r
669         If false, symbolic links are checked out as small plain files that\r
670         contain the link text. <xref linkend="git-update-index(1)"/> and\r
671         <xref linkend="git-add(1)"/> will not change the recorded type to regular\r
672         file. Useful on filesystems like FAT that do not support\r
673         symbolic links. True by default.\r
674 </simpara>\r
675 </listitem>\r
676 </varlistentry>\r
677 <varlistentry>\r
678 <term>\r
679 core.gitProxy\r
680 </term>\r
681 <listitem>\r
682 <simpara>\r
683         A "proxy command" to execute (as <emphasis>command host port</emphasis>) instead\r
684         of establishing direct connection to the remote server when\r
685         using the git protocol for fetching. If the variable value is\r
686         in the "COMMAND for DOMAIN" format, the command is applied only\r
687         on hostnames ending with the specified domain string. This variable\r
688         may be set multiple times and is matched in the given order;\r
689         the first match wins.\r
690 </simpara>\r
691 <simpara>Can be overridden by the <emphasis>GIT_PROXY_COMMAND</emphasis> environment variable\r
692 (which always applies universally, without the special "for"\r
693 handling).</simpara>\r
694 </listitem>\r
695 </varlistentry>\r
696 <varlistentry>\r
697 <term>\r
698 core.ignoreStat\r
699 </term>\r
700 <listitem>\r
701 <simpara>\r
702         If true, commands which modify both the working tree and the index\r
703         will mark the updated paths with the "assume unchanged" bit in the\r
704         index. These marked files are then assumed to stay unchanged in the\r
705         working copy, until you mark them otherwise manually - Git will not\r
706         detect the file changes by lstat() calls. This is useful on systems\r
707         where those are very slow, such as Microsoft Windows.\r
708         See <xref linkend="git-update-index(1)"/>.\r
709         False by default.\r
710 </simpara>\r
711 </listitem>\r
712 </varlistentry>\r
713 <varlistentry>\r
714 <term>\r
715 core.preferSymlinkRefs\r
716 </term>\r
717 <listitem>\r
718 <simpara>\r
719         Instead of the default "symref" format for HEAD\r
720         and other symbolic reference files, use symbolic links.\r
721         This is sometimes needed to work with old scripts that\r
722         expect HEAD to be a symbolic link.\r
723 </simpara>\r
724 </listitem>\r
725 </varlistentry>\r
726 <varlistentry>\r
727 <term>\r
728 core.bare\r
729 </term>\r
730 <listitem>\r
731 <simpara>\r
732         If true this repository is assumed to be <emphasis>bare</emphasis> and has no\r
733         working directory associated with it.  If this is the case a\r
734         number of commands that require a working directory will be\r
735         disabled, such as <xref linkend="git-add(1)"/> or <xref linkend="git-merge(1)"/>.\r
736 </simpara>\r
737 <simpara>This setting is automatically guessed by <xref linkend="git-clone(1)"/> or\r
738 <xref linkend="git-init(1)"/> when the repository was created.  By default a\r
739 repository that ends in "/.git" is assumed to be not bare (bare =\r
740 false), while all other repositories are assumed to be bare (bare\r
741 = true).</simpara>\r
742 </listitem>\r
743 </varlistentry>\r
744 <varlistentry>\r
745 <term>\r
746 core.worktree\r
747 </term>\r
748 <listitem>\r
749 <simpara>\r
750         Set the path to the working tree.  The value will not be\r
751         used in combination with repositories found automatically in\r
752         a .git directory (i.e. $GIT_DIR is not set).\r
753         This can be overridden by the GIT_WORK_TREE environment\r
754         variable and the <emphasis>--work-tree</emphasis> command line option. It can be\r
755         a absolute path or relative path to the directory specified by\r
756         --git-dir or GIT_DIR.\r
757         Note: If --git-dir or GIT_DIR are specified but none of\r
758         --work-tree, GIT_WORK_TREE and core.worktree is specified,\r
759         the current working directory is regarded as the top directory\r
760         of your working tree.\r
761 </simpara>\r
762 </listitem>\r
763 </varlistentry>\r
764 <varlistentry>\r
765 <term>\r
766 core.logAllRefUpdates\r
767 </term>\r
768 <listitem>\r
769 <simpara>\r
770         Enable the reflog. Updates to a ref &lt;ref&gt; is logged to the file\r
771         "$GIT_DIR/logs/&lt;ref&gt;", by appending the new and old\r
772         SHA1, the date/time and the reason of the update, but\r
773         only when the file exists.  If this configuration\r
774         variable is set to true, missing "$GIT_DIR/logs/&lt;ref&gt;"\r
775         file is automatically created for branch heads.\r
776 </simpara>\r
777 <simpara>This information can be used to determine what commit\r
778 was the tip of a branch "2 days ago".</simpara>\r
779 <simpara>This value is true by default in a repository that has\r
780 a working directory associated with it, and false by\r
781 default in a bare repository.</simpara>\r
782 </listitem>\r
783 </varlistentry>\r
784 <varlistentry>\r
785 <term>\r
786 core.repositoryFormatVersion\r
787 </term>\r
788 <listitem>\r
789 <simpara>\r
790         Internal variable identifying the repository format and layout\r
791         version.\r
792 </simpara>\r
793 </listitem>\r
794 </varlistentry>\r
795 <varlistentry>\r
796 <term>\r
797 core.sharedRepository\r
798 </term>\r
799 <listitem>\r
800 <simpara>\r
801         When <emphasis>group</emphasis> (or <emphasis>true</emphasis>), the repository is made shareable between\r
802         several users in a group (making sure all the files and objects are\r
803         group-writable). When <emphasis>all</emphasis> (or <emphasis>world</emphasis> or <emphasis>everybody</emphasis>), the\r
804         repository will be readable by all users, additionally to being\r
805         group-shareable. When <emphasis>umask</emphasis> (or <emphasis>false</emphasis>), git will use permissions\r
806         reported by umask(2). When <emphasis>0xxx</emphasis>, where <emphasis>0xxx</emphasis> is an octal number,\r
807         files in the repository will have this mode value. <emphasis>0xxx</emphasis> will override\r
808         user&#8217;s umask value, and thus, users with a safe umask (0077) can use\r
809         this option. Examples: <emphasis>0660</emphasis> is equivalent to <emphasis>group</emphasis>. <emphasis>0640</emphasis> is a\r
810         repository that is group-readable but not group-writable.\r
811         See <xref linkend="git-init(1)"/>. False by default.\r
812 </simpara>\r
813 </listitem>\r
814 </varlistentry>\r
815 <varlistentry>\r
816 <term>\r
817 core.warnAmbiguousRefs\r
818 </term>\r
819 <listitem>\r
820 <simpara>\r
821         If true, git will warn you if the ref name you passed it is ambiguous\r
822         and might match multiple refs in the .git/refs/ tree. True by default.\r
823 </simpara>\r
824 </listitem>\r
825 </varlistentry>\r
826 <varlistentry>\r
827 <term>\r
828 core.compression\r
829 </term>\r
830 <listitem>\r
831 <simpara>\r
832         An integer -1..9, indicating a default compression level.\r
833         -1 is the zlib default. 0 means no compression,\r
834         and 1..9 are various speed/size tradeoffs, 9 being slowest.\r
835         If set, this provides a default to other compression variables,\r
836         such as <emphasis>core.loosecompression</emphasis> and <emphasis>pack.compression</emphasis>.\r
837 </simpara>\r
838 </listitem>\r
839 </varlistentry>\r
840 <varlistentry>\r
841 <term>\r
842 core.loosecompression\r
843 </term>\r
844 <listitem>\r
845 <simpara>\r
846         An integer -1..9, indicating the compression level for objects that\r
847         are not in a pack file. -1 is the zlib default. 0 means no\r
848         compression, and 1..9 are various speed/size tradeoffs, 9 being\r
849         slowest.  If not set,  defaults to core.compression.  If that is\r
850         not set,  defaults to 1 (best speed).\r
851 </simpara>\r
852 </listitem>\r
853 </varlistentry>\r
854 <varlistentry>\r
855 <term>\r
856 core.packedGitWindowSize\r
857 </term>\r
858 <listitem>\r
859 <simpara>\r
860         Number of bytes of a pack file to map into memory in a\r
861         single mapping operation.  Larger window sizes may allow\r
862         your system to process a smaller number of large pack files\r
863         more quickly.  Smaller window sizes will negatively affect\r
864         performance due to increased calls to the operating system&#8217;s\r
865         memory manager, but may improve performance when accessing\r
866         a large number of large pack files.\r
867 </simpara>\r
868 <simpara>Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32\r
869 MiB on 32 bit platforms and 1 GiB on 64 bit platforms.  This should\r
870 be reasonable for all users/operating systems.  You probably do\r
871 not need to adjust this value.</simpara>\r
872 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>\r
873 </listitem>\r
874 </varlistentry>\r
875 <varlistentry>\r
876 <term>\r
877 core.packedGitLimit\r
878 </term>\r
879 <listitem>\r
880 <simpara>\r
881         Maximum number of bytes to map simultaneously into memory\r
882         from pack files.  If Git needs to access more than this many\r
883         bytes at once to complete an operation it will unmap existing\r
884         regions to reclaim virtual address space within the process.\r
885 </simpara>\r
886 <simpara>Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.\r
887 This should be reasonable for all users/operating systems, except on\r
888 the largest projects.  You probably do not need to adjust this value.</simpara>\r
889 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>\r
890 </listitem>\r
891 </varlistentry>\r
892 <varlistentry>\r
893 <term>\r
894 core.deltaBaseCacheLimit\r
895 </term>\r
896 <listitem>\r
897 <simpara>\r
898         Maximum number of bytes to reserve for caching base objects\r
899         that multiple deltafied objects reference.  By storing the\r
900         entire decompressed base objects in a cache Git is able\r
901         to avoid unpacking and decompressing frequently used base\r
902         objects multiple times.\r
903 </simpara>\r
904 <simpara>Default is 16 MiB on all platforms.  This should be reasonable\r
905 for all users/operating systems, except on the largest projects.\r
906 You probably do not need to adjust this value.</simpara>\r
907 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>\r
908 </listitem>\r
909 </varlistentry>\r
910 <varlistentry>\r
911 <term>\r
912 core.excludesfile\r
913 </term>\r
914 <listitem>\r
915 <simpara>\r
916         In addition to <emphasis>.gitignore</emphasis> (per-directory) and\r
917         <emphasis>.git/info/exclude</emphasis>, git looks into this file for patterns\r
918         of files which are not meant to be tracked.  See\r
919         <xref linkend="gitignore(5)"/>.\r
920 </simpara>\r
921 </listitem>\r
922 </varlistentry>\r
923 <varlistentry>\r
924 <term>\r
925 core.editor\r
926 </term>\r
927 <listitem>\r
928 <simpara>\r
929         Commands such as <literal>commit</literal> and <literal>tag</literal> that lets you edit\r
930         messages by launching an editor uses the value of this\r
931         variable when it is set, and the environment variable\r
932         <literal>GIT_EDITOR</literal> is not set.  The order of preference is\r
933         <literal>GIT_EDITOR</literal> environment, <literal>core.editor</literal>, <literal>VISUAL</literal> and\r
934         <literal>EDITOR</literal> environment variables and then finally <literal>vi</literal>.\r
935 </simpara>\r
936 </listitem>\r
937 </varlistentry>\r
938 <varlistentry>\r
939 <term>\r
940 core.pager\r
941 </term>\r
942 <listitem>\r
943 <simpara>\r
944         The command that git will use to paginate output.  Can\r
945         be overridden with the <literal>GIT_PAGER</literal> environment\r
946         variable.  Note that git sets the <literal>LESS</literal> environment\r
947         variable to <literal>FRSX</literal> if it is unset when it runs the\r
948         pager.  One can change these settings by setting the\r
949         <literal>LESS</literal> variable to some other value.  Alternately,\r
950         these settings can be overridden on a project or\r
951         global basis by setting the <literal>core.pager</literal> option.\r
952         Setting <literal>core.pager</literal> has no affect on the <literal>LESS</literal>\r
953         environment variable behaviour above, so if you want\r
954         to override git&#8217;s default settings this way, you need\r
955         to be explicit.  For example, to disable the S option\r
956         in a backward compatible manner, set <literal>core.pager</literal>\r
957         to "<literal>less -+$LESS -FRX</literal>".  This will be passed to the\r
958         shell by git, which will translate the final command to\r
959         "<literal>LESS=FRSX less -+FRSX -FRX</literal>".\r
960 </simpara>\r
961 </listitem>\r
962 </varlistentry>\r
963 <varlistentry>\r
964 <term>\r
965 core.whitespace\r
966 </term>\r
967 <listitem>\r
968 <simpara>\r
969         A comma separated list of common whitespace problems to\r
970         notice.  <emphasis>git-diff</emphasis> will use <literal>color.diff.whitespace</literal> to\r
971         highlight them, and <emphasis>git-apply --whitespace=error</emphasis> will\r
972         consider them as errors.  You can prefix <literal>-</literal> to disable\r
973         any of them (e.g. <literal>-trailing-space</literal>):\r
974 </simpara>\r
975 <itemizedlist>\r
976 <listitem>\r
977 <simpara>\r
978 <literal>trailing-space</literal> treats trailing whitespaces at the end of the line\r
979   as an error (enabled by default).\r
980 </simpara>\r
981 </listitem>\r
982 <listitem>\r
983 <simpara>\r
984 <literal>space-before-tab</literal> treats a space character that appears immediately\r
985   before a tab character in the initial indent part of the line as an\r
986   error (enabled by default).\r
987 </simpara>\r
988 </listitem>\r
989 <listitem>\r
990 <simpara>\r
991 <literal>indent-with-non-tab</literal> treats a line that is indented with 8 or more\r
992   space characters as an error (not enabled by default).\r
993 </simpara>\r
994 </listitem>\r
995 <listitem>\r
996 <simpara>\r
997 <literal>cr-at-eol</literal> treats a carriage-return at the end of line as\r
998   part of the line terminator, i.e. with it, <literal>trailing-space</literal>\r
999   does not trigger if the character before such a carriage-return\r
1000   is not a whitespace (not enabled by default).\r
1001 </simpara>\r
1002 </listitem>\r
1003 </itemizedlist>\r
1004 </listitem>\r
1005 </varlistentry>\r
1006 <varlistentry>\r
1007 <term>\r
1008 core.fsyncobjectfiles\r
1009 </term>\r
1010 <listitem>\r
1011 <simpara>\r
1012         This boolean will enable <emphasis>fsync()</emphasis> when writing object files.\r
1013 </simpara>\r
1014 <simpara>This is a total waste of time and effort on a filesystem that orders\r
1015 data writes properly, but can be useful for filesystems that do not use\r
1016 journalling (traditional UNIX filesystems) or that only journal metadata\r
1017 and not file contents (OS X&#8217;s HFS+, or Linux ext3 with "data=writeback").</simpara>\r
1018 </listitem>\r
1019 </varlistentry>\r
1020 <varlistentry>\r
1021 <term>\r
1022 core.preloadindex\r
1023 </term>\r
1024 <listitem>\r
1025 <simpara>\r
1026         Enable parallel index preload for operations like <emphasis>git diff</emphasis>\r
1027 </simpara>\r
1028 <simpara>This can speed up operations like <emphasis>git diff</emphasis> and <emphasis>git status</emphasis> especially\r
1029 on filesystems like NFS that have weak caching semantics and thus\r
1030 relatively high IO latencies.  With this set to <emphasis>true</emphasis>, git will do the\r
1031 index comparison to the filesystem data in parallel, allowing\r
1032 overlapping IO&#8217;s.</simpara>\r
1033 </listitem>\r
1034 </varlistentry>\r
1035 <varlistentry>\r
1036 <term>\r
1037 core.notesRef\r
1038 </term>\r
1039 <listitem>\r
1040 <simpara>\r
1041         When showing commit messages, also show notes which are stored in\r
1042         the given ref.  This ref is expected to contain files named\r
1043         after the full SHA-1 of the commit they annotate.\r
1044 </simpara>\r
1045 <simpara>If such a file exists in the given ref, the referenced blob is read, and\r
1046 appended to the commit message, separated by a "Notes:" line.  If the\r
1047 given ref itself does not exist, it is not an error, but means that no\r
1048 notes should be printed.</simpara>\r
1049 <simpara>This setting defaults to "refs/notes/commits", and can be overridden by\r
1050 the <literal>GIT_NOTES_REF</literal> environment variable.</simpara>\r
1051 </listitem>\r
1052 </varlistentry>\r
1053 <varlistentry>\r
1054 <term>\r
1055 alias.*\r
1056 </term>\r
1057 <listitem>\r
1058 <simpara>\r
1059         Command aliases for the <xref linkend="git(1)"/> command wrapper - e.g.\r
1060         after defining "alias.last = cat-file commit HEAD", the invocation\r
1061         "git last" is equivalent to "git cat-file commit HEAD". To avoid\r
1062         confusion and troubles with script usage, aliases that\r
1063         hide existing git commands are ignored. Arguments are split by\r
1064         spaces, the usual shell quoting and escaping is supported.\r
1065         quote pair and a backslash can be used to quote them.\r
1066 </simpara>\r
1067 <simpara>If the alias expansion is prefixed with an exclamation point,\r
1068 it will be treated as a shell command.  For example, defining\r
1069 "alias.new = !gitk --all --not ORIG_HEAD", the invocation\r
1070 "git new" is equivalent to running the shell command\r
1071 "gitk --all --not ORIG_HEAD".</simpara>\r
1072 </listitem>\r
1073 </varlistentry>\r
1074 <varlistentry>\r
1075 <term>\r
1076 apply.whitespace\r
1077 </term>\r
1078 <listitem>\r
1079 <simpara>\r
1080         Tells <emphasis>git-apply</emphasis> how to handle whitespaces, in the same way\r
1081         as the <emphasis>--whitespace</emphasis> option. See <xref linkend="git-apply(1)"/>.\r
1082 </simpara>\r
1083 </listitem>\r
1084 </varlistentry>\r
1085 <varlistentry>\r
1086 <term>\r
1087 branch.autosetupmerge\r
1088 </term>\r
1089 <listitem>\r
1090 <simpara>\r
1091         Tells <emphasis>git-branch</emphasis> and <emphasis>git-checkout</emphasis> to setup new branches\r
1092         so that <xref linkend="git-pull(1)"/> will appropriately merge from the\r
1093         starting point branch. Note that even if this option is not set,\r
1094         this behavior can be chosen per-branch using the <literal>--track</literal>\r
1095         and <literal>--no-track</literal> options. The valid settings are: <literal>false</literal>&#8201;&#8212;&#8201;no\r
1096         automatic setup is done; <literal>true</literal>&#8201;&#8212;&#8201;automatic setup is done when the\r
1097         starting point is a remote branch; <literal>always</literal>&#8201;&#8212;&#8201;automatic setup is\r
1098         done when the starting point is either a local branch or remote\r
1099         branch. This option defaults to true.\r
1100 </simpara>\r
1101 </listitem>\r
1102 </varlistentry>\r
1103 <varlistentry>\r
1104 <term>\r
1105 branch.autosetuprebase\r
1106 </term>\r
1107 <listitem>\r
1108 <simpara>\r
1109         When a new branch is created with <emphasis>git-branch</emphasis> or <emphasis>git-checkout</emphasis>\r
1110         that tracks another branch, this variable tells git to set\r
1111         up pull to rebase instead of merge (see "branch.&lt;name&gt;.rebase").\r
1112         When <literal>never</literal>, rebase is never automatically set to true.\r
1113         When <literal>local</literal>, rebase is set to true for tracked branches of\r
1114         other local branches.\r
1115         When <literal>remote</literal>, rebase is set to true for tracked branches of\r
1116         remote branches.\r
1117         When <literal>always</literal>, rebase will be set to true for all tracking\r
1118         branches.\r
1119         See "branch.autosetupmerge" for details on how to set up a\r
1120         branch to track another branch.\r
1121         This option defaults to never.\r
1122 </simpara>\r
1123 </listitem>\r
1124 </varlistentry>\r
1125 <varlistentry>\r
1126 <term>\r
1127 branch.&lt;name&gt;.remote\r
1128 </term>\r
1129 <listitem>\r
1130 <simpara>\r
1131         When in branch &lt;name&gt;, it tells <emphasis>git-fetch</emphasis> which remote to fetch.\r
1132         If this option is not given, <emphasis>git-fetch</emphasis> defaults to remote "origin".\r
1133 </simpara>\r
1134 </listitem>\r
1135 </varlistentry>\r
1136 <varlistentry>\r
1137 <term>\r
1138 branch.&lt;name&gt;.merge\r
1139 </term>\r
1140 <listitem>\r
1141 <simpara>\r
1142         When in branch &lt;name&gt;, it tells <emphasis>git-fetch</emphasis> the default\r
1143         refspec to be marked for merging in FETCH_HEAD. The value is\r
1144         handled like the remote part of a refspec, and must match a\r
1145         ref which is fetched from the remote given by\r
1146         "branch.&lt;name&gt;.remote".\r
1147         The merge information is used by <emphasis>git-pull</emphasis> (which at first calls\r
1148         <emphasis>git-fetch</emphasis>) to lookup the default branch for merging. Without\r
1149         this option, <emphasis>git-pull</emphasis> defaults to merge the first refspec fetched.\r
1150         Specify multiple values to get an octopus merge.\r
1151         If you wish to setup <emphasis>git-pull</emphasis> so that it merges into &lt;name&gt; from\r
1152         another branch in the local repository, you can point\r
1153         branch.&lt;name&gt;.merge to the desired branch, and use the special setting\r
1154         <literal>.</literal> (a period) for branch.&lt;name&gt;.remote.\r
1155 </simpara>\r
1156 </listitem>\r
1157 </varlistentry>\r
1158 <varlistentry>\r
1159 <term>\r
1160 branch.&lt;name&gt;.mergeoptions\r
1161 </term>\r
1162 <listitem>\r
1163 <simpara>\r
1164         Sets default options for merging into branch &lt;name&gt;. The syntax and\r
1165         supported options are equal to that of <xref linkend="git-merge(1)"/>, but\r
1166         option values containing whitespace characters are currently not\r
1167         supported.\r
1168 </simpara>\r
1169 </listitem>\r
1170 </varlistentry>\r
1171 <varlistentry>\r
1172 <term>\r
1173 branch.&lt;name&gt;.rebase\r
1174 </term>\r
1175 <listitem>\r
1176 <simpara>\r
1177         When true, rebase the branch &lt;name&gt; on top of the fetched branch,\r
1178         instead of merging the default branch from the default remote when\r
1179         "git pull" is run.\r
1180         <emphasis role="strong">NOTE</emphasis>: this is a possibly dangerous operation; do <emphasis role="strong">not</emphasis> use\r
1181         it unless you understand the implications (see <xref linkend="git-rebase(1)"/>\r
1182         for details).\r
1183 </simpara>\r
1184 </listitem>\r
1185 </varlistentry>\r
1186 <varlistentry>\r
1187 <term>\r
1188 browser.&lt;tool&gt;.cmd\r
1189 </term>\r
1190 <listitem>\r
1191 <simpara>\r
1192         Specify the command to invoke the specified browser. The\r
1193         specified command is evaluated in shell with the URLs passed\r
1194         as arguments. (See <xref linkend="git-web&#8212;browse(1)"/>.)\r
1195 </simpara>\r
1196 </listitem>\r
1197 </varlistentry>\r
1198 <varlistentry>\r
1199 <term>\r
1200 browser.&lt;tool&gt;.path\r
1201 </term>\r
1202 <listitem>\r
1203 <simpara>\r
1204         Override the path for the given tool that may be used to\r
1205         browse HTML help (see <emphasis>-w</emphasis> option in <xref linkend="git-help(1)"/>) or a\r
1206         working repository in gitweb (see <xref linkend="git-instaweb(1)"/>).\r
1207 </simpara>\r
1208 </listitem>\r
1209 </varlistentry>\r
1210 <varlistentry>\r
1211 <term>\r
1212 clean.requireForce\r
1213 </term>\r
1214 <listitem>\r
1215 <simpara>\r
1216         A boolean to make git-clean do nothing unless given -f\r
1217         or -n.   Defaults to true.\r
1218 </simpara>\r
1219 </listitem>\r
1220 </varlistentry>\r
1221 <varlistentry>\r
1222 <term>\r
1223 color.branch\r
1224 </term>\r
1225 <listitem>\r
1226 <simpara>\r
1227         A boolean to enable/disable color in the output of\r
1228         <xref linkend="git-branch(1)"/>. May be set to <literal>always</literal>,\r
1229         <literal>false</literal> (or <literal>never</literal>) or <literal>auto</literal> (or <literal>true</literal>), in which case colors are used\r
1230         only when the output is to a terminal. Defaults to false.\r
1231 </simpara>\r
1232 </listitem>\r
1233 </varlistentry>\r
1234 <varlistentry>\r
1235 <term>\r
1236 color.branch.&lt;slot&gt;\r
1237 </term>\r
1238 <listitem>\r
1239 <simpara>\r
1240         Use customized color for branch coloration. <literal>&lt;slot&gt;</literal> is one of\r
1241         <literal>current</literal> (the current branch), <literal>local</literal> (a local branch),\r
1242         <literal>remote</literal> (a tracking branch in refs/remotes/), <literal>plain</literal> (other\r
1243         refs).\r
1244 </simpara>\r
1245 <simpara>The value for these configuration variables is a list of colors (at most\r
1246 two) and attributes (at most one), separated by spaces.  The colors\r
1247 accepted are <literal>normal</literal>, <literal>black</literal>, <literal>red</literal>, <literal>green</literal>, <literal>yellow</literal>, <literal>blue</literal>,\r
1248 <literal>magenta</literal>, <literal>cyan</literal> and <literal>white</literal>; the attributes are <literal>bold</literal>, <literal>dim</literal>, <literal>ul</literal>,\r
1249 <literal>blink</literal> and <literal>reverse</literal>.  The first color given is the foreground; the\r
1250 second is the background.  The position of the attribute, if any,\r
1251 doesn&#8217;t matter.</simpara>\r
1252 </listitem>\r
1253 </varlistentry>\r
1254 <varlistentry>\r
1255 <term>\r
1256 color.diff\r
1257 </term>\r
1258 <listitem>\r
1259 <simpara>\r
1260         When set to <literal>always</literal>, always use colors in patch.\r
1261         When false (or <literal>never</literal>), never.  When set to <literal>true</literal> or <literal>auto</literal>, use\r
1262         colors only when the output is to the terminal. Defaults to false.\r
1263 </simpara>\r
1264 </listitem>\r
1265 </varlistentry>\r
1266 <varlistentry>\r
1267 <term>\r
1268 color.diff.&lt;slot&gt;\r
1269 </term>\r
1270 <listitem>\r
1271 <simpara>\r
1272         Use customized color for diff colorization.  <literal>&lt;slot&gt;</literal> specifies\r
1273         which part of the patch to use the specified color, and is one\r
1274         of <literal>plain</literal> (context text), <literal>meta</literal> (metainformation), <literal>frag</literal>\r
1275         (hunk header), <literal>old</literal> (removed lines), <literal>new</literal> (added lines),\r
1276         <literal>commit</literal> (commit headers), or <literal>whitespace</literal> (highlighting\r
1277         whitespace errors). The values of these variables may be specified as\r
1278         in color.branch.&lt;slot&gt;.\r
1279 </simpara>\r
1280 </listitem>\r
1281 </varlistentry>\r
1282 <varlistentry>\r
1283 <term>\r
1284 color.interactive\r
1285 </term>\r
1286 <listitem>\r
1287 <simpara>\r
1288         When set to <literal>always</literal>, always use colors for interactive prompts\r
1289         and displays (such as those used by "git-add --interactive").\r
1290         When false (or <literal>never</literal>), never.  When set to <literal>true</literal> or <literal>auto</literal>, use\r
1291         colors only when the output is to the terminal. Defaults to false.\r
1292 </simpara>\r
1293 </listitem>\r
1294 </varlistentry>\r
1295 <varlistentry>\r
1296 <term>\r
1297 color.interactive.&lt;slot&gt;\r
1298 </term>\r
1299 <listitem>\r
1300 <simpara>\r
1301         Use customized color for <emphasis>git-add --interactive</emphasis>\r
1302         output. <literal>&lt;slot&gt;</literal> may be <literal>prompt</literal>, <literal>header</literal>, <literal>help</literal> or <literal>error</literal>, for\r
1303         four distinct types of normal output from interactive\r
1304         programs.  The values of these variables may be specified as\r
1305         in color.branch.&lt;slot&gt;.\r
1306 </simpara>\r
1307 </listitem>\r
1308 </varlistentry>\r
1309 <varlistentry>\r
1310 <term>\r
1311 color.pager\r
1312 </term>\r
1313 <listitem>\r
1314 <simpara>\r
1315         A boolean to enable/disable colored output when the pager is in\r
1316         use (default is true).\r
1317 </simpara>\r
1318 </listitem>\r
1319 </varlistentry>\r
1320 <varlistentry>\r
1321 <term>\r
1322 color.status\r
1323 </term>\r
1324 <listitem>\r
1325 <simpara>\r
1326         A boolean to enable/disable color in the output of\r
1327         <xref linkend="git-status(1)"/>. May be set to <literal>always</literal>,\r
1328         <literal>false</literal> (or <literal>never</literal>) or <literal>auto</literal> (or <literal>true</literal>), in which case colors are used\r
1329         only when the output is to a terminal. Defaults to false.\r
1330 </simpara>\r
1331 </listitem>\r
1332 </varlistentry>\r
1333 <varlistentry>\r
1334 <term>\r
1335 color.status.&lt;slot&gt;\r
1336 </term>\r
1337 <listitem>\r
1338 <simpara>\r
1339         Use customized color for status colorization. <literal>&lt;slot&gt;</literal> is\r
1340         one of <literal>header</literal> (the header text of the status message),\r
1341         <literal>added</literal> or <literal>updated</literal> (files which are added but not committed),\r
1342         <literal>changed</literal> (files which are changed but not added in the index),\r
1343         <literal>untracked</literal> (files which are not tracked by git), or\r
1344         <literal>nobranch</literal> (the color the <emphasis>no branch</emphasis> warning is shown in, defaulting\r
1345         to red). The values of these variables may be specified as in\r
1346         color.branch.&lt;slot&gt;.\r
1347 </simpara>\r
1348 </listitem>\r
1349 </varlistentry>\r
1350 <varlistentry>\r
1351 <term>\r
1352 color.ui\r
1353 </term>\r
1354 <listitem>\r
1355 <simpara>\r
1356         When set to <literal>always</literal>, always use colors in all git commands which\r
1357         are capable of colored output. When false (or <literal>never</literal>), never. When\r
1358         set to <literal>true</literal> or <literal>auto</literal>, use colors only when the output is to the\r
1359         terminal. When more specific variables of color.* are set, they always\r
1360         take precedence over this setting. Defaults to false.\r
1361 </simpara>\r
1362 </listitem>\r
1363 </varlistentry>\r
1364 <varlistentry>\r
1365 <term>\r
1366 commit.template\r
1367 </term>\r
1368 <listitem>\r
1369 <simpara>\r
1370         Specify a file to use as the template for new commit messages.\r
1371 </simpara>\r
1372 </listitem>\r
1373 </varlistentry>\r
1374 <varlistentry>\r
1375 <term>\r
1376 diff.autorefreshindex\r
1377 </term>\r
1378 <listitem>\r
1379 <simpara>\r
1380         When using <emphasis>git-diff</emphasis> to compare with work tree\r
1381         files, do not consider stat-only change as changed.\r
1382         Instead, silently run <literal>git update-index --refresh</literal> to\r
1383         update the cached stat information for paths whose\r
1384         contents in the work tree match the contents in the\r
1385         index.  This option defaults to true.  Note that this\r
1386         affects only <emphasis>git-diff</emphasis> Porcelain, and not lower level\r
1387         <emphasis>diff</emphasis> commands, such as <emphasis>git-diff-files</emphasis>.\r
1388 </simpara>\r
1389 </listitem>\r
1390 </varlistentry>\r
1391 <varlistentry>\r
1392 <term>\r
1393 diff.external\r
1394 </term>\r
1395 <listitem>\r
1396 <simpara>\r
1397         If this config variable is set, diff generation is not\r
1398         performed using the internal diff machinery, but using the\r
1399         given command.  Can be overridden with the &#8216;GIT_EXTERNAL_DIFF&#8217;\r
1400         environment variable.  The command is called with parameters\r
1401         as described under "git Diffs" in <xref linkend="git(1)"/>.  Note: if\r
1402         you want to use an external diff program only on a subset of\r
1403         your files, you might want to use <xref linkend="gitattributes(5)"/> instead.\r
1404 </simpara>\r
1405 </listitem>\r
1406 </varlistentry>\r
1407 <varlistentry>\r
1408 <term>\r
1409 diff.mnemonicprefix\r
1410 </term>\r
1411 <listitem>\r
1412 <simpara>\r
1413         If set, <emphasis>git-diff</emphasis> uses a prefix pair that is different from the\r
1414         standard "a/" and "b/" depending on what is being compared.  When\r
1415         this configuration is in effect, reverse diff output also swaps\r
1416         the order of the prefixes:\r
1417 </simpara>\r
1418 <variablelist>\r
1419 <varlistentry>\r
1420 <term>\r
1421 <emphasis>git-diff</emphasis>\r
1422 </term>\r
1423 <listitem>\r
1424 <simpara>\r
1425         compares the (i)ndex and the (w)ork tree;\r
1426 </simpara>\r
1427 </listitem>\r
1428 </varlistentry>\r
1429 <varlistentry>\r
1430 <term>\r
1431 <emphasis>git-diff HEAD</emphasis>\r
1432 </term>\r
1433 <listitem>\r
1434 <simpara>\r
1435          compares a (c)ommit and the (w)ork tree;\r
1436 </simpara>\r
1437 </listitem>\r
1438 </varlistentry>\r
1439 <varlistentry>\r
1440 <term>\r
1441 <emphasis>git diff --cached</emphasis>\r
1442 </term>\r
1443 <listitem>\r
1444 <simpara>\r
1445         compares a (c)ommit and the (i)ndex;\r
1446 </simpara>\r
1447 </listitem>\r
1448 </varlistentry>\r
1449 <varlistentry>\r
1450 <term>\r
1451 <emphasis>git-diff HEAD:file1 file2</emphasis>\r
1452 </term>\r
1453 <listitem>\r
1454 <simpara>\r
1455         compares an (o)bject and a (w)ork tree entity;\r
1456 </simpara>\r
1457 </listitem>\r
1458 </varlistentry>\r
1459 <varlistentry>\r
1460 <term>\r
1461 <emphasis>git diff --no-index a b</emphasis>\r
1462 </term>\r
1463 <listitem>\r
1464 <simpara>\r
1465         compares two non-git things (1) and (2).\r
1466 </simpara>\r
1467 </listitem>\r
1468 </varlistentry>\r
1469 </variablelist>\r
1470 </listitem>\r
1471 </varlistentry>\r
1472 <varlistentry>\r
1473 <term>\r
1474 diff.renameLimit\r
1475 </term>\r
1476 <listitem>\r
1477 <simpara>\r
1478         The number of files to consider when performing the copy/rename\r
1479         detection; equivalent to the <emphasis>git-diff</emphasis> option <emphasis>-l</emphasis>.\r
1480 </simpara>\r
1481 </listitem>\r
1482 </varlistentry>\r
1483 <varlistentry>\r
1484 <term>\r
1485 diff.renames\r
1486 </term>\r
1487 <listitem>\r
1488 <simpara>\r
1489         Tells git to detect renames.  If set to any boolean value, it\r
1490         will enable basic rename detection.  If set to "copies" or\r
1491         "copy", it will detect copies, as well.\r
1492 </simpara>\r
1493 </listitem>\r
1494 </varlistentry>\r
1495 <varlistentry>\r
1496 <term>\r
1497 diff.suppressBlankEmpty\r
1498 </term>\r
1499 <listitem>\r
1500 <simpara>\r
1501         A boolean to inhibit the standard behavior of printing a space\r
1502         before each empty output line. Defaults to false.\r
1503 </simpara>\r
1504 </listitem>\r
1505 </varlistentry>\r
1506 <varlistentry>\r
1507 <term>\r
1508 diff.wordRegex\r
1509 </term>\r
1510 <listitem>\r
1511 <simpara>\r
1512         A POSIX Extended Regular Expression used to determine what is a "word"\r
1513         when performing word-by-word difference calculations.  Character\r
1514         sequences that match the regular expression are "words", all other\r
1515         characters are <emphasis role="strong">ignorable</emphasis> whitespace.\r
1516 </simpara>\r
1517 </listitem>\r
1518 </varlistentry>\r
1519 <varlistentry>\r
1520 <term>\r
1521 fetch.unpackLimit\r
1522 </term>\r
1523 <listitem>\r
1524 <simpara>\r
1525         If the number of objects fetched over the git native\r
1526         transfer is below this\r
1527         limit, then the objects will be unpacked into loose object\r
1528         files. However if the number of received objects equals or\r
1529         exceeds this limit then the received pack will be stored as\r
1530         a pack, after adding any missing delta bases.  Storing the\r
1531         pack from a push can make the push operation complete faster,\r
1532         especially on slow filesystems.  If not set, the value of\r
1533         <literal>transfer.unpackLimit</literal> is used instead.\r
1534 </simpara>\r
1535 </listitem>\r
1536 </varlistentry>\r
1537 <varlistentry>\r
1538 <term>\r
1539 format.numbered\r
1540 </term>\r
1541 <listitem>\r
1542 <simpara>\r
1543         A boolean which can enable or disable sequence numbers in patch\r
1544         subjects.  It defaults to "auto" which enables it only if there\r
1545         is more than one patch.  It can be enabled or disabled for all\r
1546         messages by setting it to "true" or "false".  See --numbered\r
1547         option in <xref linkend="git-format-patch(1)"/>.\r
1548 </simpara>\r
1549 </listitem>\r
1550 </varlistentry>\r
1551 <varlistentry>\r
1552 <term>\r
1553 format.headers\r
1554 </term>\r
1555 <listitem>\r
1556 <simpara>\r
1557         Additional email headers to include in a patch to be submitted\r
1558         by mail.  See <xref linkend="git-format-patch(1)"/>.\r
1559 </simpara>\r
1560 </listitem>\r
1561 </varlistentry>\r
1562 <varlistentry>\r
1563 <term>\r
1564 format.suffix\r
1565 </term>\r
1566 <listitem>\r
1567 <simpara>\r
1568         The default for format-patch is to output files with the suffix\r
1569         <literal>.patch</literal>. Use this variable to change that suffix (make sure to\r
1570         include the dot if you want it).\r
1571 </simpara>\r
1572 </listitem>\r
1573 </varlistentry>\r
1574 <varlistentry>\r
1575 <term>\r
1576 format.pretty\r
1577 </term>\r
1578 <listitem>\r
1579 <simpara>\r
1580         The default pretty format for log/show/whatchanged command,\r
1581         See <xref linkend="git-log(1)"/>, <xref linkend="git-show(1)"/>,\r
1582         <xref linkend="git-whatchanged(1)"/>.\r
1583 </simpara>\r
1584 </listitem>\r
1585 </varlistentry>\r
1586 <varlistentry>\r
1587 <term>\r
1588 gc.aggressiveWindow\r
1589 </term>\r
1590 <listitem>\r
1591 <simpara>\r
1592         The window size parameter used in the delta compression\r
1593         algorithm used by <emphasis>git-gc --aggressive</emphasis>.  This defaults\r
1594         to 10.\r
1595 </simpara>\r
1596 </listitem>\r
1597 </varlistentry>\r
1598 <varlistentry>\r
1599 <term>\r
1600 gc.auto\r
1601 </term>\r
1602 <listitem>\r
1603 <simpara>\r
1604         When there are approximately more than this many loose\r
1605         objects in the repository, <literal>git gc --auto</literal> will pack them.\r
1606         Some Porcelain commands use this command to perform a\r
1607         light-weight garbage collection from time to time.  The\r
1608         default value is 6700.  Setting this to 0 disables it.\r
1609 </simpara>\r
1610 </listitem>\r
1611 </varlistentry>\r
1612 <varlistentry>\r
1613 <term>\r
1614 gc.autopacklimit\r
1615 </term>\r
1616 <listitem>\r
1617 <simpara>\r
1618         When there are more than this many packs that are not\r
1619         marked with <literal>*.keep</literal> file in the repository, <literal>git gc\r
1620         --auto</literal> consolidates them into one larger pack.  The\r
1621         default value is 50.  Setting this to 0 disables it.\r
1622 </simpara>\r
1623 </listitem>\r
1624 </varlistentry>\r
1625 <varlistentry>\r
1626 <term>\r
1627 gc.packrefs\r
1628 </term>\r
1629 <listitem>\r
1630 <simpara>\r
1631         <emphasis>git-gc</emphasis> does not run <literal>git pack-refs</literal> in a bare repository by\r
1632         default so that older dumb-transport clients can still fetch\r
1633         from the repository.  Setting this to <literal>true</literal> lets <emphasis>git-gc</emphasis>\r
1634         to run <literal>git pack-refs</literal>.  Setting this to <literal>false</literal> tells\r
1635         <emphasis>git-gc</emphasis> never to run <literal>git pack-refs</literal>. The default setting is\r
1636         <literal>notbare</literal>. Enable it only when you know you do not have to\r
1637         support such clients.  The default setting will change to <literal>true</literal>\r
1638         at some stage, and setting this to <literal>false</literal> will continue to\r
1639         prevent <literal>git pack-refs</literal> from being run from <emphasis>git-gc</emphasis>.\r
1640 </simpara>\r
1641 </listitem>\r
1642 </varlistentry>\r
1643 <varlistentry>\r
1644 <term>\r
1645 gc.pruneexpire\r
1646 </term>\r
1647 <listitem>\r
1648 <simpara>\r
1649         When <emphasis>git-gc</emphasis> is run, it will call <emphasis>prune --expire 2.weeks.ago</emphasis>.\r
1650         Override the grace period with this config variable.  The value\r
1651         "now" may be used to disable this  grace period and always prune\r
1652         unreachable objects immediately.\r
1653 </simpara>\r
1654 </listitem>\r
1655 </varlistentry>\r
1656 <varlistentry>\r
1657 <term>\r
1658 gc.reflogexpire\r
1659 </term>\r
1660 <listitem>\r
1661 <simpara>\r
1662         <emphasis>git-reflog expire</emphasis> removes reflog entries older than\r
1663         this time; defaults to 90 days.\r
1664 </simpara>\r
1665 </listitem>\r
1666 </varlistentry>\r
1667 <varlistentry>\r
1668 <term>\r
1669 gc.reflogexpireunreachable\r
1670 </term>\r
1671 <listitem>\r
1672 <simpara>\r
1673         <emphasis>git-reflog expire</emphasis> removes reflog entries older than\r
1674         this time and are not reachable from the current tip;\r
1675         defaults to 30 days.\r
1676 </simpara>\r
1677 </listitem>\r
1678 </varlistentry>\r
1679 <varlistentry>\r
1680 <term>\r
1681 gc.rerereresolved\r
1682 </term>\r
1683 <listitem>\r
1684 <simpara>\r
1685         Records of conflicted merge you resolved earlier are\r
1686         kept for this many days when <emphasis>git-rerere gc</emphasis> is run.\r
1687         The default is 60 days.  See <xref linkend="git-rerere(1)"/>.\r
1688 </simpara>\r
1689 </listitem>\r
1690 </varlistentry>\r
1691 <varlistentry>\r
1692 <term>\r
1693 gc.rerereunresolved\r
1694 </term>\r
1695 <listitem>\r
1696 <simpara>\r
1697         Records of conflicted merge you have not resolved are\r
1698         kept for this many days when <emphasis>git-rerere gc</emphasis> is run.\r
1699         The default is 15 days.  See <xref linkend="git-rerere(1)"/>.\r
1700 </simpara>\r
1701 </listitem>\r
1702 </varlistentry>\r
1703 <varlistentry>\r
1704 <term>\r
1705 gitcvs.commitmsgannotation\r
1706 </term>\r
1707 <listitem>\r
1708 <simpara>\r
1709         Append this string to each commit message. Set to empty string\r
1710         to disable this feature. Defaults to "via git-CVS emulator".\r
1711 </simpara>\r
1712 </listitem>\r
1713 </varlistentry>\r
1714 <varlistentry>\r
1715 <term>\r
1716 gitcvs.enabled\r
1717 </term>\r
1718 <listitem>\r
1719 <simpara>\r
1720         Whether the CVS server interface is enabled for this repository.\r
1721         See <xref linkend="git-cvsserver(1)"/>.\r
1722 </simpara>\r
1723 </listitem>\r
1724 </varlistentry>\r
1725 <varlistentry>\r
1726 <term>\r
1727 gitcvs.logfile\r
1728 </term>\r
1729 <listitem>\r
1730 <simpara>\r
1731         Path to a log file where the CVS server interface well&#8230; logs\r
1732         various stuff. See <xref linkend="git-cvsserver(1)"/>.\r
1733 </simpara>\r
1734 </listitem>\r
1735 </varlistentry>\r
1736 <varlistentry>\r
1737 <term>\r
1738 gitcvs.usecrlfattr\r
1739 </term>\r
1740 <listitem>\r
1741 <simpara>\r
1742         If true, the server will look up the <literal>crlf</literal> attribute for\r
1743         files to determine the <emphasis>-k</emphasis> modes to use. If <literal>crlf</literal> is set,\r
1744         the <emphasis>-k</emphasis> mode will be left blank, so cvs clients will\r
1745         treat it as text. If <literal>crlf</literal> is explicitly unset, the file\r
1746         will be set with <emphasis>-kb</emphasis> mode, which suppresses any newline munging\r
1747         the client might otherwise do. If <literal>crlf</literal> is not specified,\r
1748         then <emphasis>gitcvs.allbinary</emphasis> is used. See <xref linkend="gitattributes(5)"/>.\r
1749 </simpara>\r
1750 </listitem>\r
1751 </varlistentry>\r
1752 <varlistentry>\r
1753 <term>\r
1754 gitcvs.allbinary\r
1755 </term>\r
1756 <listitem>\r
1757 <simpara>\r
1758         This is used if <emphasis>gitcvs.usecrlfattr</emphasis> does not resolve\r
1759         the correct <emphasis>-kb</emphasis> mode to use. If true, all\r
1760         unresolved files are sent to the client in\r
1761         mode <emphasis>-kb</emphasis>. This causes the client to treat them\r
1762         as binary files, which suppresses any newline munging it\r
1763         otherwise might do. Alternatively, if it is set to "guess",\r
1764         then the contents of the file are examined to decide if\r
1765         it is binary, similar to <emphasis>core.autocrlf</emphasis>.\r
1766 </simpara>\r
1767 </listitem>\r
1768 </varlistentry>\r
1769 <varlistentry>\r
1770 <term>\r
1771 gitcvs.dbname\r
1772 </term>\r
1773 <listitem>\r
1774 <simpara>\r
1775         Database used by git-cvsserver to cache revision information\r
1776         derived from the git repository. The exact meaning depends on the\r
1777         used database driver, for SQLite (which is the default driver) this\r
1778         is a filename. Supports variable substitution (see\r
1779         <xref linkend="git-cvsserver(1)"/> for details). May not contain semicolons (<literal>;</literal>).\r
1780         Default: <emphasis>%Ggitcvs.%m.sqlite</emphasis>\r
1781 </simpara>\r
1782 </listitem>\r
1783 </varlistentry>\r
1784 <varlistentry>\r
1785 <term>\r
1786 gitcvs.dbdriver\r
1787 </term>\r
1788 <listitem>\r
1789 <simpara>\r
1790         Used Perl DBI driver. You can specify any available driver\r
1791         for this here, but it might not work. git-cvsserver is tested\r
1792         with <emphasis>DBD::SQLite</emphasis>, reported to work with <emphasis>DBD::Pg</emphasis>, and\r
1793         reported <emphasis role="strong">not</emphasis> to work with <emphasis>DBD::mysql</emphasis>. Experimental feature.\r
1794         May not contain double colons (<literal>:</literal>). Default: <emphasis>SQLite</emphasis>.\r
1795         See <xref linkend="git-cvsserver(1)"/>.\r
1796 </simpara>\r
1797 </listitem>\r
1798 </varlistentry>\r
1799 <varlistentry>\r
1800 <term>\r
1801 gitcvs.dbuser, gitcvs.dbpass\r
1802 </term>\r
1803 <listitem>\r
1804 <simpara>\r
1805         Database user and password. Only useful if setting <emphasis>gitcvs.dbdriver</emphasis>,\r
1806         since SQLite has no concept of database users and/or passwords.\r
1807         <emphasis>gitcvs.dbuser</emphasis> supports variable substitution (see\r
1808         <xref linkend="git-cvsserver(1)"/> for details).\r
1809 </simpara>\r
1810 </listitem>\r
1811 </varlistentry>\r
1812 <varlistentry>\r
1813 <term>\r
1814 gitcvs.dbTableNamePrefix\r
1815 </term>\r
1816 <listitem>\r
1817 <simpara>\r
1818         Database table name prefix.  Prepended to the names of any\r
1819         database tables used, allowing a single database to be used\r
1820         for several repositories.  Supports variable substitution (see\r
1821         <xref linkend="git-cvsserver(1)"/> for details).  Any non-alphabetic\r
1822         characters will be replaced with underscores.\r
1823 </simpara>\r
1824 </listitem>\r
1825 </varlistentry>\r
1826 </variablelist>\r
1827 <simpara>All gitcvs variables except for <emphasis>gitcvs.usecrlfattr</emphasis> and\r
1828 <emphasis>gitcvs.allbinary</emphasis> can also be specified as\r
1829 <emphasis>gitcvs.&lt;access_method&gt;.&lt;varname&gt;</emphasis> (where <emphasis>access_method</emphasis>\r
1830 is one of "ext" and "pserver") to make them apply only for the given\r
1831 access method.</simpara>\r
1832 <variablelist>\r
1833 <varlistentry>\r
1834 <term>\r
1835 gui.commitmsgwidth\r
1836 </term>\r
1837 <listitem>\r
1838 <simpara>\r
1839         Defines how wide the commit message window is in the\r
1840         <xref linkend="git-gui(1)"/>. "75" is the default.\r
1841 </simpara>\r
1842 </listitem>\r
1843 </varlistentry>\r
1844 <varlistentry>\r
1845 <term>\r
1846 gui.diffcontext\r
1847 </term>\r
1848 <listitem>\r
1849 <simpara>\r
1850         Specifies how many context lines should be used in calls to diff\r
1851         made by the <xref linkend="git-gui(1)"/>. The default is "5".\r
1852 </simpara>\r
1853 </listitem>\r
1854 </varlistentry>\r
1855 <varlistentry>\r
1856 <term>\r
1857 gui.encoding\r
1858 </term>\r
1859 <listitem>\r
1860 <simpara>\r
1861         Specifies the default encoding to use for displaying of\r
1862         file contents in <xref linkend="git-gui(1)"/> and <xref linkend="gitk(1)"/>.\r
1863         It can be overridden by setting the <emphasis>encoding</emphasis> attribute\r
1864         for relevant files (see <xref linkend="gitattributes(5)"/>).\r
1865         If this option is not set, the tools default to the\r
1866         locale encoding.\r
1867 </simpara>\r
1868 </listitem>\r
1869 </varlistentry>\r
1870 <varlistentry>\r
1871 <term>\r
1872 gui.matchtrackingbranch\r
1873 </term>\r
1874 <listitem>\r
1875 <simpara>\r
1876         Determines if new branches created with <xref linkend="git-gui(1)"/> should\r
1877         default to tracking remote branches with matching names or\r
1878         not. Default: "false".\r
1879 </simpara>\r
1880 </listitem>\r
1881 </varlistentry>\r
1882 <varlistentry>\r
1883 <term>\r
1884 gui.newbranchtemplate\r
1885 </term>\r
1886 <listitem>\r
1887 <simpara>\r
1888         Is used as suggested name when creating new branches using the\r
1889         <xref linkend="git-gui(1)"/>.\r
1890 </simpara>\r
1891 </listitem>\r
1892 </varlistentry>\r
1893 <varlistentry>\r
1894 <term>\r
1895 gui.pruneduringfetch\r
1896 </term>\r
1897 <listitem>\r
1898 <simpara>\r
1899         "true" if <xref linkend="git-gui(1)"/> should prune tracking branches when\r
1900         performing a fetch. The default value is "false".\r
1901 </simpara>\r
1902 </listitem>\r
1903 </varlistentry>\r
1904 <varlistentry>\r
1905 <term>\r
1906 gui.trustmtime\r
1907 </term>\r
1908 <listitem>\r
1909 <simpara>\r
1910         Determines if <xref linkend="git-gui(1)"/> should trust the file modification\r
1911         timestamp or not. By default the timestamps are not trusted.\r
1912 </simpara>\r
1913 </listitem>\r
1914 </varlistentry>\r
1915 <varlistentry>\r
1916 <term>\r
1917 gui.spellingdictionary\r
1918 </term>\r
1919 <listitem>\r
1920 <simpara>\r
1921         Specifies the dictionary used for spell checking commit messages in\r
1922         the <xref linkend="git-gui(1)"/>. When set to "none" spell checking is turned\r
1923         off.\r
1924 </simpara>\r
1925 </listitem>\r
1926 </varlistentry>\r
1927 <varlistentry>\r
1928 <term>\r
1929 gui.fastcopyblame\r
1930 </term>\r
1931 <listitem>\r
1932 <simpara>\r
1933         If true, <emphasis>git gui blame</emphasis> uses <emphasis>-C</emphasis> instead of <emphasis>-C -C</emphasis> for original\r
1934         location detection. It makes blame significantly faster on huge\r
1935         repositories at the expense of less thorough copy detection.\r
1936 </simpara>\r
1937 </listitem>\r
1938 </varlistentry>\r
1939 <varlistentry>\r
1940 <term>\r
1941 gui.copyblamethreshold\r
1942 </term>\r
1943 <listitem>\r
1944 <simpara>\r
1945         Specifies the threshold to use in <emphasis>git gui blame</emphasis> original location\r
1946         detection, measured in alphanumeric characters. See the\r
1947         <xref linkend="git-blame(1)"/> manual for more information on copy detection.\r
1948 </simpara>\r
1949 </listitem>\r
1950 </varlistentry>\r
1951 <varlistentry>\r
1952 <term>\r
1953 gui.blamehistoryctx\r
1954 </term>\r
1955 <listitem>\r
1956 <simpara>\r
1957         Specifies the radius of history context in days to show in\r
1958         <xref linkend="gitk(1)"/> for the selected commit, when the <literal>Show History\r
1959         Context</literal> menu item is invoked from <emphasis>git gui blame</emphasis>. If this\r
1960         variable is set to zero, the whole history is shown.\r
1961 </simpara>\r
1962 </listitem>\r
1963 </varlistentry>\r
1964 <varlistentry>\r
1965 <term>\r
1966 guitool.&lt;name&gt;.cmd\r
1967 </term>\r
1968 <listitem>\r
1969 <simpara>\r
1970         Specifies the shell command line to execute when the corresponding item\r
1971         of the <xref linkend="git-gui(1)"/> <literal>Tools</literal> menu is invoked. This option is\r
1972         mandatory for every tool. The command is executed from the root of\r
1973         the working directory, and in the environment it receives the name of\r
1974         the tool as <emphasis>GIT_GUITOOL</emphasis>, the name of the currently selected file as\r
1975         <emphasis>FILENAME</emphasis>, and the name of the current branch as <emphasis>CUR_BRANCH</emphasis> (if\r
1976         the head is detached, <emphasis>CUR_BRANCH</emphasis> is empty).\r
1977 </simpara>\r
1978 </listitem>\r
1979 </varlistentry>\r
1980 <varlistentry>\r
1981 <term>\r
1982 guitool.&lt;name&gt;.needsfile\r
1983 </term>\r
1984 <listitem>\r
1985 <simpara>\r
1986         Run the tool only if a diff is selected in the GUI. It guarantees\r
1987         that <emphasis>FILENAME</emphasis> is not empty.\r
1988 </simpara>\r
1989 </listitem>\r
1990 </varlistentry>\r
1991 <varlistentry>\r
1992 <term>\r
1993 guitool.&lt;name&gt;.noconsole\r
1994 </term>\r
1995 <listitem>\r
1996 <simpara>\r
1997         Run the command silently, without creating a window to display its\r
1998         output.\r
1999 </simpara>\r
2000 </listitem>\r
2001 </varlistentry>\r
2002 <varlistentry>\r
2003 <term>\r
2004 guitool.&lt;name&gt;.norescan\r
2005 </term>\r
2006 <listitem>\r
2007 <simpara>\r
2008         Don&#8217;t rescan the working directory for changes after the tool\r
2009         finishes execution.\r
2010 </simpara>\r
2011 </listitem>\r
2012 </varlistentry>\r
2013 <varlistentry>\r
2014 <term>\r
2015 guitool.&lt;name&gt;.confirm\r
2016 </term>\r
2017 <listitem>\r
2018 <simpara>\r
2019         Show a confirmation dialog before actually running the tool.\r
2020 </simpara>\r
2021 </listitem>\r
2022 </varlistentry>\r
2023 <varlistentry>\r
2024 <term>\r
2025 guitool.&lt;name&gt;.argprompt\r
2026 </term>\r
2027 <listitem>\r
2028 <simpara>\r
2029         Request a string argument from the user, and pass it to the tool\r
2030         through the <emphasis>ARGS</emphasis> environment variable. Since requesting an\r
2031         argument implies confirmation, the <emphasis>confirm</emphasis> option has no effect\r
2032         if this is enabled. If the option is set to <emphasis>true</emphasis>, <emphasis>yes</emphasis>, or <emphasis>1</emphasis>,\r
2033         the dialog uses a built-in generic prompt; otherwise the exact\r
2034         value of the variable is used.\r
2035 </simpara>\r
2036 </listitem>\r
2037 </varlistentry>\r
2038 <varlistentry>\r
2039 <term>\r
2040 guitool.&lt;name&gt;.revprompt\r
2041 </term>\r
2042 <listitem>\r
2043 <simpara>\r
2044         Request a single valid revision from the user, and set the\r
2045         <emphasis>REVISION</emphasis> environment variable. In other aspects this option\r
2046         is similar to <emphasis>argprompt</emphasis>, and can be used together with it.\r
2047 </simpara>\r
2048 </listitem>\r
2049 </varlistentry>\r
2050 <varlistentry>\r
2051 <term>\r
2052 guitool.&lt;name&gt;.revunmerged\r
2053 </term>\r
2054 <listitem>\r
2055 <simpara>\r
2056         Show only unmerged branches in the <emphasis>revprompt</emphasis> subdialog.\r
2057         This is useful for tools similar to merge or rebase, but not\r
2058         for things like checkout or reset.\r
2059 </simpara>\r
2060 </listitem>\r
2061 </varlistentry>\r
2062 <varlistentry>\r
2063 <term>\r
2064 guitool.&lt;name&gt;.title\r
2065 </term>\r
2066 <listitem>\r
2067 <simpara>\r
2068         Specifies the title to use for the prompt dialog. The default\r
2069         is the tool name.\r
2070 </simpara>\r
2071 </listitem>\r
2072 </varlistentry>\r
2073 <varlistentry>\r
2074 <term>\r
2075 guitool.&lt;name&gt;.prompt\r
2076 </term>\r
2077 <listitem>\r
2078 <simpara>\r
2079         Specifies the general prompt string to display at the top of\r
2080         the dialog, before subsections for <emphasis>argprompt</emphasis> and <emphasis>revprompt</emphasis>.\r
2081         The default value includes the actual command.\r
2082 </simpara>\r
2083 </listitem>\r
2084 </varlistentry>\r
2085 <varlistentry>\r
2086 <term>\r
2087 help.browser\r
2088 </term>\r
2089 <listitem>\r
2090 <simpara>\r
2091         Specify the browser that will be used to display help in the\r
2092         <emphasis>web</emphasis> format. See <xref linkend="git-help(1)"/>.\r
2093 </simpara>\r
2094 </listitem>\r
2095 </varlistentry>\r
2096 <varlistentry>\r
2097 <term>\r
2098 help.format\r
2099 </term>\r
2100 <listitem>\r
2101 <simpara>\r
2102         Override the default help format used by <xref linkend="git-help(1)"/>.\r
2103         Values <emphasis>man</emphasis>, <emphasis>info</emphasis>, <emphasis>web</emphasis> and <emphasis>html</emphasis> are supported. <emphasis>man</emphasis> is\r
2104         the default. <emphasis>web</emphasis> and <emphasis>html</emphasis> are the same.\r
2105 </simpara>\r
2106 </listitem>\r
2107 </varlistentry>\r
2108 <varlistentry>\r
2109 <term>\r
2110 help.autocorrect\r
2111 </term>\r
2112 <listitem>\r
2113 <simpara>\r
2114         Automatically correct and execute mistyped commands after\r
2115         waiting for the given number of deciseconds (0.1 sec). If more\r
2116         than one command can be deduced from the entered text, nothing\r
2117         will be executed.  If the value of this option is negative,\r
2118         the corrected command will be executed immediately. If the\r
2119         value is 0 - the command will be just shown but not executed.\r
2120         This is the default.\r
2121 </simpara>\r
2122 </listitem>\r
2123 </varlistentry>\r
2124 <varlistentry>\r
2125 <term>\r
2126 http.proxy\r
2127 </term>\r
2128 <listitem>\r
2129 <simpara>\r
2130         Override the HTTP proxy, normally configured using the <emphasis>http_proxy</emphasis>\r
2131         environment variable (see <xref linkend="curl(1)"/>).  This can be overridden\r
2132         on a per-remote basis; see remote.&lt;name&gt;.proxy\r
2133 </simpara>\r
2134 </listitem>\r
2135 </varlistentry>\r
2136 <varlistentry>\r
2137 <term>\r
2138 http.sslVerify\r
2139 </term>\r
2140 <listitem>\r
2141 <simpara>\r
2142         Whether to verify the SSL certificate when fetching or pushing\r
2143         over HTTPS. Can be overridden by the <emphasis>GIT_SSL_NO_VERIFY</emphasis> environment\r
2144         variable.\r
2145 </simpara>\r
2146 </listitem>\r
2147 </varlistentry>\r
2148 <varlistentry>\r
2149 <term>\r
2150 http.sslCert\r
2151 </term>\r
2152 <listitem>\r
2153 <simpara>\r
2154         File containing the SSL certificate when fetching or pushing\r
2155         over HTTPS. Can be overridden by the <emphasis>GIT_SSL_CERT</emphasis> environment\r
2156         variable.\r
2157 </simpara>\r
2158 </listitem>\r
2159 </varlistentry>\r
2160 <varlistentry>\r
2161 <term>\r
2162 http.sslKey\r
2163 </term>\r
2164 <listitem>\r
2165 <simpara>\r
2166         File containing the SSL private key when fetching or pushing\r
2167         over HTTPS. Can be overridden by the <emphasis>GIT_SSL_KEY</emphasis> environment\r
2168         variable.\r
2169 </simpara>\r
2170 </listitem>\r
2171 </varlistentry>\r
2172 <varlistentry>\r
2173 <term>\r
2174 http.sslCAInfo\r
2175 </term>\r
2176 <listitem>\r
2177 <simpara>\r
2178         File containing the certificates to verify the peer with when\r
2179         fetching or pushing over HTTPS. Can be overridden by the\r
2180         <emphasis>GIT_SSL_CAINFO</emphasis> environment variable.\r
2181 </simpara>\r
2182 </listitem>\r
2183 </varlistentry>\r
2184 <varlistentry>\r
2185 <term>\r
2186 http.sslCAPath\r
2187 </term>\r
2188 <listitem>\r
2189 <simpara>\r
2190         Path containing files with the CA certificates to verify the peer\r
2191         with when fetching or pushing over HTTPS. Can be overridden\r
2192         by the <emphasis>GIT_SSL_CAPATH</emphasis> environment variable.\r
2193 </simpara>\r
2194 </listitem>\r
2195 </varlistentry>\r
2196 <varlistentry>\r
2197 <term>\r
2198 http.maxRequests\r
2199 </term>\r
2200 <listitem>\r
2201 <simpara>\r
2202         How many HTTP requests to launch in parallel. Can be overridden\r
2203         by the <emphasis>GIT_HTTP_MAX_REQUESTS</emphasis> environment variable. Default is 5.\r
2204 </simpara>\r
2205 </listitem>\r
2206 </varlistentry>\r
2207 <varlistentry>\r
2208 <term>\r
2209 http.lowSpeedLimit, http.lowSpeedTime\r
2210 </term>\r
2211 <listitem>\r
2212 <simpara>\r
2213         If the HTTP transfer speed is less than <emphasis>http.lowSpeedLimit</emphasis>\r
2214         for longer than <emphasis>http.lowSpeedTime</emphasis> seconds, the transfer is aborted.\r
2215         Can be overridden by the <emphasis>GIT_HTTP_LOW_SPEED_LIMIT</emphasis> and\r
2216         <emphasis>GIT_HTTP_LOW_SPEED_TIME</emphasis> environment variables.\r
2217 </simpara>\r
2218 </listitem>\r
2219 </varlistentry>\r
2220 <varlistentry>\r
2221 <term>\r
2222 http.noEPSV\r
2223 </term>\r
2224 <listitem>\r
2225 <simpara>\r
2226         A boolean which disables using of EPSV ftp command by curl.\r
2227         This can helpful with some "poor" ftp servers which don&#8217;t\r
2228         support EPSV mode. Can be overridden by the <emphasis>GIT_CURL_FTP_NO_EPSV</emphasis>\r
2229         environment variable. Default is false (curl will use EPSV).\r
2230 </simpara>\r
2231 </listitem>\r
2232 </varlistentry>\r
2233 <varlistentry>\r
2234 <term>\r
2235 i18n.commitEncoding\r
2236 </term>\r
2237 <listitem>\r
2238 <simpara>\r
2239         Character encoding the commit messages are stored in; git itself\r
2240         does not care per se, but this information is necessary e.g. when\r
2241         importing commits from emails or in the gitk graphical history\r
2242         browser (and possibly at other places in the future or in other\r
2243         porcelains). See e.g. <xref linkend="git-mailinfo(1)"/>. Defaults to <emphasis>utf-8</emphasis>.\r
2244 </simpara>\r
2245 </listitem>\r
2246 </varlistentry>\r
2247 <varlistentry>\r
2248 <term>\r
2249 i18n.logOutputEncoding\r
2250 </term>\r
2251 <listitem>\r
2252 <simpara>\r
2253         Character encoding the commit messages are converted to when\r
2254         running <emphasis>git-log</emphasis> and friends.\r
2255 </simpara>\r
2256 </listitem>\r
2257 </varlistentry>\r
2258 <varlistentry>\r
2259 <term>\r
2260 imap\r
2261 </term>\r
2262 <listitem>\r
2263 <simpara>\r
2264         The configuration variables in the <emphasis>imap</emphasis> section are described\r
2265         in <xref linkend="git-imap-send(1)"/>.\r
2266 </simpara>\r
2267 </listitem>\r
2268 </varlistentry>\r
2269 <varlistentry>\r
2270 <term>\r
2271 instaweb.browser\r
2272 </term>\r
2273 <listitem>\r
2274 <simpara>\r
2275         Specify the program that will be used to browse your working\r
2276         repository in gitweb. See <xref linkend="git-instaweb(1)"/>.\r
2277 </simpara>\r
2278 </listitem>\r
2279 </varlistentry>\r
2280 <varlistentry>\r
2281 <term>\r
2282 instaweb.httpd\r
2283 </term>\r
2284 <listitem>\r
2285 <simpara>\r
2286         The HTTP daemon command-line to start gitweb on your working\r
2287         repository. See <xref linkend="git-instaweb(1)"/>.\r
2288 </simpara>\r
2289 </listitem>\r
2290 </varlistentry>\r
2291 <varlistentry>\r
2292 <term>\r
2293 instaweb.local\r
2294 </term>\r
2295 <listitem>\r
2296 <simpara>\r
2297         If true the web server started by <xref linkend="git-instaweb(1)"/> will\r
2298         be bound to the local IP (127.0.0.1).\r
2299 </simpara>\r
2300 </listitem>\r
2301 </varlistentry>\r
2302 <varlistentry>\r
2303 <term>\r
2304 instaweb.modulepath\r
2305 </term>\r
2306 <listitem>\r
2307 <simpara>\r
2308         The module path for an apache httpd used by <xref linkend="git-instaweb(1)"/>.\r
2309 </simpara>\r
2310 </listitem>\r
2311 </varlistentry>\r
2312 <varlistentry>\r
2313 <term>\r
2314 instaweb.port\r
2315 </term>\r
2316 <listitem>\r
2317 <simpara>\r
2318         The port number to bind the gitweb httpd to. See\r
2319         <xref linkend="git-instaweb(1)"/>.\r
2320 </simpara>\r
2321 </listitem>\r
2322 </varlistentry>\r
2323 <varlistentry>\r
2324 <term>\r
2325 interactive.singlekey\r
2326 </term>\r
2327 <listitem>\r
2328 <simpara>\r
2329         In interactive programs, allow the user to provide one-letter\r
2330         input with a single key (i.e., without hitting enter).\r
2331         Currently this is used only by the <literal>--patch</literal> mode of\r
2332         <xref linkend="git-add(1)"/>.  Note that this setting is silently\r
2333         ignored if portable keystroke input is not available.\r
2334 </simpara>\r
2335 </listitem>\r
2336 </varlistentry>\r
2337 <varlistentry>\r
2338 <term>\r
2339 log.date\r
2340 </term>\r
2341 <listitem>\r
2342 <simpara>\r
2343         Set default date-time mode for the log command. Setting log.date\r
2344         value is similar to using <emphasis>git-log</emphasis>\'s --date option. The value is one of the\r
2345         following alternatives: {relative,local,default,iso,rfc,short}.\r
2346         See <xref linkend="git-log(1)"/>.\r
2347 </simpara>\r
2348 </listitem>\r
2349 </varlistentry>\r
2350 <varlistentry>\r
2351 <term>\r
2352 log.showroot\r
2353 </term>\r
2354 <listitem>\r
2355 <simpara>\r
2356         If true, the initial commit will be shown as a big creation event.\r
2357         This is equivalent to a diff against an empty tree.\r
2358         Tools like <xref linkend="git-log(1)"/> or <xref linkend="git-whatchanged(1)"/>, which\r
2359         normally hide the root commit will now show it. True by default.\r
2360 </simpara>\r
2361 </listitem>\r
2362 </varlistentry>\r
2363 <varlistentry>\r
2364 <term>\r
2365 log.mailmap\r
2366 </term>\r
2367 <listitem>\r
2368 <simpara>\r
2369         The location of an augmenting mailmap file. The default\r
2370         mailmap, located in the root of the repository, is loaded\r
2371         first, then the mailmap file pointed to by this variable.\r
2372         The location of the mailmap file may be in a repository\r
2373         subdirectory, or somewhere outside of the repository itself.\r
2374         See <xref linkend="git-shortlog(1)"/> and <xref linkend="git-blame(1)"/>.\r
2375 </simpara>\r
2376 </listitem>\r
2377 </varlistentry>\r
2378 <varlistentry>\r
2379 <term>\r
2380 man.viewer\r
2381 </term>\r
2382 <listitem>\r
2383 <simpara>\r
2384         Specify the programs that may be used to display help in the\r
2385         <emphasis>man</emphasis> format. See <xref linkend="git-help(1)"/>.\r
2386 </simpara>\r
2387 </listitem>\r
2388 </varlistentry>\r
2389 <varlistentry>\r
2390 <term>\r
2391 man.&lt;tool&gt;.cmd\r
2392 </term>\r
2393 <listitem>\r
2394 <simpara>\r
2395         Specify the command to invoke the specified man viewer. The\r
2396         specified command is evaluated in shell with the man page\r
2397         passed as argument. (See <xref linkend="git-help(1)"/>.)\r
2398 </simpara>\r
2399 </listitem>\r
2400 </varlistentry>\r
2401 <varlistentry>\r
2402 <term>\r
2403 man.&lt;tool&gt;.path\r
2404 </term>\r
2405 <listitem>\r
2406 <simpara>\r
2407         Override the path for the given tool that may be used to\r
2408         display help in the <emphasis>man</emphasis> format. See <xref linkend="git-help(1)"/>.\r
2409 </simpara>\r
2410 </listitem>\r
2411 </varlistentry>\r
2412 <varlistentry>\r
2413 <term>\r
2414 merge.conflictstyle\r
2415 </term>\r
2416 <listitem>\r
2417 <simpara>\r
2418         Specify the style in which conflicted hunks are written out to\r
2419         working tree files upon merge.  The default is "merge", which\r
2420         shows a <literal>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</literal> conflict marker, changes made by one side,\r
2421         a <literal>=======</literal> marker, changes made by the other side, and then\r
2422         a <literal>&gt;&gt;&gt;&gt;&gt;&gt;&gt;</literal> marker.  An alternate style, "diff3", adds a <literal>|||||||</literal>\r
2423         marker and the original text before the <literal>=======</literal> marker.\r
2424 </simpara>\r
2425 </listitem>\r
2426 </varlistentry>\r
2427 <varlistentry>\r
2428 <term>\r
2429 merge.log\r
2430 </term>\r
2431 <listitem>\r
2432 <simpara>\r
2433         Whether to include summaries of merged commits in newly created\r
2434         merge commit messages. False by default.\r
2435 </simpara>\r
2436 </listitem>\r
2437 </varlistentry>\r
2438 <varlistentry>\r
2439 <term>\r
2440 merge.renameLimit\r
2441 </term>\r
2442 <listitem>\r
2443 <simpara>\r
2444         The number of files to consider when performing rename detection\r
2445         during a merge; if not specified, defaults to the value of\r
2446         diff.renameLimit.\r
2447 </simpara>\r
2448 </listitem>\r
2449 </varlistentry>\r
2450 <varlistentry>\r
2451 <term>\r
2452 merge.stat\r
2453 </term>\r
2454 <listitem>\r
2455 <simpara>\r
2456         Whether to print the diffstat between ORIG_HEAD and the merge result\r
2457         at the end of the merge.  True by default.\r
2458 </simpara>\r
2459 </listitem>\r
2460 </varlistentry>\r
2461 <varlistentry>\r
2462 <term>\r
2463 merge.tool\r
2464 </term>\r
2465 <listitem>\r
2466 <simpara>\r
2467         Controls which merge resolution program is used by\r
2468         <xref linkend="git-mergetool(1)"/>.  Valid built-in values are: "kdiff3",\r
2469         "tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff", and\r
2470         "opendiff".  Any other value is treated is custom merge tool\r
2471         and there must be a corresponding mergetool.&lt;tool&gt;.cmd option.\r
2472 </simpara>\r
2473 </listitem>\r
2474 </varlistentry>\r
2475 <varlistentry>\r
2476 <term>\r
2477 merge.verbosity\r
2478 </term>\r
2479 <listitem>\r
2480 <simpara>\r
2481         Controls the amount of output shown by the recursive merge\r
2482         strategy.  Level 0 outputs nothing except a final error\r
2483         message if conflicts were detected. Level 1 outputs only\r
2484         conflicts, 2 outputs conflicts and file changes.  Level 5 and\r
2485         above outputs debugging information.  The default is level 2.\r
2486         Can be overridden by the <emphasis>GIT_MERGE_VERBOSITY</emphasis> environment variable.\r
2487 </simpara>\r
2488 </listitem>\r
2489 </varlistentry>\r
2490 <varlistentry>\r
2491 <term>\r
2492 merge.&lt;driver&gt;.name\r
2493 </term>\r
2494 <listitem>\r
2495 <simpara>\r
2496         Defines a human-readable name for a custom low-level\r
2497         merge driver.  See <xref linkend="gitattributes(5)"/> for details.\r
2498 </simpara>\r
2499 </listitem>\r
2500 </varlistentry>\r
2501 <varlistentry>\r
2502 <term>\r
2503 merge.&lt;driver&gt;.driver\r
2504 </term>\r
2505 <listitem>\r
2506 <simpara>\r
2507         Defines the command that implements a custom low-level\r
2508         merge driver.  See <xref linkend="gitattributes(5)"/> for details.\r
2509 </simpara>\r
2510 </listitem>\r
2511 </varlistentry>\r
2512 <varlistentry>\r
2513 <term>\r
2514 merge.&lt;driver&gt;.recursive\r
2515 </term>\r
2516 <listitem>\r
2517 <simpara>\r
2518         Names a low-level merge driver to be used when\r
2519         performing an internal merge between common ancestors.\r
2520         See <xref linkend="gitattributes(5)"/> for details.\r
2521 </simpara>\r
2522 </listitem>\r
2523 </varlistentry>\r
2524 <varlistentry>\r
2525 <term>\r
2526 mergetool.&lt;tool&gt;.path\r
2527 </term>\r
2528 <listitem>\r
2529 <simpara>\r
2530         Override the path for the given tool.  This is useful in case\r
2531         your tool is not in the PATH.\r
2532 </simpara>\r
2533 </listitem>\r
2534 </varlistentry>\r
2535 <varlistentry>\r
2536 <term>\r
2537 mergetool.&lt;tool&gt;.cmd\r
2538 </term>\r
2539 <listitem>\r
2540 <simpara>\r
2541         Specify the command to invoke the specified merge tool.  The\r
2542         specified command is evaluated in shell with the following\r
2543         variables available: <emphasis>BASE</emphasis> is the name of a temporary file\r
2544         containing the common base of the files to be merged, if available;\r
2545         <emphasis>LOCAL</emphasis> is the name of a temporary file containing the contents of\r
2546         the file on the current branch; <emphasis>REMOTE</emphasis> is the name of a temporary\r
2547         file containing the contents of the file from the branch being\r
2548         merged; <emphasis>MERGED</emphasis> contains the name of the file to which the merge\r
2549         tool should write the results of a successful merge.\r
2550 </simpara>\r
2551 </listitem>\r
2552 </varlistentry>\r
2553 <varlistentry>\r
2554 <term>\r
2555 mergetool.&lt;tool&gt;.trustExitCode\r
2556 </term>\r
2557 <listitem>\r
2558 <simpara>\r
2559         For a custom merge command, specify whether the exit code of\r
2560         the merge command can be used to determine whether the merge was\r
2561         successful.  If this is not set to true then the merge target file\r
2562         timestamp is checked and the merge assumed to have been successful\r
2563         if the file has been updated, otherwise the user is prompted to\r
2564         indicate the success of the merge.\r
2565 </simpara>\r
2566 </listitem>\r
2567 </varlistentry>\r
2568 <varlistentry>\r
2569 <term>\r
2570 mergetool.keepBackup\r
2571 </term>\r
2572 <listitem>\r
2573 <simpara>\r
2574         After performing a merge, the original file with conflict markers\r
2575         can be saved as a file with a <literal>.orig</literal> extension.  If this variable\r
2576         is set to <literal>false</literal> then this file is not preserved.  Defaults to\r
2577         <literal>true</literal> (i.e. keep the backup files).\r
2578 </simpara>\r
2579 </listitem>\r
2580 </varlistentry>\r
2581 <varlistentry>\r
2582 <term>\r
2583 mergetool.keepTemporaries\r
2584 </term>\r
2585 <listitem>\r
2586 <simpara>\r
2587         When invoking a custom merge tool, git uses a set of temporary\r
2588         files to pass to the tool. If the tool returns an error and this\r
2589         variable is set to <literal>true</literal>, then these temporary files will be\r
2590         preserved, otherwise they will be removed after the tool has\r
2591         exited. Defaults to <literal>false</literal>.\r
2592 </simpara>\r
2593 </listitem>\r
2594 </varlistentry>\r
2595 <varlistentry>\r
2596 <term>\r
2597 mergetool.prompt\r
2598 </term>\r
2599 <listitem>\r
2600 <simpara>\r
2601         Prompt before each invocation of the merge resolution program.\r
2602 </simpara>\r
2603 </listitem>\r
2604 </varlistentry>\r
2605 <varlistentry>\r
2606 <term>\r
2607 pack.window\r
2608 </term>\r
2609 <listitem>\r
2610 <simpara>\r
2611         The size of the window used by <xref linkend="git-pack-objects(1)"/> when no\r
2612         window size is given on the command line. Defaults to 10.\r
2613 </simpara>\r
2614 </listitem>\r
2615 </varlistentry>\r
2616 <varlistentry>\r
2617 <term>\r
2618 pack.depth\r
2619 </term>\r
2620 <listitem>\r
2621 <simpara>\r
2622         The maximum delta depth used by <xref linkend="git-pack-objects(1)"/> when no\r
2623         maximum depth is given on the command line. Defaults to 50.\r
2624 </simpara>\r
2625 </listitem>\r
2626 </varlistentry>\r
2627 <varlistentry>\r
2628 <term>\r
2629 pack.windowMemory\r
2630 </term>\r
2631 <listitem>\r
2632 <simpara>\r
2633         The window memory size limit used by <xref linkend="git-pack-objects(1)"/>\r
2634         when no limit is given on the command line.  The value can be\r
2635         suffixed with "k", "m", or "g".  Defaults to 0, meaning no\r
2636         limit.\r
2637 </simpara>\r
2638 </listitem>\r
2639 </varlistentry>\r
2640 <varlistentry>\r
2641 <term>\r
2642 pack.compression\r
2643 </term>\r
2644 <listitem>\r
2645 <simpara>\r
2646         An integer -1..9, indicating the compression level for objects\r
2647         in a pack file. -1 is the zlib default. 0 means no\r
2648         compression, and 1..9 are various speed/size tradeoffs, 9 being\r
2649         slowest.  If not set,  defaults to core.compression.  If that is\r
2650         not set,  defaults to -1, the zlib default, which is "a default\r
2651         compromise between speed and compression (currently equivalent\r
2652         to level 6)."\r
2653 </simpara>\r
2654 </listitem>\r
2655 </varlistentry>\r
2656 <varlistentry>\r
2657 <term>\r
2658 pack.deltaCacheSize\r
2659 </term>\r
2660 <listitem>\r
2661 <simpara>\r
2662         The maximum memory in bytes used for caching deltas in\r
2663         <xref linkend="git-pack-objects(1)"/>.\r
2664         A value of 0 means no limit. Defaults to 0.\r
2665 </simpara>\r
2666 </listitem>\r
2667 </varlistentry>\r
2668 <varlistentry>\r
2669 <term>\r
2670 pack.deltaCacheLimit\r
2671 </term>\r
2672 <listitem>\r
2673 <simpara>\r
2674         The maximum size of a delta, that is cached in\r
2675         <xref linkend="git-pack-objects(1)"/>. Defaults to 1000.\r
2676 </simpara>\r
2677 </listitem>\r
2678 </varlistentry>\r
2679 <varlistentry>\r
2680 <term>\r
2681 pack.threads\r
2682 </term>\r
2683 <listitem>\r
2684 <simpara>\r
2685         Specifies the number of threads to spawn when searching for best\r
2686         delta matches.  This requires that <xref linkend="git-pack-objects(1)"/>\r
2687         be compiled with pthreads otherwise this option is ignored with a\r
2688         warning. This is meant to reduce packing time on multiprocessor\r
2689         machines. The required amount of memory for the delta search window\r
2690         is however multiplied by the number of threads.\r
2691         Specifying 0 will cause git to auto-detect the number of CPU&#8217;s\r
2692         and set the number of threads accordingly.\r
2693 </simpara>\r
2694 </listitem>\r
2695 </varlistentry>\r
2696 <varlistentry>\r
2697 <term>\r
2698 pack.indexVersion\r
2699 </term>\r
2700 <listitem>\r
2701 <simpara>\r
2702         Specify the default pack index version.  Valid values are 1 for\r
2703         legacy pack index used by Git versions prior to 1.5.2, and 2 for\r
2704         the new pack index with capabilities for packs larger than 4 GB\r
2705         as well as proper protection against the repacking of corrupted\r
2706         packs.  Version 2 is the default.  Note that version 2 is enforced\r
2707         and this config option ignored whenever the corresponding pack is\r
2708         larger than 2 GB.\r
2709 </simpara>\r
2710 <simpara>If you have an old git that does not understand the version 2 <literal>&#42;.idx</literal> file,\r
2711 cloning or fetching over a non native protocol (e.g. "http" and "rsync")\r
2712 that will copy both <literal>&#42;.pack</literal> file and corresponding <literal>&#42;.idx</literal> file from the\r
2713 other side may give you a repository that cannot be accessed with your\r
2714 older version of git. If the <literal>&#42;.pack</literal> file is smaller than 2 GB, however,\r
2715 you can use <xref linkend="git-index-pack(1)"/> on the *.pack file to regenerate\r
2716 the <literal>&#42;.idx</literal> file.</simpara>\r
2717 </listitem>\r
2718 </varlistentry>\r
2719 <varlistentry>\r
2720 <term>\r
2721 pack.packSizeLimit\r
2722 </term>\r
2723 <listitem>\r
2724 <simpara>\r
2725         The default maximum size of a pack.  This setting only affects\r
2726         packing to a file, i.e. the git:// protocol is unaffected.  It\r
2727         can be overridden by the <literal>--max-pack-size</literal> option of\r
2728         <xref linkend="git-repack(1)"/>.\r
2729 </simpara>\r
2730 </listitem>\r
2731 </varlistentry>\r
2732 <varlistentry>\r
2733 <term>\r
2734 pager.&lt;cmd&gt;\r
2735 </term>\r
2736 <listitem>\r
2737 <simpara>\r
2738         Allows turning on or off pagination of the output of a\r
2739         particular git subcommand when writing to a tty.  If\r
2740         <literal>--paginate</literal> or <literal>--no-pager</literal> is specified on the command line,\r
2741         it takes precedence over this option.  To disable pagination for\r
2742         all commands, set <literal>core.pager</literal> or <emphasis>GIT_PAGER</emphasis> to "<literal>cat</literal>".\r
2743 </simpara>\r
2744 </listitem>\r
2745 </varlistentry>\r
2746 <varlistentry>\r
2747 <term>\r
2748 pull.octopus\r
2749 </term>\r
2750 <listitem>\r
2751 <simpara>\r
2752         The default merge strategy to use when pulling multiple branches\r
2753         at once.\r
2754 </simpara>\r
2755 </listitem>\r
2756 </varlistentry>\r
2757 <varlistentry>\r
2758 <term>\r
2759 pull.twohead\r
2760 </term>\r
2761 <listitem>\r
2762 <simpara>\r
2763         The default merge strategy to use when pulling a single branch.\r
2764 </simpara>\r
2765 </listitem>\r
2766 </varlistentry>\r
2767 <varlistentry>\r
2768 <term>\r
2769 receive.fsckObjects\r
2770 </term>\r
2771 <listitem>\r
2772 <simpara>\r
2773         If it is set to true, git-receive-pack will check all received\r
2774         objects. It will abort in the case of a malformed object or a\r
2775         broken link. The result of an abort are only dangling objects.\r
2776         Defaults to false.\r
2777 </simpara>\r
2778 </listitem>\r
2779 </varlistentry>\r
2780 <varlistentry>\r
2781 <term>\r
2782 receive.unpackLimit\r
2783 </term>\r
2784 <listitem>\r
2785 <simpara>\r
2786         If the number of objects received in a push is below this\r
2787         limit then the objects will be unpacked into loose object\r
2788         files. However if the number of received objects equals or\r
2789         exceeds this limit then the received pack will be stored as\r
2790         a pack, after adding any missing delta bases.  Storing the\r
2791         pack from a push can make the push operation complete faster,\r
2792         especially on slow filesystems.  If not set, the value of\r
2793         <literal>transfer.unpackLimit</literal> is used instead.\r
2794 </simpara>\r
2795 </listitem>\r
2796 </varlistentry>\r
2797 <varlistentry>\r
2798 <term>\r
2799 receive.denyDeletes\r
2800 </term>\r
2801 <listitem>\r
2802 <simpara>\r
2803         If set to true, git-receive-pack will deny a ref update that deletes\r
2804         the ref. Use this to prevent such a ref deletion via a push.\r
2805 </simpara>\r
2806 </listitem>\r
2807 </varlistentry>\r
2808 <varlistentry>\r
2809 <term>\r
2810 receive.denyCurrentBranch\r
2811 </term>\r
2812 <listitem>\r
2813 <simpara>\r
2814         If set to true or "refuse", receive-pack will deny a ref update\r
2815         to the currently checked out branch of a non-bare repository.\r
2816         Such a push is potentially dangerous because it brings the HEAD\r
2817         out of sync with the index and working tree. If set to "warn",\r
2818         print a warning of such a push to stderr, but allow the push to\r
2819         proceed. If set to false or "ignore", allow such pushes with no\r
2820         message. Defaults to "warn".\r
2821 </simpara>\r
2822 </listitem>\r
2823 </varlistentry>\r
2824 <varlistentry>\r
2825 <term>\r
2826 receive.denyNonFastForwards\r
2827 </term>\r
2828 <listitem>\r
2829 <simpara>\r
2830         If set to true, git-receive-pack will deny a ref update which is\r
2831         not a fast forward. Use this to prevent such an update via a push,\r
2832         even if that push is forced. This configuration variable is\r
2833         set when initializing a shared repository.\r
2834 </simpara>\r
2835 </listitem>\r
2836 </varlistentry>\r
2837 <varlistentry>\r
2838 <term>\r
2839 remote.&lt;name&gt;.url\r
2840 </term>\r
2841 <listitem>\r
2842 <simpara>\r
2843         The URL of a remote repository.  See <xref linkend="git-fetch(1)"/> or\r
2844         <xref linkend="git-push(1)"/>.\r
2845 </simpara>\r
2846 </listitem>\r
2847 </varlistentry>\r
2848 <varlistentry>\r
2849 <term>\r
2850 remote.&lt;name&gt;.proxy\r
2851 </term>\r
2852 <listitem>\r
2853 <simpara>\r
2854         For remotes that require curl (http, https and ftp), the URL to\r
2855         the proxy to use for that remote.  Set to the empty string to\r
2856         disable proxying for that remote.\r
2857 </simpara>\r
2858 </listitem>\r
2859 </varlistentry>\r
2860 <varlistentry>\r
2861 <term>\r
2862 remote.&lt;name&gt;.fetch\r
2863 </term>\r
2864 <listitem>\r
2865 <simpara>\r
2866         The default set of "refspec" for <xref linkend="git-fetch(1)"/>. See\r
2867         <xref linkend="git-fetch(1)"/>.\r
2868 </simpara>\r
2869 </listitem>\r
2870 </varlistentry>\r
2871 <varlistentry>\r
2872 <term>\r
2873 remote.&lt;name&gt;.push\r
2874 </term>\r
2875 <listitem>\r
2876 <simpara>\r
2877         The default set of "refspec" for <xref linkend="git-push(1)"/>. See\r
2878         <xref linkend="git-push(1)"/>.\r
2879 </simpara>\r
2880 </listitem>\r
2881 </varlistentry>\r
2882 <varlistentry>\r
2883 <term>\r
2884 remote.&lt;name&gt;.mirror\r
2885 </term>\r
2886 <listitem>\r
2887 <simpara>\r
2888         If true, pushing to this remote will automatically behave\r
2889         as if the <literal>--mirror</literal> option was given on the command line.\r
2890 </simpara>\r
2891 </listitem>\r
2892 </varlistentry>\r
2893 <varlistentry>\r
2894 <term>\r
2895 remote.&lt;name&gt;.skipDefaultUpdate\r
2896 </term>\r
2897 <listitem>\r
2898 <simpara>\r
2899         If true, this remote will be skipped by default when updating\r
2900         using the update subcommand of <xref linkend="git-remote(1)"/>.\r
2901 </simpara>\r
2902 </listitem>\r
2903 </varlistentry>\r
2904 <varlistentry>\r
2905 <term>\r
2906 remote.&lt;name&gt;.receivepack\r
2907 </term>\r
2908 <listitem>\r
2909 <simpara>\r
2910         The default program to execute on the remote side when pushing.  See\r
2911         option --receive-pack of <xref linkend="git-push(1)"/>.\r
2912 </simpara>\r
2913 </listitem>\r
2914 </varlistentry>\r
2915 <varlistentry>\r
2916 <term>\r
2917 remote.&lt;name&gt;.uploadpack\r
2918 </term>\r
2919 <listitem>\r
2920 <simpara>\r
2921         The default program to execute on the remote side when fetching.  See\r
2922         option --upload-pack of <xref linkend="git-fetch-pack(1)"/>.\r
2923 </simpara>\r
2924 </listitem>\r
2925 </varlistentry>\r
2926 <varlistentry>\r
2927 <term>\r
2928 remote.&lt;name&gt;.tagopt\r
2929 </term>\r
2930 <listitem>\r
2931 <simpara>\r
2932         Setting this value to --no-tags disables automatic tag following when\r
2933         fetching from remote &lt;name&gt;\r
2934 </simpara>\r
2935 </listitem>\r
2936 </varlistentry>\r
2937 <varlistentry>\r
2938 <term>\r
2939 remote.&lt;name&gt;.vcs\r
2940 </term>\r
2941 <listitem>\r
2942 <simpara>\r
2943         Setting this to a value &lt;vcs&gt; will cause git to interact with\r
2944         the remote with the git-vcs-&lt;vcs&gt; helper.\r
2945 </simpara>\r
2946 </listitem>\r
2947 </varlistentry>\r
2948 <varlistentry>\r
2949 <term>\r
2950 remotes.&lt;group&gt;\r
2951 </term>\r
2952 <listitem>\r
2953 <simpara>\r
2954         The list of remotes which are fetched by "git remote update\r
2955         &lt;group&gt;".  See <xref linkend="git-remote(1)"/>.\r
2956 </simpara>\r
2957 </listitem>\r
2958 </varlistentry>\r
2959 <varlistentry>\r
2960 <term>\r
2961 repack.usedeltabaseoffset\r
2962 </term>\r
2963 <listitem>\r
2964 <simpara>\r
2965         By default, <xref linkend="git-repack(1)"/> creates packs that use\r
2966         delta-base offset. If you need to share your repository with\r
2967         git older than version 1.4.4, either directly or via a dumb\r
2968         protocol such as http, then you need to set this option to\r
2969         "false" and repack. Access from old git versions over the\r
2970         native protocol are unaffected by this option.\r
2971 </simpara>\r
2972 </listitem>\r
2973 </varlistentry>\r
2974 <varlistentry>\r
2975 <term>\r
2976 rerere.autoupdate\r
2977 </term>\r
2978 <listitem>\r
2979 <simpara>\r
2980         When set to true, <literal>git-rerere</literal> updates the index with the\r
2981         resulting contents after it cleanly resolves conflicts using\r
2982         previously recorded resolution.  Defaults to false.\r
2983 </simpara>\r
2984 </listitem>\r
2985 </varlistentry>\r
2986 <varlistentry>\r
2987 <term>\r
2988 rerere.enabled\r
2989 </term>\r
2990 <listitem>\r
2991 <simpara>\r
2992         Activate recording of resolved conflicts, so that identical\r
2993         conflict hunks can be resolved automatically, should they\r
2994         be encountered again.  <xref linkend="git-rerere(1)"/> command is by\r
2995         default enabled if you create <literal>rr-cache</literal> directory under\r
2996         <literal>$GIT_DIR</literal>, but can be disabled by setting this option to false.\r
2997 </simpara>\r
2998 </listitem>\r
2999 </varlistentry>\r
3000 <varlistentry>\r
3001 <term>\r
3002 showbranch.default\r
3003 </term>\r
3004 <listitem>\r
3005 <simpara>\r
3006         The default set of branches for <xref linkend="git-show-branch(1)"/>.\r
3007         See <xref linkend="git-show-branch(1)"/>.\r
3008 </simpara>\r
3009 </listitem>\r
3010 </varlistentry>\r
3011 <varlistentry>\r
3012 <term>\r
3013 status.relativePaths\r
3014 </term>\r
3015 <listitem>\r
3016 <simpara>\r
3017         By default, <xref linkend="git-status(1)"/> shows paths relative to the\r
3018         current directory. Setting this variable to <literal>false</literal> shows paths\r
3019         relative to the repository root (this was the default for git\r
3020         prior to v1.5.4).\r
3021 </simpara>\r
3022 </listitem>\r
3023 </varlistentry>\r
3024 <varlistentry>\r
3025 <term>\r
3026 status.showUntrackedFiles\r
3027 </term>\r
3028 <listitem>\r
3029 <simpara>\r
3030         By default, <xref linkend="git-status(1)"/> and <xref linkend="git-commit(1)"/> show\r
3031         files which are not currently tracked by Git. Directories which\r
3032         contain only untracked files, are shown with the directory name\r
3033         only. Showing untracked files means that Git needs to lstat() all\r
3034         all the files in the whole repository, which might be slow on some\r
3035         systems. So, this variable controls how the commands displays\r
3036         the untracked files. Possible values are:\r
3037 </simpara>\r
3038 <itemizedlist>\r
3039 <listitem>\r
3040 <simpara>\r
3041 <emphasis>no</emphasis>     - Show no untracked files\r
3042 </simpara>\r
3043 </listitem>\r
3044 <listitem>\r
3045 <simpara>\r
3046 <emphasis>normal</emphasis> - Shows untracked files and directories\r
3047 </simpara>\r
3048 </listitem>\r
3049 <listitem>\r
3050 <simpara>\r
3051 <emphasis>all</emphasis>    - Shows also individual files in untracked directories.\r
3052 </simpara>\r
3053 </listitem>\r
3054 </itemizedlist>\r
3055 <simpara>If this variable is not specified, it defaults to <emphasis>normal</emphasis>.\r
3056 This variable can be overridden with the -u|--untracked-files option\r
3057 of <xref linkend="git-status(1)"/> and <xref linkend="git-commit(1)"/>.</simpara>\r
3058 </listitem>\r
3059 </varlistentry>\r
3060 <varlistentry>\r
3061 <term>\r
3062 tar.umask\r
3063 </term>\r
3064 <listitem>\r
3065 <simpara>\r
3066         This variable can be used to restrict the permission bits of\r
3067         tar archive entries.  The default is 0002, which turns off the\r
3068         world write bit.  The special value "user" indicates that the\r
3069         archiving user&#8217;s umask will be used instead.  See umask(2) and\r
3070         <xref linkend="git-archive(1)"/>.\r
3071 </simpara>\r
3072 </listitem>\r
3073 </varlistentry>\r
3074 <varlistentry>\r
3075 <term>\r
3076 transfer.unpackLimit\r
3077 </term>\r
3078 <listitem>\r
3079 <simpara>\r
3080         When <literal>fetch.unpackLimit</literal> or <literal>receive.unpackLimit</literal> are\r
3081         not set, the value of this variable is used instead.\r
3082         The default value is 100.\r
3083 </simpara>\r
3084 </listitem>\r
3085 </varlistentry>\r
3086 <varlistentry>\r
3087 <term>\r
3088 url.&lt;base&gt;.insteadOf\r
3089 </term>\r
3090 <listitem>\r
3091 <simpara>\r
3092         Any URL that starts with this value will be rewritten to\r
3093         start, instead, with &lt;base&gt;. In cases where some site serves a\r
3094         large number of repositories, and serves them with multiple\r
3095         access methods, and some users need to use different access\r
3096         methods, this feature allows people to specify any of the\r
3097         equivalent URLs and have git automatically rewrite the URL to\r
3098         the best alternative for the particular user, even for a\r
3099         never-before-seen repository on the site.  When more than one\r
3100         insteadOf strings match a given URL, the longest match is used.\r
3101 </simpara>\r
3102 </listitem>\r
3103 </varlistentry>\r
3104 <varlistentry>\r
3105 <term>\r
3106 user.email\r
3107 </term>\r
3108 <listitem>\r
3109 <simpara>\r
3110         Your email address to be recorded in any newly created commits.\r
3111         Can be overridden by the <emphasis>GIT_AUTHOR_EMAIL</emphasis>, <emphasis>GIT_COMMITTER_EMAIL</emphasis>, and\r
3112         <emphasis>EMAIL</emphasis> environment variables.  See <xref linkend="git-commit-tree(1)"/>.\r
3113 </simpara>\r
3114 </listitem>\r
3115 </varlistentry>\r
3116 <varlistentry>\r
3117 <term>\r
3118 user.name\r
3119 </term>\r
3120 <listitem>\r
3121 <simpara>\r
3122         Your full name to be recorded in any newly created commits.\r
3123         Can be overridden by the <emphasis>GIT_AUTHOR_NAME</emphasis> and <emphasis>GIT_COMMITTER_NAME</emphasis>\r
3124         environment variables.  See <xref linkend="git-commit-tree(1)"/>.\r
3125 </simpara>\r
3126 </listitem>\r
3127 </varlistentry>\r
3128 <varlistentry>\r
3129 <term>\r
3130 user.signingkey\r
3131 </term>\r
3132 <listitem>\r
3133 <simpara>\r
3134         If <xref linkend="git-tag(1)"/> is not selecting the key you want it to\r
3135         automatically when creating a signed tag, you can override the\r
3136         default selection with this variable.  This option is passed\r
3137         unchanged to gpg&#8217;s --local-user parameter, so you may specify a key\r
3138         using any method that gpg supports.\r
3139 </simpara>\r
3140 </listitem>\r
3141 </varlistentry>\r
3142 <varlistentry>\r
3143 <term>\r
3144 web.browser\r
3145 </term>\r
3146 <listitem>\r
3147 <simpara>\r
3148         Specify a web browser that may be used by some commands.\r
3149         Currently only <xref linkend="git-instaweb(1)"/> and <xref linkend="git-help(1)"/>\r
3150         may use it.\r
3151 </simpara>\r
3152 </listitem>\r
3153 </varlistentry>\r
3154 </variablelist>\r
3155 </simplesect>\r
3156 </simplesect>\r
3157 <simplesect id="_author">\r
3158 <title>Author</title>\r
3159 <simpara>Written by Johannes Schindelin &lt;<ulink url="mailto:Johannes.Schindelin@gmx.de">Johannes.Schindelin@gmx.de</ulink>&gt;</simpara>\r
3160 </simplesect>\r
3161 <simplesect id="_documentation">\r
3162 <title>Documentation</title>\r
3163 <simpara>Documentation by Johannes Schindelin, Petr Baudis and the git-list &lt;<ulink url="mailto:git@vger.kernel.org">git@vger.kernel.org</ulink>&gt;.</simpara>\r
3164 </simplesect>\r
3165 <simplesect id="_git">\r
3166 <title>GIT</title>\r
3167 <simpara>Part of the <xref linkend="git(1)"/> suite</simpara>\r
3168 </simplesect>\r
3169 </article>\r