Autogenerated HTML docs for v1.7.2-rc2-13-g449ae
[git/jnareb-git.git] / git-config.html
blobc1c793972624dc9c3b2276f35c993036fac35b6f
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <meta name="generator" content="AsciiDoc 8.2.5" />
7 <style type="text/css">
8 /* Debug borders */
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11 border: 1px solid red;
15 body {
16 margin: 1em 5% 1em 5%;
19 a {
20 color: blue;
21 text-decoration: underline;
23 a:visited {
24 color: fuchsia;
27 em {
28 font-style: italic;
31 strong {
32 font-weight: bold;
35 tt {
36 color: navy;
39 h1, h2, h3, h4, h5, h6 {
40 color: #527bbd;
41 font-family: sans-serif;
42 margin-top: 1.2em;
43 margin-bottom: 0.5em;
44 line-height: 1.3;
47 h1, h2, h3 {
48 border-bottom: 2px solid silver;
50 h2 {
51 padding-top: 0.5em;
53 h3 {
54 float: left;
56 h3 + * {
57 clear: left;
60 div.sectionbody {
61 font-family: serif;
62 margin-left: 0;
65 hr {
66 border: 1px solid silver;
69 p {
70 margin-top: 0.5em;
71 margin-bottom: 0.5em;
74 pre {
75 padding: 0;
76 margin: 0;
79 span#author {
80 color: #527bbd;
81 font-family: sans-serif;
82 font-weight: bold;
83 font-size: 1.1em;
85 span#email {
87 span#revision {
88 font-family: sans-serif;
91 div#footer {
92 font-family: sans-serif;
93 font-size: small;
94 border-top: 2px solid silver;
95 padding-top: 0.5em;
96 margin-top: 4.0em;
98 div#footer-text {
99 float: left;
100 padding-bottom: 0.5em;
102 div#footer-badges {
103 float: right;
104 padding-bottom: 0.5em;
107 div#preamble,
108 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
109 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
110 div.admonitionblock {
111 margin-right: 10%;
112 margin-top: 1.5em;
113 margin-bottom: 1.5em;
115 div.admonitionblock {
116 margin-top: 2.5em;
117 margin-bottom: 2.5em;
120 div.content { /* Block element content. */
121 padding: 0;
124 /* Block element titles. */
125 div.title, caption.title {
126 font-family: sans-serif;
127 font-weight: bold;
128 text-align: left;
129 margin-top: 1.0em;
130 margin-bottom: 0.5em;
132 div.title + * {
133 margin-top: 0;
136 td div.title:first-child {
137 margin-top: 0.0em;
139 div.content div.title:first-child {
140 margin-top: 0.0em;
142 div.content + div.title {
143 margin-top: 0.0em;
146 div.sidebarblock > div.content {
147 background: #ffffee;
148 border: 1px solid silver;
149 padding: 0.5em;
152 div.listingblock {
153 margin-right: 0%;
155 div.listingblock > div.content {
156 border: 1px solid silver;
157 background: #f4f4f4;
158 padding: 0.5em;
161 div.quoteblock > div.content {
162 padding-left: 2.0em;
165 div.attribution {
166 text-align: right;
168 div.verseblock + div.attribution {
169 text-align: left;
172 div.admonitionblock .icon {
173 vertical-align: top;
174 font-size: 1.1em;
175 font-weight: bold;
176 text-decoration: underline;
177 color: #527bbd;
178 padding-right: 0.5em;
180 div.admonitionblock td.content {
181 padding-left: 0.5em;
182 border-left: 2px solid silver;
185 div.exampleblock > div.content {
186 border-left: 2px solid silver;
187 padding: 0.5em;
190 div.verseblock div.content {
191 white-space: pre;
194 div.imageblock div.content { padding-left: 0; }
195 div.imageblock img { border: 1px solid silver; }
196 span.image img { border-style: none; }
198 dl {
199 margin-top: 0.8em;
200 margin-bottom: 0.8em;
202 dt {
203 margin-top: 0.5em;
204 margin-bottom: 0;
205 font-style: italic;
207 dd > *:first-child {
208 margin-top: 0;
211 ul, ol {
212 list-style-position: outside;
214 div.olist2 ol {
215 list-style-type: lower-alpha;
218 div.tableblock > table {
219 border: 3px solid #527bbd;
221 thead {
222 font-family: sans-serif;
223 font-weight: bold;
225 tfoot {
226 font-weight: bold;
229 div.hlist {
230 margin-top: 0.8em;
231 margin-bottom: 0.8em;
233 div.hlist td {
234 padding-bottom: 5px;
236 td.hlist1 {
237 vertical-align: top;
238 font-style: italic;
239 padding-right: 0.8em;
241 td.hlist2 {
242 vertical-align: top;
245 @media print {
246 div#footer-badges { display: none; }
249 div#toctitle {
250 color: #527bbd;
251 font-family: sans-serif;
252 font-size: 1.1em;
253 font-weight: bold;
254 margin-top: 1.0em;
255 margin-bottom: 0.1em;
258 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
259 margin-top: 0;
260 margin-bottom: 0;
262 div.toclevel2 {
263 margin-left: 2em;
264 font-size: 0.9em;
266 div.toclevel3 {
267 margin-left: 4em;
268 font-size: 0.9em;
270 div.toclevel4 {
271 margin-left: 6em;
272 font-size: 0.9em;
274 include1::./stylesheets/xhtml11-manpage.css[]
275 /* Workarounds for IE6's broken and incomplete CSS2. */
277 div.sidebar-content {
278 background: #ffffee;
279 border: 1px solid silver;
280 padding: 0.5em;
282 div.sidebar-title, div.image-title {
283 font-family: sans-serif;
284 font-weight: bold;
285 margin-top: 0.0em;
286 margin-bottom: 0.5em;
289 div.listingblock div.content {
290 border: 1px solid silver;
291 background: #f4f4f4;
292 padding: 0.5em;
295 div.quoteblock-content {
296 padding-left: 2.0em;
299 div.exampleblock-content {
300 border-left: 2px solid silver;
301 padding-left: 0.5em;
304 /* IE6 sets dynamically generated links as visited. */
305 div#toc a:visited { color: blue; }
306 </style>
307 <title>git-config(1)</title>
308 </head>
309 <body>
310 <div id="header">
311 <h1>
312 git-config(1) Manual Page
313 </h1>
314 <h2>NAME</h2>
315 <div class="sectionbody">
316 <p>git-config -
317 Get and set repository or global options
318 </p>
319 </div>
320 </div>
321 <h2>SYNOPSIS</h2>
322 <div class="sectionbody">
323 <div class="verseblock">
324 <div class="content"><em>git config</em> [&lt;file-option&gt;] [type] [-z|--null] name [value [value_regex]]
325 <em>git config</em> [&lt;file-option&gt;] [type] --add name value
326 <em>git config</em> [&lt;file-option&gt;] [type] --replace-all name value [value_regex]
327 <em>git config</em> [&lt;file-option&gt;] [type] [-z|--null] --get name [value_regex]
328 <em>git config</em> [&lt;file-option&gt;] [type] [-z|--null] --get-all name [value_regex]
329 <em>git config</em> [&lt;file-option&gt;] [type] [-z|--null] --get-regexp name_regex [value_regex]
330 <em>git config</em> [&lt;file-option&gt;] --unset name [value_regex]
331 <em>git config</em> [&lt;file-option&gt;] --unset-all name [value_regex]
332 <em>git config</em> [&lt;file-option&gt;] --rename-section old_name new_name
333 <em>git config</em> [&lt;file-option&gt;] --remove-section name
334 <em>git config</em> [&lt;file-option&gt;] [-z|--null] -l | --list
335 <em>git config</em> [&lt;file-option&gt;] --get-color name [default]
336 <em>git config</em> [&lt;file-option&gt;] --get-colorbool name [stdout-is-tty]
337 <em>git config</em> [&lt;file-option&gt;] -e | --edit</div></div>
338 </div>
339 <h2 id="_description">DESCRIPTION</h2>
340 <div class="sectionbody">
341 <div class="para"><p>You can query/set/replace/unset options with this command. The name is
342 actually the section and the key separated by a dot, and the value will be
343 escaped.</p></div>
344 <div class="para"><p>Multiple lines can be added to an option by using the <em>--add</em> option.
345 If you want to update or unset an option which can occur on multiple
346 lines, a POSIX regexp <tt>value_regex</tt> needs to be given. Only the
347 existing values that match the regexp are updated or unset. If
348 you want to handle the lines that do <strong>not</strong> match the regex, just
349 prepend a single exclamation mark in front (see also <a href="#EXAMPLES">[EXAMPLES]</a>).</p></div>
350 <div class="para"><p>The type specifier can be either <em>--int</em> or <em>--bool</em>, to make
351 <em>git config</em> ensure that the variable(s) are of the given type and
352 convert the value to the canonical form (simple decimal number for int,
353 a "true" or "false" string for bool), or <em>--path</em>, which does some
354 path expansion (see <em>--path</em> below). If no type specifier is passed, no
355 checks or transformations are performed on the value.</p></div>
356 <div class="para"><p>The file-option can be one of <em>--system</em>, <em>--global</em> or <em>--file</em>
357 which specify where the values will be read from or written to.
358 The default is to assume the config file of the current repository,
359 .git/config unless defined otherwise with GIT_DIR and GIT_CONFIG
360 (see <a href="#FILES">[FILES]</a>).</p></div>
361 <div class="para"><p>This command will fail if:</p></div>
362 <div class="olist"><ol>
363 <li>
365 The config file is invalid,
366 </p>
367 </li>
368 <li>
370 Can not write to the config file,
371 </p>
372 </li>
373 <li>
375 no section was provided,
376 </p>
377 </li>
378 <li>
380 the section or key is invalid,
381 </p>
382 </li>
383 <li>
385 you try to unset an option which does not exist,
386 </p>
387 </li>
388 <li>
390 you try to unset/set an option for which multiple lines match, or
391 </p>
392 </li>
393 <li>
395 you use <em>--global</em> option without $HOME being properly set.
396 </p>
397 </li>
398 </ol></div>
399 </div>
400 <h2 id="_options">OPTIONS</h2>
401 <div class="sectionbody">
402 <div class="vlist"><dl>
403 <dt>
404 --replace-all
405 </dt>
406 <dd>
408 Default behavior is to replace at most one line. This replaces
409 all lines matching the key (and optionally the value_regex).
410 </p>
411 </dd>
412 <dt>
413 --add
414 </dt>
415 <dd>
417 Adds a new line to the option without altering any existing
418 values. This is the same as providing <em>^$</em> as the value_regex
419 in <tt>--replace-all</tt>.
420 </p>
421 </dd>
422 <dt>
423 --get
424 </dt>
425 <dd>
427 Get the value for a given key (optionally filtered by a regex
428 matching the value). Returns error code 1 if the key was not
429 found and error code 2 if multiple key values were found.
430 </p>
431 </dd>
432 <dt>
433 --get-all
434 </dt>
435 <dd>
437 Like get, but does not fail if the number of values for the key
438 is not exactly one.
439 </p>
440 </dd>
441 <dt>
442 --get-regexp
443 </dt>
444 <dd>
446 Like --get-all, but interprets the name as a regular expression.
447 Also outputs the key names.
448 </p>
449 </dd>
450 <dt>
451 --global
452 </dt>
453 <dd>
455 For writing options: write to global ~/.gitconfig file rather than
456 the repository .git/config.
457 </p>
458 <div class="para"><p>For reading options: read only from global ~/.gitconfig rather than
459 from all available files.</p></div>
460 <div class="para"><p>See also <a href="#FILES">[FILES]</a>.</p></div>
461 </dd>
462 <dt>
463 --system
464 </dt>
465 <dd>
467 For writing options: write to system-wide $(prefix)/etc/gitconfig
468 rather than the repository .git/config.
469 </p>
470 <div class="para"><p>For reading options: read only from system-wide $(prefix)/etc/gitconfig
471 rather than from all available files.</p></div>
472 <div class="para"><p>See also <a href="#FILES">[FILES]</a>.</p></div>
473 </dd>
474 <dt>
475 -f config-file
476 </dt>
477 <dt>
478 --file config-file
479 </dt>
480 <dd>
482 Use the given config file instead of the one specified by GIT_CONFIG.
483 </p>
484 </dd>
485 <dt>
486 --remove-section
487 </dt>
488 <dd>
490 Remove the given section from the configuration file.
491 </p>
492 </dd>
493 <dt>
494 --rename-section
495 </dt>
496 <dd>
498 Rename the given section to a new name.
499 </p>
500 </dd>
501 <dt>
502 --unset
503 </dt>
504 <dd>
506 Remove the line matching the key from config file.
507 </p>
508 </dd>
509 <dt>
510 --unset-all
511 </dt>
512 <dd>
514 Remove all lines matching the key from config file.
515 </p>
516 </dd>
517 <dt>
519 </dt>
520 <dt>
521 --list
522 </dt>
523 <dd>
525 List all variables set in config file.
526 </p>
527 </dd>
528 <dt>
529 --bool
530 </dt>
531 <dd>
533 <em>git config</em> will ensure that the output is "true" or "false"
534 </p>
535 </dd>
536 <dt>
537 --int
538 </dt>
539 <dd>
541 <em>git config</em> will ensure that the output is a simple
542 decimal number. An optional value suffix of <em>k</em>, <em>m</em>, or <em>g</em>
543 in the config file will cause the value to be multiplied
544 by 1024, 1048576, or 1073741824 prior to output.
545 </p>
546 </dd>
547 <dt>
548 --bool-or-int
549 </dt>
550 <dd>
552 <em>git config</em> will ensure that the output matches the format of
553 either --bool or --int, as described above.
554 </p>
555 </dd>
556 <dt>
557 --path
558 </dt>
559 <dd>
561 <em>git-config</em> will expand leading <em>&#126;</em> to the value of
562 <em>$HOME</em>, and <em>&#126;user</em> to the home directory for the
563 specified user. This option has no effect when setting the
564 value (but you can use <em>git config bla &#126;/</em> from the
565 command line to let your shell do the expansion).
566 </p>
567 </dd>
568 <dt>
570 </dt>
571 <dt>
572 --null
573 </dt>
574 <dd>
576 For all options that output values and/or keys, always
577 end values with the null character (instead of a
578 newline). Use newline instead as a delimiter between
579 key and value. This allows for secure parsing of the
580 output without getting confused e.g. by values that
581 contain line breaks.
582 </p>
583 </dd>
584 <dt>
585 --get-colorbool name [stdout-is-tty]
586 </dt>
587 <dd>
589 Find the color setting for <tt>name</tt> (e.g. <tt>color.diff</tt>) and output
590 "true" or "false". <tt>stdout-is-tty</tt> should be either "true" or
591 "false", and is taken into account when configuration says
592 "auto". If <tt>stdout-is-tty</tt> is missing, then checks the standard
593 output of the command itself, and exits with status 0 if color
594 is to be used, or exits with status 1 otherwise.
595 When the color setting for <tt>name</tt> is undefined, the command uses
596 <tt>color.ui</tt> as fallback.
597 </p>
598 </dd>
599 <dt>
600 --get-color name [default]
601 </dt>
602 <dd>
604 Find the color configured for <tt>name</tt> (e.g. <tt>color.diff.new</tt>) and
605 output it as the ANSI color escape sequence to the standard
606 output. The optional <tt>default</tt> parameter is used instead, if
607 there is no color configured for <tt>name</tt>.
608 </p>
609 </dd>
610 <dt>
612 </dt>
613 <dt>
614 --edit
615 </dt>
616 <dd>
618 Opens an editor to modify the specified config file; either
619 <em>--system</em>, <em>--global</em>, or repository (default).
620 </p>
621 </dd>
622 </dl></div>
623 </div>
624 <h2 id="FILES">FILES</h2>
625 <div class="sectionbody">
626 <div class="para"><p>If not set explicitly with <em>--file</em>, there are three files where
627 <em>git config</em> will search for configuration options:</p></div>
628 <div class="vlist"><dl>
629 <dt>
630 $GIT_DIR/config
631 </dt>
632 <dd>
634 Repository specific configuration file. (The filename is
635 of course relative to the repository root, not the working
636 directory.)
637 </p>
638 </dd>
639 <dt>
640 ~/.gitconfig
641 </dt>
642 <dd>
644 User-specific configuration file. Also called "global"
645 configuration file.
646 </p>
647 </dd>
648 <dt>
649 $(prefix)/etc/gitconfig
650 </dt>
651 <dd>
653 System-wide configuration file.
654 </p>
655 </dd>
656 </dl></div>
657 <div class="para"><p>If no further options are given, all reading options will read all of these
658 files that are available. If the global or the system-wide configuration
659 file are not available they will be ignored. If the repository configuration
660 file is not available or readable, <em>git config</em> will exit with a non-zero
661 error code. However, in neither case will an error message be issued.</p></div>
662 <div class="para"><p>All writing options will per default write to the repository specific
663 configuration file. Note that this also affects options like <em>--replace-all</em>
664 and <em>--unset</em>. <strong><em>git config</em> will only ever change one file at a time</strong>.</p></div>
665 <div class="para"><p>You can override these rules either by command line options or by environment
666 variables. The <em>--global</em> and the <em>--system</em> options will limit the file used
667 to the global or system-wide file respectively. The GIT_CONFIG environment
668 variable has a similar effect, but you can specify any filename you want.</p></div>
669 </div>
670 <h2 id="_environment">ENVIRONMENT</h2>
671 <div class="sectionbody">
672 <div class="vlist"><dl>
673 <dt>
674 GIT_CONFIG
675 </dt>
676 <dd>
678 Take the configuration from the given file instead of .git/config.
679 Using the "--global" option forces this to ~/.gitconfig. Using the
680 "--system" option forces this to $(prefix)/etc/gitconfig.
681 </p>
682 </dd>
683 </dl></div>
684 <div class="para"><p>See also <a href="#FILES">[FILES]</a>.</p></div>
685 </div>
686 <h2 id="EXAMPLES">EXAMPLES</h2>
687 <div class="sectionbody">
688 <div class="para"><p>Given a .git/config like this:</p></div>
689 <div class="literalblock">
690 <div class="content">
691 <pre><tt>#
692 # This is the config file, and
693 # a '#' or ';' character indicates
694 # a comment
695 #</tt></pre>
696 </div></div>
697 <div class="literalblock">
698 <div class="content">
699 <pre><tt>; core variables
700 [core]
701 ; Don't trust file modes
702 filemode = false</tt></pre>
703 </div></div>
704 <div class="literalblock">
705 <div class="content">
706 <pre><tt>; Our diff algorithm
707 [diff]
708 external = /usr/local/bin/diff-wrapper
709 renames = true</tt></pre>
710 </div></div>
711 <div class="literalblock">
712 <div class="content">
713 <pre><tt>; Proxy settings
714 [core]
715 gitproxy="proxy-command" for kernel.org
716 gitproxy=default-proxy ; for all the rest</tt></pre>
717 </div></div>
718 <div class="para"><p>you can set the filemode to true with</p></div>
719 <div class="listingblock">
720 <div class="content">
721 <pre><tt>% git config core.filemode true</tt></pre>
722 </div></div>
723 <div class="para"><p>The hypothetical proxy command entries actually have a postfix to discern
724 what URL they apply to. Here is how to change the entry for kernel.org
725 to "ssh".</p></div>
726 <div class="listingblock">
727 <div class="content">
728 <pre><tt>% git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</tt></pre>
729 </div></div>
730 <div class="para"><p>This makes sure that only the key/value pair for kernel.org is replaced.</p></div>
731 <div class="para"><p>To delete the entry for renames, do</p></div>
732 <div class="listingblock">
733 <div class="content">
734 <pre><tt>% git config --unset diff.renames</tt></pre>
735 </div></div>
736 <div class="para"><p>If you want to delete an entry for a multivar (like core.gitproxy above),
737 you have to provide a regex matching the value of exactly one line.</p></div>
738 <div class="para"><p>To query the value for a given key, do</p></div>
739 <div class="listingblock">
740 <div class="content">
741 <pre><tt>% git config --get core.filemode</tt></pre>
742 </div></div>
743 <div class="para"><p>or</p></div>
744 <div class="listingblock">
745 <div class="content">
746 <pre><tt>% git config core.filemode</tt></pre>
747 </div></div>
748 <div class="para"><p>or, to query a multivar:</p></div>
749 <div class="listingblock">
750 <div class="content">
751 <pre><tt>% git config --get core.gitproxy "for kernel.org$"</tt></pre>
752 </div></div>
753 <div class="para"><p>If you want to know all the values for a multivar, do:</p></div>
754 <div class="listingblock">
755 <div class="content">
756 <pre><tt>% git config --get-all core.gitproxy</tt></pre>
757 </div></div>
758 <div class="para"><p>If you like to live dangerously, you can replace <strong>all</strong> core.gitproxy by a
759 new one with</p></div>
760 <div class="listingblock">
761 <div class="content">
762 <pre><tt>% git config --replace-all core.gitproxy ssh</tt></pre>
763 </div></div>
764 <div class="para"><p>However, if you really only want to replace the line for the default proxy,
765 i.e. the one without a "for &#8230;" postfix, do something like this:</p></div>
766 <div class="listingblock">
767 <div class="content">
768 <pre><tt>% git config core.gitproxy ssh '! for '</tt></pre>
769 </div></div>
770 <div class="para"><p>To actually match only values with an exclamation mark, you have to</p></div>
771 <div class="listingblock">
772 <div class="content">
773 <pre><tt>% git config section.key value '[!]'</tt></pre>
774 </div></div>
775 <div class="para"><p>To add a new proxy, without altering any of the existing ones, use</p></div>
776 <div class="listingblock">
777 <div class="content">
778 <pre><tt>% git config core.gitproxy '"proxy-command" for example.com'</tt></pre>
779 </div></div>
780 <div class="para"><p>An example to use customized color from the configuration in your
781 script:</p></div>
782 <div class="listingblock">
783 <div class="content">
784 <pre><tt>#!/bin/sh
785 WS=$(git config --get-color color.diff.whitespace "blue reverse")
786 RESET=$(git config --get-color "" "reset")
787 echo "${WS}your whitespace color or blue reverse${RESET}"</tt></pre>
788 </div></div>
789 </div>
790 <h2 id="_configuration_file">CONFIGURATION FILE</h2>
791 <div class="sectionbody">
792 <div class="para"><p>The git configuration file contains a number of variables that affect
793 the git command's behavior. The <tt>.git/config</tt> file in each repository
794 is used to store the configuration for that repository, and
795 <tt>$HOME/.gitconfig</tt> is used to store a per-user configuration as
796 fallback values for the <tt>.git/config</tt> file. The file <tt>/etc/gitconfig</tt>
797 can be used to store a system-wide default configuration.</p></div>
798 <div class="para"><p>The configuration variables are used by both the git plumbing
799 and the porcelains. The variables are divided into sections, wherein
800 the fully qualified variable name of the variable itself is the last
801 dot-separated segment and the section name is everything before the last
802 dot. The variable names are case-insensitive and only alphanumeric
803 characters are allowed. Some variables may appear multiple times.</p></div>
804 <h3 id="_syntax">Syntax</h3><div style="clear:left"></div>
805 <div class="para"><p>The syntax is fairly flexible and permissive; whitespaces are mostly
806 ignored. The <em>#</em> and <em>;</em> characters begin comments to the end of line,
807 blank lines are ignored.</p></div>
808 <div class="para"><p>The file consists of sections and variables. A section begins with
809 the name of the section in square brackets and continues until the next
810 section begins. Section names are not case sensitive. Only alphanumeric
811 characters, <tt>-</tt> and <tt>.</tt> are allowed in section names. Each variable
812 must belong to some section, which means that there must be a section
813 header before the first setting of a variable.</p></div>
814 <div class="para"><p>Sections can be further divided into subsections. To begin a subsection
815 put its name in double quotes, separated by space from the section name,
816 in the section header, like in the example below:</p></div>
817 <div class="listingblock">
818 <div class="content">
819 <pre><tt> [section "subsection"]
820 </tt></pre>
821 </div></div>
822 <div class="para"><p>Subsection names are case sensitive and can contain any characters except
823 newline (doublequote <tt>"</tt> and backslash have to be escaped as <tt>\"</tt> and <tt>\\</tt>,
824 respectively). Section headers cannot span multiple
825 lines. Variables may belong directly to a section or to a given subsection.
826 You can have <tt>[section]</tt> if you have <tt>[section "subsection"]</tt>, but you
827 don't need to.</p></div>
828 <div class="para"><p>There is also a case insensitive alternative <tt>[section.subsection]</tt> syntax.
829 In this syntax, subsection names follow the same restrictions as for section
830 names.</p></div>
831 <div class="para"><p>All the other lines (and the remainder of the line after the section
832 header) are recognized as setting variables, in the form
833 <em>name = value</em>. If there is no equal sign on the line, the entire line
834 is taken as <em>name</em> and the variable is recognized as boolean "true".
835 The variable names are case-insensitive and only alphanumeric
836 characters and <tt>-</tt> are allowed. There can be more than one value
837 for a given variable; we say then that variable is multivalued.</p></div>
838 <div class="para"><p>Leading and trailing whitespace in a variable value is discarded.
839 Internal whitespace within a variable value is retained verbatim.</p></div>
840 <div class="para"><p>The values following the equals sign in variable assign are all either
841 a string, an integer, or a boolean. Boolean values may be given as yes/no,
842 0/1, true/false or on/off. Case is not significant in boolean values, when
843 converting value to the canonical form using <em>--bool</em> type specifier;
844 <em>git config</em> will ensure that the output is "true" or "false".</p></div>
845 <div class="para"><p>String values may be entirely or partially enclosed in double quotes.
846 You need to enclose variable values in double quotes if you want to
847 preserve leading or trailing whitespace, or if the variable value contains
848 comment characters (i.e. it contains <em>#</em> or <em>;</em>).
849 Double quote <tt>"</tt> and backslash <tt>\</tt> characters in variable values must
850 be escaped: use <tt>\"</tt> for <tt>"</tt> and <tt>\\</tt> for <tt>\</tt>.</p></div>
851 <div class="para"><p>The following escape sequences (beside <tt>\"</tt> and <tt>\\</tt>) are recognized:
852 <tt>\n</tt> for newline character (NL), <tt>\t</tt> for horizontal tabulation (HT, TAB)
853 and <tt>\b</tt> for backspace (BS). No other char escape sequence, nor octal
854 char sequences are valid.</p></div>
855 <div class="para"><p>Variable values ending in a <tt>\</tt> are continued on the next line in the
856 customary UNIX fashion.</p></div>
857 <div class="para"><p>Some variables may require a special value format.</p></div>
858 <h3 id="_example">Example</h3><div style="clear:left"></div>
859 <div class="literalblock">
860 <div class="content">
861 <pre><tt># Core variables
862 [core]
863 ; Don't trust file modes
864 filemode = false</tt></pre>
865 </div></div>
866 <div class="literalblock">
867 <div class="content">
868 <pre><tt># Our diff algorithm
869 [diff]
870 external = /usr/local/bin/diff-wrapper
871 renames = true</tt></pre>
872 </div></div>
873 <div class="literalblock">
874 <div class="content">
875 <pre><tt>[branch "devel"]
876 remote = origin
877 merge = refs/heads/devel</tt></pre>
878 </div></div>
879 <div class="literalblock">
880 <div class="content">
881 <pre><tt># Proxy settings
882 [core]
883 gitProxy="ssh" for "kernel.org"
884 gitProxy=default-proxy ; for the rest</tt></pre>
885 </div></div>
886 <h3 id="_variables">Variables</h3><div style="clear:left"></div>
887 <div class="para"><p>Note that this list is non-comprehensive and not necessarily complete.
888 For command-specific variables, you will find a more detailed description
889 in the appropriate manual page. You will find a description of non-core
890 porcelain configuration variables in the respective porcelain documentation.</p></div>
891 <div class="vlist"><dl>
892 <dt>
893 advice.*
894 </dt>
895 <dd>
897 When set to <em>true</em>, display the given optional help message.
898 When set to <em>false</em>, do not display. The configuration variables
899 are:
900 </p>
901 <div class="vlist"><dl>
902 <dt>
903 pushNonFastForward
904 </dt>
905 <dd>
907 Advice shown when <a href="git-push.html">git-push(1)</a> refuses
908 non-fast-forward refs. Default: true.
909 </p>
910 </dd>
911 <dt>
912 statusHints
913 </dt>
914 <dd>
916 Directions on how to stage/unstage/add shown in the
917 output of <a href="git-status.html">git-status(1)</a> and the template shown
918 when writing commit messages. Default: true.
919 </p>
920 </dd>
921 <dt>
922 commitBeforeMerge
923 </dt>
924 <dd>
926 Advice shown when <a href="git-merge.html">git-merge(1)</a> refuses to
927 merge to avoid overwritting local changes.
928 Default: true.
929 </p>
930 </dd>
931 <dt>
932 resolveConflict
933 </dt>
934 <dd>
936 Advices shown by various commands when conflicts
937 prevent the operation from being performed.
938 Default: true.
939 </p>
940 </dd>
941 <dt>
942 implicitIdentity
943 </dt>
944 <dd>
946 Advice on how to set your identity configuration when
947 your information is guessed from the system username and
948 domain name. Default: true.
949 </p>
950 </dd>
951 <dt>
952 detachedHead
953 </dt>
954 <dd>
956 Advice shown when you used <a href=":git-checkout.html">:git-checkout(1)</a> to
957 move to the detach HEAD state, to instruct how to create
958 a local branch after the fact. Default: true.
959 </p>
960 </dd>
961 </dl></div>
962 </dd>
963 <dt>
964 core.fileMode
965 </dt>
966 <dd>
968 If false, the executable bit differences between the index and
969 the working copy are ignored; useful on broken filesystems like FAT.
970 See <a href="git-update-index.html">git-update-index(1)</a>.
971 </p>
972 <div class="para"><p>The default is true, except <a href="git-clone.html">git-clone(1)</a> or <a href="git-init.html">git-init(1)</a>
973 will probe and set core.fileMode false if appropriate when the
974 repository is created.</p></div>
975 </dd>
976 <dt>
977 core.ignoreCygwinFSTricks
978 </dt>
979 <dd>
981 This option is only used by Cygwin implementation of Git. If false,
982 the Cygwin stat() and lstat() functions are used. This may be useful
983 if your repository consists of a few separate directories joined in
984 one hierarchy using Cygwin mount. If true, Git uses native Win32 API
985 whenever it is possible and falls back to Cygwin functions only to
986 handle symbol links. The native mode is more than twice faster than
987 normal Cygwin l/stat() functions. True by default, unless core.filemode
988 is true, in which case ignoreCygwinFSTricks is ignored as Cygwin's
989 POSIX emulation is required to support core.filemode.
990 </p>
991 </dd>
992 <dt>
993 core.ignorecase
994 </dt>
995 <dd>
997 If true, this option enables various workarounds to enable
998 git to work better on filesystems that are not case sensitive,
999 like FAT. For example, if a directory listing finds
1000 "makefile" when git expects "Makefile", git will assume
1001 it is really the same file, and continue to remember it as
1002 "Makefile".
1003 </p>
1004 <div class="para"><p>The default is false, except <a href="git-clone.html">git-clone(1)</a> or <a href="git-init.html">git-init(1)</a>
1005 will probe and set core.ignorecase true if appropriate when the repository
1006 is created.</p></div>
1007 </dd>
1008 <dt>
1009 core.trustctime
1010 </dt>
1011 <dd>
1013 If false, the ctime differences between the index and the
1014 working copy are ignored; useful when the inode change time
1015 is regularly modified by something outside Git (file system
1016 crawlers and some backup systems).
1017 See <a href="git-update-index.html">git-update-index(1)</a>. True by default.
1018 </p>
1019 </dd>
1020 <dt>
1021 core.quotepath
1022 </dt>
1023 <dd>
1025 The commands that output paths (e.g. <em>ls-files</em>,
1026 <em>diff</em>), when not given the <tt>-z</tt> option, will quote
1027 "unusual" characters in the pathname by enclosing the
1028 pathname in a double-quote pair and with backslashes the
1029 same way strings in C source code are quoted. If this
1030 variable is set to false, the bytes higher than 0x80 are
1031 not quoted but output as verbatim. Note that double
1032 quote, backslash and control characters are always
1033 quoted without <tt>-z</tt> regardless of the setting of this
1034 variable.
1035 </p>
1036 </dd>
1037 <dt>
1038 core.eol
1039 </dt>
1040 <dd>
1042 Sets the line ending type to use in the working directory for
1043 files that have the <tt>text</tt> property set. Alternatives are
1044 <em>lf</em>, <em>crlf</em> and <em>native</em>, which uses the platform's native
1045 line ending. The default value is <tt>native</tt>. See
1046 <a href="gitattributes.html">gitattributes(5)</a> for more information on end-of-line
1047 conversion.
1048 </p>
1049 </dd>
1050 <dt>
1051 core.safecrlf
1052 </dt>
1053 <dd>
1055 If true, makes git check if converting <tt>CRLF</tt> is reversible when
1056 end-of-line conversion is active. Git will verify if a command
1057 modifies a file in the work tree either directly or indirectly.
1058 For example, committing a file followed by checking out the
1059 same file should yield the original file in the work tree. If
1060 this is not the case for the current setting of
1061 <tt>core.autocrlf</tt>, git will reject the file. The variable can
1062 be set to "warn", in which case git will only warn about an
1063 irreversible conversion but continue the operation.
1064 </p>
1065 <div class="para"><p>CRLF conversion bears a slight chance of corrupting data.
1066 When it is enabled, git will convert CRLF to LF during commit and LF to
1067 CRLF during checkout. A file that contains a mixture of LF and
1068 CRLF before the commit cannot be recreated by git. For text
1069 files this is the right thing to do: it corrects line endings
1070 such that we have only LF line endings in the repository.
1071 But for binary files that are accidentally classified as text the
1072 conversion can corrupt data.</p></div>
1073 <div class="para"><p>If you recognize such corruption early you can easily fix it by
1074 setting the conversion type explicitly in .gitattributes. Right
1075 after committing you still have the original file in your work
1076 tree and this file is not yet corrupted. You can explicitly tell
1077 git that this file is binary and git will handle the file
1078 appropriately.</p></div>
1079 <div class="para"><p>Unfortunately, the desired effect of cleaning up text files with
1080 mixed line endings and the undesired effect of corrupting binary
1081 files cannot be distinguished. In both cases CRLFs are removed
1082 in an irreversible way. For text files this is the right thing
1083 to do because CRLFs are line endings, while for binary files
1084 converting CRLFs corrupts data.</p></div>
1085 <div class="para"><p>Note, this safety check does not mean that a checkout will generate a
1086 file identical to the original file for a different setting of
1087 <tt>core.eol</tt> and <tt>core.autocrlf</tt>, but only for the current one. For
1088 example, a text file with <tt>LF</tt> would be accepted with <tt>core.eol=lf</tt>
1089 and could later be checked out with <tt>core.eol=crlf</tt>, in which case the
1090 resulting file would contain <tt>CRLF</tt>, although the original file
1091 contained <tt>LF</tt>. However, in both work trees the line endings would be
1092 consistent, that is either all <tt>LF</tt> or all <tt>CRLF</tt>, but never mixed. A
1093 file with mixed line endings would be reported by the <tt>core.safecrlf</tt>
1094 mechanism.</p></div>
1095 </dd>
1096 <dt>
1097 core.autocrlf
1098 </dt>
1099 <dd>
1101 Setting this variable to "true" is almost the same as setting
1102 the <tt>text</tt> attribute to "auto" on all files except that text
1103 files are not guaranteed to be normalized: files that contain
1104 <tt>CRLF</tt> in the repository will not be touched. Use this
1105 setting if you want to have <tt>CRLF</tt> line endings in your
1106 working directory even though the repository does not have
1107 normalized line endings. This variable can be set to <em>input</em>,
1108 in which case no output conversion is performed.
1109 </p>
1110 </dd>
1111 <dt>
1112 core.symlinks
1113 </dt>
1114 <dd>
1116 If false, symbolic links are checked out as small plain files that
1117 contain the link text. <a href="git-update-index.html">git-update-index(1)</a> and
1118 <a href="git-add.html">git-add(1)</a> will not change the recorded type to regular
1119 file. Useful on filesystems like FAT that do not support
1120 symbolic links.
1121 </p>
1122 <div class="para"><p>The default is true, except <a href="git-clone.html">git-clone(1)</a> or <a href="git-init.html">git-init(1)</a>
1123 will probe and set core.symlinks false if appropriate when the repository
1124 is created.</p></div>
1125 </dd>
1126 <dt>
1127 core.gitProxy
1128 </dt>
1129 <dd>
1131 A "proxy command" to execute (as <em>command host port</em>) instead
1132 of establishing direct connection to the remote server when
1133 using the git protocol for fetching. If the variable value is
1134 in the "COMMAND for DOMAIN" format, the command is applied only
1135 on hostnames ending with the specified domain string. This variable
1136 may be set multiple times and is matched in the given order;
1137 the first match wins.
1138 </p>
1139 <div class="para"><p>Can be overridden by the <em>GIT_PROXY_COMMAND</em> environment variable
1140 (which always applies universally, without the special "for"
1141 handling).</p></div>
1142 <div class="para"><p>The special string <tt>none</tt> can be used as the proxy command to
1143 specify that no proxy be used for a given domain pattern.
1144 This is useful for excluding servers inside a firewall from
1145 proxy use, while defaulting to a common proxy for external domains.</p></div>
1146 </dd>
1147 <dt>
1148 core.ignoreStat
1149 </dt>
1150 <dd>
1152 If true, commands which modify both the working tree and the index
1153 will mark the updated paths with the "assume unchanged" bit in the
1154 index. These marked files are then assumed to stay unchanged in the
1155 working copy, until you mark them otherwise manually - Git will not
1156 detect the file changes by lstat() calls. This is useful on systems
1157 where those are very slow, such as Microsoft Windows.
1158 See <a href="git-update-index.html">git-update-index(1)</a>.
1159 False by default.
1160 </p>
1161 </dd>
1162 <dt>
1163 core.preferSymlinkRefs
1164 </dt>
1165 <dd>
1167 Instead of the default "symref" format for HEAD
1168 and other symbolic reference files, use symbolic links.
1169 This is sometimes needed to work with old scripts that
1170 expect HEAD to be a symbolic link.
1171 </p>
1172 </dd>
1173 <dt>
1174 core.bare
1175 </dt>
1176 <dd>
1178 If true this repository is assumed to be <em>bare</em> and has no
1179 working directory associated with it. If this is the case a
1180 number of commands that require a working directory will be
1181 disabled, such as <a href="git-add.html">git-add(1)</a> or <a href="git-merge.html">git-merge(1)</a>.
1182 </p>
1183 <div class="para"><p>This setting is automatically guessed by <a href="git-clone.html">git-clone(1)</a> or
1184 <a href="git-init.html">git-init(1)</a> when the repository was created. By default a
1185 repository that ends in "/.git" is assumed to be not bare (bare =
1186 false), while all other repositories are assumed to be bare (bare
1187 = true).</p></div>
1188 </dd>
1189 <dt>
1190 core.worktree
1191 </dt>
1192 <dd>
1194 Set the path to the root of the work tree.
1195 This can be overridden by the GIT_WORK_TREE environment
1196 variable and the <em>--work-tree</em> command line option. It can be
1197 an absolute path or a relative path to the .git directory,
1198 either specified by --git-dir or GIT_DIR, or automatically
1199 discovered.
1200 If --git-dir or GIT_DIR are specified but none of
1201 --work-tree, GIT_WORK_TREE and core.worktree is specified,
1202 the current working directory is regarded as the root of the
1203 work tree.
1204 </p>
1205 <div class="para"><p>Note that this variable is honored even when set in a configuration
1206 file in a ".git" subdirectory of a directory, and its value differs
1207 from the latter directory (e.g. "/path/to/.git/config" has
1208 core.worktree set to "/different/path"), which is most likely a
1209 misconfiguration. Running git commands in "/path/to" directory will
1210 still use "/different/path" as the root of the work tree and can cause
1211 great confusion to the users.</p></div>
1212 </dd>
1213 <dt>
1214 core.logAllRefUpdates
1215 </dt>
1216 <dd>
1218 Enable the reflog. Updates to a ref &lt;ref&gt; is logged to the file
1219 "$GIT_DIR/logs/&lt;ref&gt;", by appending the new and old
1220 SHA1, the date/time and the reason of the update, but
1221 only when the file exists. If this configuration
1222 variable is set to true, missing "$GIT_DIR/logs/&lt;ref&gt;"
1223 file is automatically created for branch heads.
1224 </p>
1225 <div class="para"><p>This information can be used to determine what commit
1226 was the tip of a branch "2 days ago".</p></div>
1227 <div class="para"><p>This value is true by default in a repository that has
1228 a working directory associated with it, and false by
1229 default in a bare repository.</p></div>
1230 </dd>
1231 <dt>
1232 core.repositoryFormatVersion
1233 </dt>
1234 <dd>
1236 Internal variable identifying the repository format and layout
1237 version.
1238 </p>
1239 </dd>
1240 <dt>
1241 core.sharedRepository
1242 </dt>
1243 <dd>
1245 When <em>group</em> (or <em>true</em>), the repository is made shareable between
1246 several users in a group (making sure all the files and objects are
1247 group-writable). When <em>all</em> (or <em>world</em> or <em>everybody</em>), the
1248 repository will be readable by all users, additionally to being
1249 group-shareable. When <em>umask</em> (or <em>false</em>), git will use permissions
1250 reported by umask(2). When <em>0xxx</em>, where <em>0xxx</em> is an octal number,
1251 files in the repository will have this mode value. <em>0xxx</em> will override
1252 user's umask value (whereas the other options will only override
1253 requested parts of the user's umask value). Examples: <em>0660</em> will make
1254 the repo read/write-able for the owner and group, but inaccessible to
1255 others (equivalent to <em>group</em> unless umask is e.g. <em>0022</em>). <em>0640</em> is a
1256 repository that is group-readable but not group-writable.
1257 See <a href="git-init.html">git-init(1)</a>. False by default.
1258 </p>
1259 </dd>
1260 <dt>
1261 core.warnAmbiguousRefs
1262 </dt>
1263 <dd>
1265 If true, git will warn you if the ref name you passed it is ambiguous
1266 and might match multiple refs in the .git/refs/ tree. True by default.
1267 </p>
1268 </dd>
1269 <dt>
1270 core.compression
1271 </dt>
1272 <dd>
1274 An integer -1..9, indicating a default compression level.
1275 -1 is the zlib default. 0 means no compression,
1276 and 1..9 are various speed/size tradeoffs, 9 being slowest.
1277 If set, this provides a default to other compression variables,
1278 such as <em>core.loosecompression</em> and <em>pack.compression</em>.
1279 </p>
1280 </dd>
1281 <dt>
1282 core.loosecompression
1283 </dt>
1284 <dd>
1286 An integer -1..9, indicating the compression level for objects that
1287 are not in a pack file. -1 is the zlib default. 0 means no
1288 compression, and 1..9 are various speed/size tradeoffs, 9 being
1289 slowest. If not set, defaults to core.compression. If that is
1290 not set, defaults to 1 (best speed).
1291 </p>
1292 </dd>
1293 <dt>
1294 core.packedGitWindowSize
1295 </dt>
1296 <dd>
1298 Number of bytes of a pack file to map into memory in a
1299 single mapping operation. Larger window sizes may allow
1300 your system to process a smaller number of large pack files
1301 more quickly. Smaller window sizes will negatively affect
1302 performance due to increased calls to the operating system's
1303 memory manager, but may improve performance when accessing
1304 a large number of large pack files.
1305 </p>
1306 <div class="para"><p>Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
1307 MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
1308 be reasonable for all users/operating systems. You probably do
1309 not need to adjust this value.</p></div>
1310 <div class="para"><p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p></div>
1311 </dd>
1312 <dt>
1313 core.packedGitLimit
1314 </dt>
1315 <dd>
1317 Maximum number of bytes to map simultaneously into memory
1318 from pack files. If Git needs to access more than this many
1319 bytes at once to complete an operation it will unmap existing
1320 regions to reclaim virtual address space within the process.
1321 </p>
1322 <div class="para"><p>Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.
1323 This should be reasonable for all users/operating systems, except on
1324 the largest projects. You probably do not need to adjust this value.</p></div>
1325 <div class="para"><p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p></div>
1326 </dd>
1327 <dt>
1328 core.deltaBaseCacheLimit
1329 </dt>
1330 <dd>
1332 Maximum number of bytes to reserve for caching base objects
1333 that multiple deltafied objects reference. By storing the
1334 entire decompressed base objects in a cache Git is able
1335 to avoid unpacking and decompressing frequently used base
1336 objects multiple times.
1337 </p>
1338 <div class="para"><p>Default is 16 MiB on all platforms. This should be reasonable
1339 for all users/operating systems, except on the largest projects.
1340 You probably do not need to adjust this value.</p></div>
1341 <div class="para"><p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p></div>
1342 </dd>
1343 <dt>
1344 core.bigFileThreshold
1345 </dt>
1346 <dd>
1348 Files larger than this size are stored deflated, without
1349 attempting delta compression. Storing large files without
1350 delta compression avoids excessive memory usage, at the
1351 slight expense of increased disk usage.
1352 </p>
1353 <div class="para"><p>Default is 512 MiB on all platforms. This should be reasonable
1354 for most projects as source code and other text files can still
1355 be delta compressed, but larger binary media files won't be.</p></div>
1356 <div class="para"><p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p></div>
1357 <div class="para"><p>Currently only <a href="git-fast-import.html">git-fast-import(1)</a> honors this setting.</p></div>
1358 </dd>
1359 <dt>
1360 core.excludesfile
1361 </dt>
1362 <dd>
1364 In addition to <em>.gitignore</em> (per-directory) and
1365 <em>.git/info/exclude</em>, git looks into this file for patterns
1366 of files which are not meant to be tracked. "&#126;/" is expanded
1367 to the value of <tt>$HOME</tt> and "&#126;user/" to the specified user's
1368 home directory. See <a href="gitignore.html">gitignore(5)</a>.
1369 </p>
1370 </dd>
1371 <dt>
1372 core.editor
1373 </dt>
1374 <dd>
1376 Commands such as <tt>commit</tt> and <tt>tag</tt> that lets you edit
1377 messages by launching an editor uses the value of this
1378 variable when it is set, and the environment variable
1379 <tt>GIT_EDITOR</tt> is not set. See <a href="git-var.html">git-var(1)</a>.
1380 </p>
1381 </dd>
1382 <dt>
1383 core.pager
1384 </dt>
1385 <dd>
1387 The command that git will use to paginate output. Can
1388 be overridden with the <tt>GIT_PAGER</tt> environment
1389 variable. Note that git sets the <tt>LESS</tt> environment
1390 variable to <tt>FRSX</tt> if it is unset when it runs the
1391 pager. One can change these settings by setting the
1392 <tt>LESS</tt> variable to some other value. Alternately,
1393 these settings can be overridden on a project or
1394 global basis by setting the <tt>core.pager</tt> option.
1395 Setting <tt>core.pager</tt> has no affect on the <tt>LESS</tt>
1396 environment variable behaviour above, so if you want
1397 to override git's default settings this way, you need
1398 to be explicit. For example, to disable the S option
1399 in a backward compatible manner, set <tt>core.pager</tt>
1400 to <tt>less -+$LESS -FRX</tt>. This will be passed to the
1401 shell by git, which will translate the final command to
1402 <tt>LESS=FRSX less -+FRSX -FRX</tt>.
1403 </p>
1404 </dd>
1405 <dt>
1406 core.whitespace
1407 </dt>
1408 <dd>
1410 A comma separated list of common whitespace problems to
1411 notice. <em>git diff</em> will use <tt>color.diff.whitespace</tt> to
1412 highlight them, and <em>git apply --whitespace=error</em> will
1413 consider them as errors. You can prefix <tt>-</tt> to disable
1414 any of them (e.g. <tt>-trailing-space</tt>):
1415 </p>
1416 <div class="ilist"><ul>
1417 <li>
1419 <tt>blank-at-eol</tt> treats trailing whitespaces at the end of the line
1420 as an error (enabled by default).
1421 </p>
1422 </li>
1423 <li>
1425 <tt>space-before-tab</tt> treats a space character that appears immediately
1426 before a tab character in the initial indent part of the line as an
1427 error (enabled by default).
1428 </p>
1429 </li>
1430 <li>
1432 <tt>indent-with-non-tab</tt> treats a line that is indented with 8 or more
1433 space characters as an error (not enabled by default).
1434 </p>
1435 </li>
1436 <li>
1438 <tt>tab-in-indent</tt> treats a tab character in the initial indent part of
1439 the line as an error (not enabled by default).
1440 </p>
1441 </li>
1442 <li>
1444 <tt>blank-at-eof</tt> treats blank lines added at the end of file as an error
1445 (enabled by default).
1446 </p>
1447 </li>
1448 <li>
1450 <tt>trailing-space</tt> is a short-hand to cover both <tt>blank-at-eol</tt> and
1451 <tt>blank-at-eof</tt>.
1452 </p>
1453 </li>
1454 <li>
1456 <tt>cr-at-eol</tt> treats a carriage-return at the end of line as
1457 part of the line terminator, i.e. with it, <tt>trailing-space</tt>
1458 does not trigger if the character before such a carriage-return
1459 is not a whitespace (not enabled by default).
1460 </p>
1461 </li>
1462 </ul></div>
1463 </dd>
1464 <dt>
1465 core.fsyncobjectfiles
1466 </dt>
1467 <dd>
1469 This boolean will enable <em>fsync()</em> when writing object files.
1470 </p>
1471 <div class="para"><p>This is a total waste of time and effort on a filesystem that orders
1472 data writes properly, but can be useful for filesystems that do not use
1473 journalling (traditional UNIX filesystems) or that only journal metadata
1474 and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").</p></div>
1475 </dd>
1476 <dt>
1477 core.preloadindex
1478 </dt>
1479 <dd>
1481 Enable parallel index preload for operations like <em>git diff</em>
1482 </p>
1483 <div class="para"><p>This can speed up operations like <em>git diff</em> and <em>git status</em> especially
1484 on filesystems like NFS that have weak caching semantics and thus
1485 relatively high IO latencies. With this set to <em>true</em>, git will do the
1486 index comparison to the filesystem data in parallel, allowing
1487 overlapping IO's.</p></div>
1488 </dd>
1489 <dt>
1490 core.createObject
1491 </dt>
1492 <dd>
1494 You can set this to <em>link</em>, in which case a hardlink followed by
1495 a delete of the source are used to make sure that object creation
1496 will not overwrite existing objects.
1497 </p>
1498 <div class="para"><p>On some file system/operating system combinations, this is unreliable.
1499 Set this config setting to <em>rename</em> there; However, This will remove the
1500 check that makes sure that existing object files will not get overwritten.</p></div>
1501 </dd>
1502 <dt>
1503 core.notesRef
1504 </dt>
1505 <dd>
1507 When showing commit messages, also show notes which are stored in
1508 the given ref. The ref must be fully qualified. If the given
1509 ref does not exist, it is not an error but means that no
1510 notes should be printed.
1511 </p>
1512 <div class="para"><p>This setting defaults to "refs/notes/commits", and it can be overridden by
1513 the <em>GIT_NOTES_REF</em> environment variable. See <a href="git-notes.html">git-notes(1)</a>.</p></div>
1514 </dd>
1515 <dt>
1516 core.sparseCheckout
1517 </dt>
1518 <dd>
1520 Enable "sparse checkout" feature. See section "Sparse checkout" in
1521 <a href="git-read-tree.html">git-read-tree(1)</a> for more information.
1522 </p>
1523 </dd>
1524 <dt>
1525 add.ignore-errors
1526 </dt>
1527 <dd>
1529 Tells <em>git add</em> to continue adding files when some files cannot be
1530 added due to indexing errors. Equivalent to the <em>--ignore-errors</em>
1531 option of <a href="git-add.html">git-add(1)</a>.
1532 </p>
1533 </dd>
1534 <dt>
1535 alias.*
1536 </dt>
1537 <dd>
1539 Command aliases for the <a href="git.html">git(1)</a> command wrapper - e.g.
1540 after defining "alias.last = cat-file commit HEAD", the invocation
1541 "git last" is equivalent to "git cat-file commit HEAD". To avoid
1542 confusion and troubles with script usage, aliases that
1543 hide existing git commands are ignored. Arguments are split by
1544 spaces, the usual shell quoting and escaping is supported.
1545 quote pair and a backslash can be used to quote them.
1546 </p>
1547 <div class="para"><p>If the alias expansion is prefixed with an exclamation point,
1548 it will be treated as a shell command. For example, defining
1549 "alias.new = !gitk --all --not ORIG_HEAD", the invocation
1550 "git new" is equivalent to running the shell command
1551 "gitk --all --not ORIG_HEAD". Note that shell commands will be
1552 executed from the top-level directory of a repository, which may
1553 not necessarily be the current directory.</p></div>
1554 </dd>
1555 <dt>
1556 am.keepcr
1557 </dt>
1558 <dd>
1560 If true, git-am will call git-mailsplit for patches in mbox format
1561 with parameter <em>--keep-cr</em>. In this case git-mailsplit will
1562 not remove <tt>\r</tt> from lines ending with <tt>\r\n</tt>. Can be overrriden
1563 by giving <em>--no-keep-cr</em> from the command line.
1564 See <a href="git-am.html">git-am(1)</a>, <a href="git-mailsplit.html">git-mailsplit(1)</a>.
1565 </p>
1566 </dd>
1567 <dt>
1568 apply.ignorewhitespace
1569 </dt>
1570 <dd>
1572 When set to <em>change</em>, tells <em>git apply</em> to ignore changes in
1573 whitespace, in the same way as the <em>--ignore-space-change</em>
1574 option.
1575 When set to one of: no, none, never, false tells <em>git apply</em> to
1576 respect all whitespace differences.
1577 See <a href="git-apply.html">git-apply(1)</a>.
1578 </p>
1579 </dd>
1580 <dt>
1581 apply.whitespace
1582 </dt>
1583 <dd>
1585 Tells <em>git apply</em> how to handle whitespaces, in the same way
1586 as the <em>--whitespace</em> option. See <a href="git-apply.html">git-apply(1)</a>.
1587 </p>
1588 </dd>
1589 <dt>
1590 branch.autosetupmerge
1591 </dt>
1592 <dd>
1594 Tells <em>git branch</em> and <em>git checkout</em> to set up new branches
1595 so that <a href="git-pull.html">git-pull(1)</a> will appropriately merge from the
1596 starting point branch. Note that even if this option is not set,
1597 this behavior can be chosen per-branch using the <tt>--track</tt>
1598 and <tt>--no-track</tt> options. The valid settings are: <tt>false</tt> &#8212; no
1599 automatic setup is done; <tt>true</tt> &#8212; automatic setup is done when the
1600 starting point is a remote branch; <tt>always</tt> &#8212; automatic setup is
1601 done when the starting point is either a local branch or remote
1602 branch. This option defaults to true.
1603 </p>
1604 </dd>
1605 <dt>
1606 branch.autosetuprebase
1607 </dt>
1608 <dd>
1610 When a new branch is created with <em>git branch</em> or <em>git checkout</em>
1611 that tracks another branch, this variable tells git to set
1612 up pull to rebase instead of merge (see "branch.&lt;name&gt;.rebase").
1613 When <tt>never</tt>, rebase is never automatically set to true.
1614 When <tt>local</tt>, rebase is set to true for tracked branches of
1615 other local branches.
1616 When <tt>remote</tt>, rebase is set to true for tracked branches of
1617 remote branches.
1618 When <tt>always</tt>, rebase will be set to true for all tracking
1619 branches.
1620 See "branch.autosetupmerge" for details on how to set up a
1621 branch to track another branch.
1622 This option defaults to never.
1623 </p>
1624 </dd>
1625 <dt>
1626 branch.&lt;name&gt;.remote
1627 </dt>
1628 <dd>
1630 When in branch &lt;name&gt;, it tells <em>git fetch</em> and <em>git push</em> which
1631 remote to fetch from/push to. It defaults to <tt>origin</tt> if no remote is
1632 configured. <tt>origin</tt> is also used if you are not on any branch.
1633 </p>
1634 </dd>
1635 <dt>
1636 branch.&lt;name&gt;.merge
1637 </dt>
1638 <dd>
1640 Defines, together with branch.&lt;name&gt;.remote, the upstream branch
1641 for the given branch. It tells <em>git fetch</em>/<em>git pull</em> which
1642 branch to merge and can also affect <em>git push</em> (see push.default).
1643 When in branch &lt;name&gt;, it tells <em>git fetch</em> the default
1644 refspec to be marked for merging in FETCH_HEAD. The value is
1645 handled like the remote part of a refspec, and must match a
1646 ref which is fetched from the remote given by
1647 "branch.&lt;name&gt;.remote".
1648 The merge information is used by <em>git pull</em> (which at first calls
1649 <em>git fetch</em>) to lookup the default branch for merging. Without
1650 this option, <em>git pull</em> defaults to merge the first refspec fetched.
1651 Specify multiple values to get an octopus merge.
1652 If you wish to setup <em>git pull</em> so that it merges into &lt;name&gt; from
1653 another branch in the local repository, you can point
1654 branch.&lt;name&gt;.merge to the desired branch, and use the special setting
1655 <tt>.</tt> (a period) for branch.&lt;name&gt;.remote.
1656 </p>
1657 </dd>
1658 <dt>
1659 branch.&lt;name&gt;.mergeoptions
1660 </dt>
1661 <dd>
1663 Sets default options for merging into branch &lt;name&gt;. The syntax and
1664 supported options are the same as those of <a href="git-merge.html">git-merge(1)</a>, but
1665 option values containing whitespace characters are currently not
1666 supported.
1667 </p>
1668 </dd>
1669 <dt>
1670 branch.&lt;name&gt;.rebase
1671 </dt>
1672 <dd>
1674 When true, rebase the branch &lt;name&gt; on top of the fetched branch,
1675 instead of merging the default branch from the default remote when
1676 "git pull" is run.
1677 <strong>NOTE</strong>: this is a possibly dangerous operation; do <strong>not</strong> use
1678 it unless you understand the implications (see <a href="git-rebase.html">git-rebase(1)</a>
1679 for details).
1680 </p>
1681 </dd>
1682 <dt>
1683 browser.&lt;tool&gt;.cmd
1684 </dt>
1685 <dd>
1687 Specify the command to invoke the specified browser. The
1688 specified command is evaluated in shell with the URLs passed
1689 as arguments. (See <a href="git-web--browse.html">git-web--browse(1)</a>.)
1690 </p>
1691 </dd>
1692 <dt>
1693 browser.&lt;tool&gt;.path
1694 </dt>
1695 <dd>
1697 Override the path for the given tool that may be used to
1698 browse HTML help (see <em>-w</em> option in <a href="git-help.html">git-help(1)</a>) or a
1699 working repository in gitweb (see <a href="git-instaweb.html">git-instaweb(1)</a>).
1700 </p>
1701 </dd>
1702 <dt>
1703 clean.requireForce
1704 </dt>
1705 <dd>
1707 A boolean to make git-clean do nothing unless given -f
1708 or -n. Defaults to true.
1709 </p>
1710 </dd>
1711 <dt>
1712 color.branch
1713 </dt>
1714 <dd>
1716 A boolean to enable/disable color in the output of
1717 <a href="git-branch.html">git-branch(1)</a>. May be set to <tt>always</tt>,
1718 <tt>false</tt> (or <tt>never</tt>) or <tt>auto</tt> (or <tt>true</tt>), in which case colors are used
1719 only when the output is to a terminal. Defaults to false.
1720 </p>
1721 </dd>
1722 <dt>
1723 color.branch.&lt;slot&gt;
1724 </dt>
1725 <dd>
1727 Use customized color for branch coloration. <tt>&lt;slot&gt;</tt> is one of
1728 <tt>current</tt> (the current branch), <tt>local</tt> (a local branch),
1729 <tt>remote</tt> (a tracking branch in refs/remotes/), <tt>plain</tt> (other
1730 refs).
1731 </p>
1732 <div class="para"><p>The value for these configuration variables is a list of colors (at most
1733 two) and attributes (at most one), separated by spaces. The colors
1734 accepted are <tt>normal</tt>, <tt>black</tt>, <tt>red</tt>, <tt>green</tt>, <tt>yellow</tt>, <tt>blue</tt>,
1735 <tt>magenta</tt>, <tt>cyan</tt> and <tt>white</tt>; the attributes are <tt>bold</tt>, <tt>dim</tt>, <tt>ul</tt>,
1736 <tt>blink</tt> and <tt>reverse</tt>. The first color given is the foreground; the
1737 second is the background. The position of the attribute, if any,
1738 doesn't matter.</p></div>
1739 </dd>
1740 <dt>
1741 color.diff
1742 </dt>
1743 <dd>
1745 When set to <tt>always</tt>, always use colors in patch.
1746 When false (or <tt>never</tt>), never. When set to <tt>true</tt> or <tt>auto</tt>, use
1747 colors only when the output is to the terminal. Defaults to false.
1748 </p>
1749 </dd>
1750 <dt>
1751 color.diff.&lt;slot&gt;
1752 </dt>
1753 <dd>
1755 Use customized color for diff colorization. <tt>&lt;slot&gt;</tt> specifies
1756 which part of the patch to use the specified color, and is one
1757 of <tt>plain</tt> (context text), <tt>meta</tt> (metainformation), <tt>frag</tt>
1758 (hunk header), <em>func</em> (function in hunk header), <tt>old</tt> (removed lines),
1759 <tt>new</tt> (added lines), <tt>commit</tt> (commit headers), or <tt>whitespace</tt>
1760 (highlighting whitespace errors). The values of these variables may be
1761 specified as in color.branch.&lt;slot&gt;.
1762 </p>
1763 </dd>
1764 <dt>
1765 color.decorate.&lt;slot&gt;
1766 </dt>
1767 <dd>
1769 Use customized color for <em>git log --decorate</em> output. <tt>&lt;slot&gt;</tt> is one
1770 of <tt>branch</tt>, <tt>remoteBranch</tt>, <tt>tag</tt>, <tt>stash</tt> or <tt>HEAD</tt> for local
1771 branches, remote tracking branches, tags, stash and HEAD, respectively.
1772 </p>
1773 </dd>
1774 <dt>
1775 color.grep
1776 </dt>
1777 <dd>
1779 When set to <tt>always</tt>, always highlight matches. When <tt>false</tt> (or
1780 <tt>never</tt>), never. When set to <tt>true</tt> or <tt>auto</tt>, use color only
1781 when the output is written to the terminal. Defaults to <tt>false</tt>.
1782 </p>
1783 </dd>
1784 <dt>
1785 color.grep.&lt;slot&gt;
1786 </dt>
1787 <dd>
1789 Use customized color for grep colorization. <tt>&lt;slot&gt;</tt> specifies which
1790 part of the line to use the specified color, and is one of
1791 </p>
1792 <div class="vlist"><dl>
1793 <dt>
1794 <tt>context</tt>
1795 </dt>
1796 <dd>
1798 non-matching text in context lines (when using <tt>-A</tt>, <tt>-B</tt>, or <tt>-C</tt>)
1799 </p>
1800 </dd>
1801 <dt>
1802 <tt>filename</tt>
1803 </dt>
1804 <dd>
1806 filename prefix (when not using <tt>-h</tt>)
1807 </p>
1808 </dd>
1809 <dt>
1810 <tt>function</tt>
1811 </dt>
1812 <dd>
1814 function name lines (when using <tt>-p</tt>)
1815 </p>
1816 </dd>
1817 <dt>
1818 <tt>linenumber</tt>
1819 </dt>
1820 <dd>
1822 line number prefix (when using <tt>-n</tt>)
1823 </p>
1824 </dd>
1825 <dt>
1826 <tt>match</tt>
1827 </dt>
1828 <dd>
1830 matching text
1831 </p>
1832 </dd>
1833 <dt>
1834 <tt>selected</tt>
1835 </dt>
1836 <dd>
1838 non-matching text in selected lines
1839 </p>
1840 </dd>
1841 <dt>
1842 <tt>separator</tt>
1843 </dt>
1844 <dd>
1846 separators between fields on a line (<tt>:</tt>, <tt>-</tt>, and <tt>=</tt>)
1847 and between hunks (<tt>--</tt>)
1848 </p>
1849 </dd>
1850 </dl></div>
1851 <div class="para"><p>The values of these variables may be specified as in color.branch.&lt;slot&gt;.</p></div>
1852 </dd>
1853 <dt>
1854 color.interactive
1855 </dt>
1856 <dd>
1858 When set to <tt>always</tt>, always use colors for interactive prompts
1859 and displays (such as those used by "git-add --interactive").
1860 When false (or <tt>never</tt>), never. When set to <tt>true</tt> or <tt>auto</tt>, use
1861 colors only when the output is to the terminal. Defaults to false.
1862 </p>
1863 </dd>
1864 <dt>
1865 color.interactive.&lt;slot&gt;
1866 </dt>
1867 <dd>
1869 Use customized color for <em>git add --interactive</em>
1870 output. <tt>&lt;slot&gt;</tt> may be <tt>prompt</tt>, <tt>header</tt>, <tt>help</tt> or <tt>error</tt>, for
1871 four distinct types of normal output from interactive
1872 commands. The values of these variables may be specified as
1873 in color.branch.&lt;slot&gt;.
1874 </p>
1875 </dd>
1876 <dt>
1877 color.pager
1878 </dt>
1879 <dd>
1881 A boolean to enable/disable colored output when the pager is in
1882 use (default is true).
1883 </p>
1884 </dd>
1885 <dt>
1886 color.showbranch
1887 </dt>
1888 <dd>
1890 A boolean to enable/disable color in the output of
1891 <a href="git-show-branch.html">git-show-branch(1)</a>. May be set to <tt>always</tt>,
1892 <tt>false</tt> (or <tt>never</tt>) or <tt>auto</tt> (or <tt>true</tt>), in which case colors are used
1893 only when the output is to a terminal. Defaults to false.
1894 </p>
1895 </dd>
1896 <dt>
1897 color.status
1898 </dt>
1899 <dd>
1901 A boolean to enable/disable color in the output of
1902 <a href="git-status.html">git-status(1)</a>. May be set to <tt>always</tt>,
1903 <tt>false</tt> (or <tt>never</tt>) or <tt>auto</tt> (or <tt>true</tt>), in which case colors are used
1904 only when the output is to a terminal. Defaults to false.
1905 </p>
1906 </dd>
1907 <dt>
1908 color.status.&lt;slot&gt;
1909 </dt>
1910 <dd>
1912 Use customized color for status colorization. <tt>&lt;slot&gt;</tt> is
1913 one of <tt>header</tt> (the header text of the status message),
1914 <tt>added</tt> or <tt>updated</tt> (files which are added but not committed),
1915 <tt>changed</tt> (files which are changed but not added in the index),
1916 <tt>untracked</tt> (files which are not tracked by git), or
1917 <tt>nobranch</tt> (the color the <em>no branch</em> warning is shown in, defaulting
1918 to red). The values of these variables may be specified as in
1919 color.branch.&lt;slot&gt;.
1920 </p>
1921 </dd>
1922 <dt>
1923 color.ui
1924 </dt>
1925 <dd>
1927 When set to <tt>always</tt>, always use colors in all git commands which
1928 are capable of colored output. When false (or <tt>never</tt>), never. When
1929 set to <tt>true</tt> or <tt>auto</tt>, use colors only when the output is to the
1930 terminal. When more specific variables of color.* are set, they always
1931 take precedence over this setting. Defaults to false.
1932 </p>
1933 </dd>
1934 <dt>
1935 commit.status
1936 </dt>
1937 <dd>
1939 A boolean to enable/disable inclusion of status information in the
1940 commit message template when using an editor to prepare the commit
1941 message. Defaults to true.
1942 </p>
1943 </dd>
1944 <dt>
1945 commit.template
1946 </dt>
1947 <dd>
1949 Specify a file to use as the template for new commit messages.
1950 "&#126;/" is expanded to the value of <tt>$HOME</tt> and "&#126;user/" to the
1951 specified user's home directory.
1952 </p>
1953 </dd>
1954 <dt>
1955 diff.autorefreshindex
1956 </dt>
1957 <dd>
1959 When using <em>git diff</em> to compare with work tree
1960 files, do not consider stat-only change as changed.
1961 Instead, silently run <tt>git update-index --refresh</tt> to
1962 update the cached stat information for paths whose
1963 contents in the work tree match the contents in the
1964 index. This option defaults to true. Note that this
1965 affects only <em>git diff</em> Porcelain, and not lower level
1966 <em>diff</em> commands such as <em>git diff-files</em>.
1967 </p>
1968 </dd>
1969 <dt>
1970 diff.external
1971 </dt>
1972 <dd>
1974 If this config variable is set, diff generation is not
1975 performed using the internal diff machinery, but using the
1976 given command. Can be overridden with the `GIT_EXTERNAL_DIFF'
1977 environment variable. The command is called with parameters
1978 as described under "git Diffs" in <a href="git.html">git(1)</a>. Note: if
1979 you want to use an external diff program only on a subset of
1980 your files, you might want to use <a href="gitattributes.html">gitattributes(5)</a> instead.
1981 </p>
1982 </dd>
1983 <dt>
1984 diff.mnemonicprefix
1985 </dt>
1986 <dd>
1988 If set, <em>git diff</em> uses a prefix pair that is different from the
1989 standard "a/" and "b/" depending on what is being compared. When
1990 this configuration is in effect, reverse diff output also swaps
1991 the order of the prefixes:
1992 </p>
1993 </dd>
1994 <dt>
1995 diff.noprefix
1996 </dt>
1997 <dd>
1999 If set, <em>git diff</em> does not show any source or destination prefix.
2000 </p>
2001 <div class="vlist"><dl>
2002 <dt>
2003 <tt>git diff</tt>
2004 </dt>
2005 <dd>
2007 compares the (i)ndex and the (w)ork tree;
2008 </p>
2009 </dd>
2010 <dt>
2011 <tt>git diff HEAD</tt>
2012 </dt>
2013 <dd>
2015 compares a (c)ommit and the (w)ork tree;
2016 </p>
2017 </dd>
2018 <dt>
2019 <tt>git diff --cached</tt>
2020 </dt>
2021 <dd>
2023 compares a (c)ommit and the (i)ndex;
2024 </p>
2025 </dd>
2026 <dt>
2027 <tt>git diff HEAD:file1 file2</tt>
2028 </dt>
2029 <dd>
2031 compares an (o)bject and a (w)ork tree entity;
2032 </p>
2033 </dd>
2034 <dt>
2035 <tt>git diff --no-index a b</tt>
2036 </dt>
2037 <dd>
2039 compares two non-git things (1) and (2).
2040 </p>
2041 </dd>
2042 </dl></div>
2043 </dd>
2044 <dt>
2045 diff.renameLimit
2046 </dt>
2047 <dd>
2049 The number of files to consider when performing the copy/rename
2050 detection; equivalent to the <em>git diff</em> option <em>-l</em>.
2051 </p>
2052 </dd>
2053 <dt>
2054 diff.renames
2055 </dt>
2056 <dd>
2058 Tells git to detect renames. If set to any boolean value, it
2059 will enable basic rename detection. If set to "copies" or
2060 "copy", it will detect copies, as well.
2061 </p>
2062 </dd>
2063 <dt>
2064 diff.suppressBlankEmpty
2065 </dt>
2066 <dd>
2068 A boolean to inhibit the standard behavior of printing a space
2069 before each empty output line. Defaults to false.
2070 </p>
2071 </dd>
2072 <dt>
2073 diff.tool
2074 </dt>
2075 <dd>
2077 Controls which diff tool is used. <tt>diff.tool</tt> overrides
2078 <tt>merge.tool</tt> when used by <a href="git-difftool.html">git-difftool(1)</a> and has
2079 the same valid values as <tt>merge.tool</tt> minus "tortoisemerge"
2080 and plus "kompare".
2081 </p>
2082 </dd>
2083 <dt>
2084 difftool.&lt;tool&gt;.path
2085 </dt>
2086 <dd>
2088 Override the path for the given tool. This is useful in case
2089 your tool is not in the PATH.
2090 </p>
2091 </dd>
2092 <dt>
2093 difftool.&lt;tool&gt;.cmd
2094 </dt>
2095 <dd>
2097 Specify the command to invoke the specified diff tool.
2098 The specified command is evaluated in shell with the following
2099 variables available: <em>LOCAL</em> is set to the name of the temporary
2100 file containing the contents of the diff pre-image and <em>REMOTE</em>
2101 is set to the name of the temporary file containing the contents
2102 of the diff post-image.
2103 </p>
2104 </dd>
2105 <dt>
2106 difftool.prompt
2107 </dt>
2108 <dd>
2110 Prompt before each invocation of the diff tool.
2111 </p>
2112 </dd>
2113 <dt>
2114 diff.wordRegex
2115 </dt>
2116 <dd>
2118 A POSIX Extended Regular Expression used to determine what is a "word"
2119 when performing word-by-word difference calculations. Character
2120 sequences that match the regular expression are "words", all other
2121 characters are <strong>ignorable</strong> whitespace.
2122 </p>
2123 </dd>
2124 <dt>
2125 fetch.unpackLimit
2126 </dt>
2127 <dd>
2129 If the number of objects fetched over the git native
2130 transfer is below this
2131 limit, then the objects will be unpacked into loose object
2132 files. However if the number of received objects equals or
2133 exceeds this limit then the received pack will be stored as
2134 a pack, after adding any missing delta bases. Storing the
2135 pack from a push can make the push operation complete faster,
2136 especially on slow filesystems. If not set, the value of
2137 <tt>transfer.unpackLimit</tt> is used instead.
2138 </p>
2139 </dd>
2140 <dt>
2141 format.attach
2142 </dt>
2143 <dd>
2145 Enable multipart/mixed attachments as the default for
2146 <em>format-patch</em>. The value can also be a double quoted string
2147 which will enable attachments as the default and set the
2148 value as the boundary. See the --attach option in
2149 <a href="git-format-patch.html">git-format-patch(1)</a>.
2150 </p>
2151 </dd>
2152 <dt>
2153 format.numbered
2154 </dt>
2155 <dd>
2157 A boolean which can enable or disable sequence numbers in patch
2158 subjects. It defaults to "auto" which enables it only if there
2159 is more than one patch. It can be enabled or disabled for all
2160 messages by setting it to "true" or "false". See --numbered
2161 option in <a href="git-format-patch.html">git-format-patch(1)</a>.
2162 </p>
2163 </dd>
2164 <dt>
2165 format.headers
2166 </dt>
2167 <dd>
2169 Additional email headers to include in a patch to be submitted
2170 by mail. See <a href="git-format-patch.html">git-format-patch(1)</a>.
2171 </p>
2172 </dd>
2173 <dt>
2174 format.to
2175 </dt>
2176 <dt>
2177 format.cc
2178 </dt>
2179 <dd>
2181 Additional recipients to include in a patch to be submitted
2182 by mail. See the --to and --cc options in
2183 <a href="git-format-patch.html">git-format-patch(1)</a>.
2184 </p>
2185 </dd>
2186 <dt>
2187 format.subjectprefix
2188 </dt>
2189 <dd>
2191 The default for format-patch is to output files with the <em>[PATCH]</em>
2192 subject prefix. Use this variable to change that prefix.
2193 </p>
2194 </dd>
2195 <dt>
2196 format.signature
2197 </dt>
2198 <dd>
2200 The default for format-patch is to output a signature containing
2201 the git version number. Use this variable to change that default.
2202 Set this variable to the empty string ("") to suppress
2203 signature generation.
2204 </p>
2205 </dd>
2206 <dt>
2207 format.suffix
2208 </dt>
2209 <dd>
2211 The default for format-patch is to output files with the suffix
2212 <tt>.patch</tt>. Use this variable to change that suffix (make sure to
2213 include the dot if you want it).
2214 </p>
2215 </dd>
2216 <dt>
2217 format.pretty
2218 </dt>
2219 <dd>
2221 The default pretty format for log/show/whatchanged command,
2222 See <a href="git-log.html">git-log(1)</a>, <a href="git-show.html">git-show(1)</a>,
2223 <a href="git-whatchanged.html">git-whatchanged(1)</a>.
2224 </p>
2225 </dd>
2226 <dt>
2227 format.thread
2228 </dt>
2229 <dd>
2231 The default threading style for <em>git format-patch</em>. Can be
2232 a boolean value, or <tt>shallow</tt> or <tt>deep</tt>. <tt>shallow</tt> threading
2233 makes every mail a reply to the head of the series,
2234 where the head is chosen from the cover letter, the
2235 <tt>--in-reply-to</tt>, and the first patch mail, in this order.
2236 <tt>deep</tt> threading makes every mail a reply to the previous one.
2237 A true boolean value is the same as <tt>shallow</tt>, and a false
2238 value disables threading.
2239 </p>
2240 </dd>
2241 <dt>
2242 format.signoff
2243 </dt>
2244 <dd>
2246 A boolean value which lets you enable the <tt>-s/--signoff</tt> option of
2247 format-patch by default. <strong>Note:</strong> Adding the Signed-off-by: line to a
2248 patch should be a conscious act and means that you certify you have
2249 the rights to submit this work under the same open source license.
2250 Please see the <em>SubmittingPatches</em> document for further discussion.
2251 </p>
2252 </dd>
2253 <dt>
2254 gc.aggressiveWindow
2255 </dt>
2256 <dd>
2258 The window size parameter used in the delta compression
2259 algorithm used by <em>git gc --aggressive</em>. This defaults
2260 to 250.
2261 </p>
2262 </dd>
2263 <dt>
2264 gc.auto
2265 </dt>
2266 <dd>
2268 When there are approximately more than this many loose
2269 objects in the repository, <tt>git gc --auto</tt> will pack them.
2270 Some Porcelain commands use this command to perform a
2271 light-weight garbage collection from time to time. The
2272 default value is 6700. Setting this to 0 disables it.
2273 </p>
2274 </dd>
2275 <dt>
2276 gc.autopacklimit
2277 </dt>
2278 <dd>
2280 When there are more than this many packs that are not
2281 marked with <tt>*.keep</tt> file in the repository, <tt>git gc
2282 --auto</tt> consolidates them into one larger pack. The
2283 default value is 50. Setting this to 0 disables it.
2284 </p>
2285 </dd>
2286 <dt>
2287 gc.packrefs
2288 </dt>
2289 <dd>
2291 Running <tt>git pack-refs</tt> in a repository renders it
2292 unclonable by Git versions prior to 1.5.1.2 over dumb
2293 transports such as HTTP. This variable determines whether
2294 <em>git gc</em> runs <tt>git pack-refs</tt>. This can be set to <tt>nobare</tt>
2295 to enable it within all non-bare repos or it can be set to a
2296 boolean value. The default is <tt>true</tt>.
2297 </p>
2298 </dd>
2299 <dt>
2300 gc.pruneexpire
2301 </dt>
2302 <dd>
2304 When <em>git gc</em> is run, it will call <em>prune --expire 2.weeks.ago</em>.
2305 Override the grace period with this config variable. The value
2306 "now" may be used to disable this grace period and always prune
2307 unreachable objects immediately.
2308 </p>
2309 </dd>
2310 <dt>
2311 gc.reflogexpire
2312 </dt>
2313 <dt>
2314 gc.&lt;pattern&gt;.reflogexpire
2315 </dt>
2316 <dd>
2318 <em>git reflog expire</em> removes reflog entries older than
2319 this time; defaults to 90 days. With "&lt;pattern&gt;" (e.g.
2320 "refs/stash") in the middle the setting applies only to
2321 the refs that match the &lt;pattern&gt;.
2322 </p>
2323 </dd>
2324 <dt>
2325 gc.reflogexpireunreachable
2326 </dt>
2327 <dt>
2328 gc.&lt;ref&gt;.reflogexpireunreachable
2329 </dt>
2330 <dd>
2332 <em>git reflog expire</em> removes reflog entries older than
2333 this time and are not reachable from the current tip;
2334 defaults to 30 days. With "&lt;pattern&gt;" (e.g. "refs/stash")
2335 in the middle, the setting applies only to the refs that
2336 match the &lt;pattern&gt;.
2337 </p>
2338 </dd>
2339 <dt>
2340 gc.rerereresolved
2341 </dt>
2342 <dd>
2344 Records of conflicted merge you resolved earlier are
2345 kept for this many days when <em>git rerere gc</em> is run.
2346 The default is 60 days. See <a href="git-rerere.html">git-rerere(1)</a>.
2347 </p>
2348 </dd>
2349 <dt>
2350 gc.rerereunresolved
2351 </dt>
2352 <dd>
2354 Records of conflicted merge you have not resolved are
2355 kept for this many days when <em>git rerere gc</em> is run.
2356 The default is 15 days. See <a href="git-rerere.html">git-rerere(1)</a>.
2357 </p>
2358 </dd>
2359 <dt>
2360 gitcvs.commitmsgannotation
2361 </dt>
2362 <dd>
2364 Append this string to each commit message. Set to empty string
2365 to disable this feature. Defaults to "via git-CVS emulator".
2366 </p>
2367 </dd>
2368 <dt>
2369 gitcvs.enabled
2370 </dt>
2371 <dd>
2373 Whether the CVS server interface is enabled for this repository.
2374 See <a href="git-cvsserver.html">git-cvsserver(1)</a>.
2375 </p>
2376 </dd>
2377 <dt>
2378 gitcvs.logfile
2379 </dt>
2380 <dd>
2382 Path to a log file where the CVS server interface well&#8230; logs
2383 various stuff. See <a href="git-cvsserver.html">git-cvsserver(1)</a>.
2384 </p>
2385 </dd>
2386 <dt>
2387 gitcvs.usecrlfattr
2388 </dt>
2389 <dd>
2391 If true, the server will look up the end-of-line conversion
2392 attributes for files to determine the <em>-k</em> modes to use. If
2393 the attributes force git to treat a file as text,
2394 the <em>-k</em> mode will be left blank so cvs clients will
2395 treat it as text. If they suppress text conversion, the file
2396 will be set with <em>-kb</em> mode, which suppresses any newline munging
2397 the client might otherwise do. If the attributes do not allow
2398 the file type to be determined, then <em>gitcvs.allbinary</em> is
2399 used. See <a href="gitattributes.html">gitattributes(5)</a>.
2400 </p>
2401 </dd>
2402 <dt>
2403 gitcvs.allbinary
2404 </dt>
2405 <dd>
2407 This is used if <em>gitcvs.usecrlfattr</em> does not resolve
2408 the correct <em>-kb</em> mode to use. If true, all
2409 unresolved files are sent to the client in
2410 mode <em>-kb</em>. This causes the client to treat them
2411 as binary files, which suppresses any newline munging it
2412 otherwise might do. Alternatively, if it is set to "guess",
2413 then the contents of the file are examined to decide if
2414 it is binary, similar to <em>core.autocrlf</em>.
2415 </p>
2416 </dd>
2417 <dt>
2418 gitcvs.dbname
2419 </dt>
2420 <dd>
2422 Database used by git-cvsserver to cache revision information
2423 derived from the git repository. The exact meaning depends on the
2424 used database driver, for SQLite (which is the default driver) this
2425 is a filename. Supports variable substitution (see
2426 <a href="git-cvsserver.html">git-cvsserver(1)</a> for details). May not contain semicolons (<tt>;</tt>).
2427 Default: <em>%Ggitcvs.%m.sqlite</em>
2428 </p>
2429 </dd>
2430 <dt>
2431 gitcvs.dbdriver
2432 </dt>
2433 <dd>
2435 Used Perl DBI driver. You can specify any available driver
2436 for this here, but it might not work. git-cvsserver is tested
2437 with <em>DBD::SQLite</em>, reported to work with <em>DBD::Pg</em>, and
2438 reported <strong>not</strong> to work with <em>DBD::mysql</em>. Experimental feature.
2439 May not contain double colons (<tt>:</tt>). Default: <em>SQLite</em>.
2440 See <a href="git-cvsserver.html">git-cvsserver(1)</a>.
2441 </p>
2442 </dd>
2443 <dt>
2444 gitcvs.dbuser, gitcvs.dbpass
2445 </dt>
2446 <dd>
2448 Database user and password. Only useful if setting <em>gitcvs.dbdriver</em>,
2449 since SQLite has no concept of database users and/or passwords.
2450 <em>gitcvs.dbuser</em> supports variable substitution (see
2451 <a href="git-cvsserver.html">git-cvsserver(1)</a> for details).
2452 </p>
2453 </dd>
2454 <dt>
2455 gitcvs.dbTableNamePrefix
2456 </dt>
2457 <dd>
2459 Database table name prefix. Prepended to the names of any
2460 database tables used, allowing a single database to be used
2461 for several repositories. Supports variable substitution (see
2462 <a href="git-cvsserver.html">git-cvsserver(1)</a> for details). Any non-alphabetic
2463 characters will be replaced with underscores.
2464 </p>
2465 </dd>
2466 </dl></div>
2467 <div class="para"><p>All gitcvs variables except for <em>gitcvs.usecrlfattr</em> and
2468 <em>gitcvs.allbinary</em> can also be specified as
2469 <em>gitcvs.&lt;access_method&gt;.&lt;varname&gt;</em> (where <em>access_method</em>
2470 is one of "ext" and "pserver") to make them apply only for the given
2471 access method.</p></div>
2472 <div class="vlist"><dl>
2473 <dt>
2474 gui.commitmsgwidth
2475 </dt>
2476 <dd>
2478 Defines how wide the commit message window is in the
2479 <a href="git-gui.html">git-gui(1)</a>. "75" is the default.
2480 </p>
2481 </dd>
2482 <dt>
2483 gui.diffcontext
2484 </dt>
2485 <dd>
2487 Specifies how many context lines should be used in calls to diff
2488 made by the <a href="git-gui.html">git-gui(1)</a>. The default is "5".
2489 </p>
2490 </dd>
2491 <dt>
2492 gui.encoding
2493 </dt>
2494 <dd>
2496 Specifies the default encoding to use for displaying of
2497 file contents in <a href="git-gui.html">git-gui(1)</a> and <a href="gitk.html">gitk(1)</a>.
2498 It can be overridden by setting the <em>encoding</em> attribute
2499 for relevant files (see <a href="gitattributes.html">gitattributes(5)</a>).
2500 If this option is not set, the tools default to the
2501 locale encoding.
2502 </p>
2503 </dd>
2504 <dt>
2505 gui.matchtrackingbranch
2506 </dt>
2507 <dd>
2509 Determines if new branches created with <a href="git-gui.html">git-gui(1)</a> should
2510 default to tracking remote branches with matching names or
2511 not. Default: "false".
2512 </p>
2513 </dd>
2514 <dt>
2515 gui.newbranchtemplate
2516 </dt>
2517 <dd>
2519 Is used as suggested name when creating new branches using the
2520 <a href="git-gui.html">git-gui(1)</a>.
2521 </p>
2522 </dd>
2523 <dt>
2524 gui.pruneduringfetch
2525 </dt>
2526 <dd>
2528 "true" if <a href="git-gui.html">git-gui(1)</a> should prune tracking branches when
2529 performing a fetch. The default value is "false".
2530 </p>
2531 </dd>
2532 <dt>
2533 gui.trustmtime
2534 </dt>
2535 <dd>
2537 Determines if <a href="git-gui.html">git-gui(1)</a> should trust the file modification
2538 timestamp or not. By default the timestamps are not trusted.
2539 </p>
2540 </dd>
2541 <dt>
2542 gui.spellingdictionary
2543 </dt>
2544 <dd>
2546 Specifies the dictionary used for spell checking commit messages in
2547 the <a href="git-gui.html">git-gui(1)</a>. When set to "none" spell checking is turned
2548 off.
2549 </p>
2550 </dd>
2551 <dt>
2552 gui.fastcopyblame
2553 </dt>
2554 <dd>
2556 If true, <em>git gui blame</em> uses <tt>-C</tt> instead of <tt>-C -C</tt> for original
2557 location detection. It makes blame significantly faster on huge
2558 repositories at the expense of less thorough copy detection.
2559 </p>
2560 </dd>
2561 <dt>
2562 gui.copyblamethreshold
2563 </dt>
2564 <dd>
2566 Specifies the threshold to use in <em>git gui blame</em> original location
2567 detection, measured in alphanumeric characters. See the
2568 <a href="git-blame.html">git-blame(1)</a> manual for more information on copy detection.
2569 </p>
2570 </dd>
2571 <dt>
2572 gui.blamehistoryctx
2573 </dt>
2574 <dd>
2576 Specifies the radius of history context in days to show in
2577 <a href="gitk.html">gitk(1)</a> for the selected commit, when the <tt>Show History
2578 Context</tt> menu item is invoked from <em>git gui blame</em>. If this
2579 variable is set to zero, the whole history is shown.
2580 </p>
2581 </dd>
2582 <dt>
2583 guitool.&lt;name&gt;.cmd
2584 </dt>
2585 <dd>
2587 Specifies the shell command line to execute when the corresponding item
2588 of the <a href="git-gui.html">git-gui(1)</a> <tt>Tools</tt> menu is invoked. This option is
2589 mandatory for every tool. The command is executed from the root of
2590 the working directory, and in the environment it receives the name of
2591 the tool as <em>GIT_GUITOOL</em>, the name of the currently selected file as
2592 <em>FILENAME</em>, and the name of the current branch as <em>CUR_BRANCH</em> (if
2593 the head is detached, <em>CUR_BRANCH</em> is empty).
2594 </p>
2595 </dd>
2596 <dt>
2597 guitool.&lt;name&gt;.needsfile
2598 </dt>
2599 <dd>
2601 Run the tool only if a diff is selected in the GUI. It guarantees
2602 that <em>FILENAME</em> is not empty.
2603 </p>
2604 </dd>
2605 <dt>
2606 guitool.&lt;name&gt;.noconsole
2607 </dt>
2608 <dd>
2610 Run the command silently, without creating a window to display its
2611 output.
2612 </p>
2613 </dd>
2614 <dt>
2615 guitool.&lt;name&gt;.norescan
2616 </dt>
2617 <dd>
2619 Don't rescan the working directory for changes after the tool
2620 finishes execution.
2621 </p>
2622 </dd>
2623 <dt>
2624 guitool.&lt;name&gt;.confirm
2625 </dt>
2626 <dd>
2628 Show a confirmation dialog before actually running the tool.
2629 </p>
2630 </dd>
2631 <dt>
2632 guitool.&lt;name&gt;.argprompt
2633 </dt>
2634 <dd>
2636 Request a string argument from the user, and pass it to the tool
2637 through the <em>ARGS</em> environment variable. Since requesting an
2638 argument implies confirmation, the <em>confirm</em> option has no effect
2639 if this is enabled. If the option is set to <em>true</em>, <em>yes</em>, or <em>1</em>,
2640 the dialog uses a built-in generic prompt; otherwise the exact
2641 value of the variable is used.
2642 </p>
2643 </dd>
2644 <dt>
2645 guitool.&lt;name&gt;.revprompt
2646 </dt>
2647 <dd>
2649 Request a single valid revision from the user, and set the
2650 <em>REVISION</em> environment variable. In other aspects this option
2651 is similar to <em>argprompt</em>, and can be used together with it.
2652 </p>
2653 </dd>
2654 <dt>
2655 guitool.&lt;name&gt;.revunmerged
2656 </dt>
2657 <dd>
2659 Show only unmerged branches in the <em>revprompt</em> subdialog.
2660 This is useful for tools similar to merge or rebase, but not
2661 for things like checkout or reset.
2662 </p>
2663 </dd>
2664 <dt>
2665 guitool.&lt;name&gt;.title
2666 </dt>
2667 <dd>
2669 Specifies the title to use for the prompt dialog. The default
2670 is the tool name.
2671 </p>
2672 </dd>
2673 <dt>
2674 guitool.&lt;name&gt;.prompt
2675 </dt>
2676 <dd>
2678 Specifies the general prompt string to display at the top of
2679 the dialog, before subsections for <em>argprompt</em> and <em>revprompt</em>.
2680 The default value includes the actual command.
2681 </p>
2682 </dd>
2683 <dt>
2684 help.browser
2685 </dt>
2686 <dd>
2688 Specify the browser that will be used to display help in the
2689 <em>web</em> format. See <a href="git-help.html">git-help(1)</a>.
2690 </p>
2691 </dd>
2692 <dt>
2693 help.format
2694 </dt>
2695 <dd>
2697 Override the default help format used by <a href="git-help.html">git-help(1)</a>.
2698 Values <em>man</em>, <em>info</em>, <em>web</em> and <em>html</em> are supported. <em>man</em> is
2699 the default. <em>web</em> and <em>html</em> are the same.
2700 </p>
2701 </dd>
2702 <dt>
2703 help.autocorrect
2704 </dt>
2705 <dd>
2707 Automatically correct and execute mistyped commands after
2708 waiting for the given number of deciseconds (0.1 sec). If more
2709 than one command can be deduced from the entered text, nothing
2710 will be executed. If the value of this option is negative,
2711 the corrected command will be executed immediately. If the
2712 value is 0 - the command will be just shown but not executed.
2713 This is the default.
2714 </p>
2715 </dd>
2716 <dt>
2717 http.proxy
2718 </dt>
2719 <dd>
2721 Override the HTTP proxy, normally configured using the <em>http_proxy</em>
2722 environment variable (see <a href="curl.html">curl(1)</a>). This can be overridden
2723 on a per-remote basis; see remote.&lt;name&gt;.proxy
2724 </p>
2725 </dd>
2726 <dt>
2727 http.sslVerify
2728 </dt>
2729 <dd>
2731 Whether to verify the SSL certificate when fetching or pushing
2732 over HTTPS. Can be overridden by the <em>GIT_SSL_NO_VERIFY</em> environment
2733 variable.
2734 </p>
2735 </dd>
2736 <dt>
2737 http.sslCert
2738 </dt>
2739 <dd>
2741 File containing the SSL certificate when fetching or pushing
2742 over HTTPS. Can be overridden by the <em>GIT_SSL_CERT</em> environment
2743 variable.
2744 </p>
2745 </dd>
2746 <dt>
2747 http.sslKey
2748 </dt>
2749 <dd>
2751 File containing the SSL private key when fetching or pushing
2752 over HTTPS. Can be overridden by the <em>GIT_SSL_KEY</em> environment
2753 variable.
2754 </p>
2755 </dd>
2756 <dt>
2757 http.sslCertPasswordProtected
2758 </dt>
2759 <dd>
2761 Enable git's password prompt for the SSL certificate. Otherwise
2762 OpenSSL will prompt the user, possibly many times, if the
2763 certificate or private key is encrypted. Can be overridden by the
2764 <em>GIT_SSL_CERT_PASSWORD_PROTECTED</em> environment variable.
2765 </p>
2766 </dd>
2767 <dt>
2768 http.sslCAInfo
2769 </dt>
2770 <dd>
2772 File containing the certificates to verify the peer with when
2773 fetching or pushing over HTTPS. Can be overridden by the
2774 <em>GIT_SSL_CAINFO</em> environment variable.
2775 </p>
2776 </dd>
2777 <dt>
2778 http.sslCAPath
2779 </dt>
2780 <dd>
2782 Path containing files with the CA certificates to verify the peer
2783 with when fetching or pushing over HTTPS. Can be overridden
2784 by the <em>GIT_SSL_CAPATH</em> environment variable.
2785 </p>
2786 </dd>
2787 <dt>
2788 http.maxRequests
2789 </dt>
2790 <dd>
2792 How many HTTP requests to launch in parallel. Can be overridden
2793 by the <em>GIT_HTTP_MAX_REQUESTS</em> environment variable. Default is 5.
2794 </p>
2795 </dd>
2796 <dt>
2797 http.minSessions
2798 </dt>
2799 <dd>
2801 The number of curl sessions (counted across slots) to be kept across
2802 requests. They will not be ended with curl_easy_cleanup() until
2803 http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this
2804 value will be capped at 1. Defaults to 1.
2805 </p>
2806 </dd>
2807 <dt>
2808 http.postBuffer
2809 </dt>
2810 <dd>
2812 Maximum size in bytes of the buffer used by smart HTTP
2813 transports when POSTing data to the remote system.
2814 For requests larger than this buffer size, HTTP/1.1 and
2815 Transfer-Encoding: chunked is used to avoid creating a
2816 massive pack file locally. Default is 1 MiB, which is
2817 sufficient for most requests.
2818 </p>
2819 </dd>
2820 <dt>
2821 http.lowSpeedLimit, http.lowSpeedTime
2822 </dt>
2823 <dd>
2825 If the HTTP transfer speed is less than <em>http.lowSpeedLimit</em>
2826 for longer than <em>http.lowSpeedTime</em> seconds, the transfer is aborted.
2827 Can be overridden by the <em>GIT_HTTP_LOW_SPEED_LIMIT</em> and
2828 <em>GIT_HTTP_LOW_SPEED_TIME</em> environment variables.
2829 </p>
2830 </dd>
2831 <dt>
2832 http.noEPSV
2833 </dt>
2834 <dd>
2836 A boolean which disables using of EPSV ftp command by curl.
2837 This can helpful with some "poor" ftp servers which don't
2838 support EPSV mode. Can be overridden by the <em>GIT_CURL_FTP_NO_EPSV</em>
2839 environment variable. Default is false (curl will use EPSV).
2840 </p>
2841 </dd>
2842 <dt>
2843 i18n.commitEncoding
2844 </dt>
2845 <dd>
2847 Character encoding the commit messages are stored in; git itself
2848 does not care per se, but this information is necessary e.g. when
2849 importing commits from emails or in the gitk graphical history
2850 browser (and possibly at other places in the future or in other
2851 porcelains). See e.g. <a href="git-mailinfo.html">git-mailinfo(1)</a>. Defaults to <em>utf-8</em>.
2852 </p>
2853 </dd>
2854 <dt>
2855 i18n.logOutputEncoding
2856 </dt>
2857 <dd>
2859 Character encoding the commit messages are converted to when
2860 running <em>git log</em> and friends.
2861 </p>
2862 </dd>
2863 <dt>
2864 imap
2865 </dt>
2866 <dd>
2868 The configuration variables in the <em>imap</em> section are described
2869 in <a href="git-imap-send.html">git-imap-send(1)</a>.
2870 </p>
2871 </dd>
2872 <dt>
2873 init.templatedir
2874 </dt>
2875 <dd>
2877 Specify the directory from which templates will be copied.
2878 (See the "TEMPLATE DIRECTORY" section of <a href="git-init.html">git-init(1)</a>.)
2879 </p>
2880 </dd>
2881 <dt>
2882 instaweb.browser
2883 </dt>
2884 <dd>
2886 Specify the program that will be used to browse your working
2887 repository in gitweb. See <a href="git-instaweb.html">git-instaweb(1)</a>.
2888 </p>
2889 </dd>
2890 <dt>
2891 instaweb.httpd
2892 </dt>
2893 <dd>
2895 The HTTP daemon command-line to start gitweb on your working
2896 repository. See <a href="git-instaweb.html">git-instaweb(1)</a>.
2897 </p>
2898 </dd>
2899 <dt>
2900 instaweb.local
2901 </dt>
2902 <dd>
2904 If true the web server started by <a href="git-instaweb.html">git-instaweb(1)</a> will
2905 be bound to the local IP (127.0.0.1).
2906 </p>
2907 </dd>
2908 <dt>
2909 instaweb.modulepath
2910 </dt>
2911 <dd>
2913 The module path for an apache httpd used by <a href="git-instaweb.html">git-instaweb(1)</a>.
2914 </p>
2915 </dd>
2916 <dt>
2917 instaweb.port
2918 </dt>
2919 <dd>
2921 The port number to bind the gitweb httpd to. See
2922 <a href="git-instaweb.html">git-instaweb(1)</a>.
2923 </p>
2924 </dd>
2925 <dt>
2926 interactive.singlekey
2927 </dt>
2928 <dd>
2930 In interactive commands, allow the user to provide one-letter
2931 input with a single key (i.e., without hitting enter).
2932 Currently this is used only by the <tt>--patch</tt> mode of
2933 <a href="git-add.html">git-add(1)</a>. Note that this setting is silently
2934 ignored if portable keystroke input is not available.
2935 </p>
2936 </dd>
2937 <dt>
2938 log.date
2939 </dt>
2940 <dd>
2942 Set default date-time mode for the log command. Setting log.date
2943 value is similar to using <em>git log</em>'s --date option. The value is one of the
2944 following alternatives: {relative,local,default,iso,rfc,short}.
2945 See <a href="git-log.html">git-log(1)</a>.
2946 </p>
2947 </dd>
2948 <dt>
2949 log.decorate
2950 </dt>
2951 <dd>
2953 Print out the ref names of any commits that are shown by the log
2954 command. If <em>short</em> is specified, the ref name prefixes <em>refs/heads/</em>,
2955 <em>refs/tags/</em> and <em>refs/remotes/</em> will not be printed. If <em>full</em> is
2956 specified, the full ref name (including prefix) will be printed.
2957 This is the same as the log commands <em>--decorate</em> option.
2958 </p>
2959 </dd>
2960 <dt>
2961 log.showroot
2962 </dt>
2963 <dd>
2965 If true, the initial commit will be shown as a big creation event.
2966 This is equivalent to a diff against an empty tree.
2967 Tools like <a href="git-log.html">git-log(1)</a> or <a href="git-whatchanged.html">git-whatchanged(1)</a>, which
2968 normally hide the root commit will now show it. True by default.
2969 </p>
2970 </dd>
2971 <dt>
2972 mailmap.file
2973 </dt>
2974 <dd>
2976 The location of an augmenting mailmap file. The default
2977 mailmap, located in the root of the repository, is loaded
2978 first, then the mailmap file pointed to by this variable.
2979 The location of the mailmap file may be in a repository
2980 subdirectory, or somewhere outside of the repository itself.
2981 See <a href="git-shortlog.html">git-shortlog(1)</a> and <a href="git-blame.html">git-blame(1)</a>.
2982 </p>
2983 </dd>
2984 <dt>
2985 man.viewer
2986 </dt>
2987 <dd>
2989 Specify the programs that may be used to display help in the
2990 <em>man</em> format. See <a href="git-help.html">git-help(1)</a>.
2991 </p>
2992 </dd>
2993 <dt>
2994 man.&lt;tool&gt;.cmd
2995 </dt>
2996 <dd>
2998 Specify the command to invoke the specified man viewer. The
2999 specified command is evaluated in shell with the man page
3000 passed as argument. (See <a href="git-help.html">git-help(1)</a>.)
3001 </p>
3002 </dd>
3003 <dt>
3004 man.&lt;tool&gt;.path
3005 </dt>
3006 <dd>
3008 Override the path for the given tool that may be used to
3009 display help in the <em>man</em> format. See <a href="git-help.html">git-help(1)</a>.
3010 </p>
3011 </dd>
3012 <dt>
3013 merge.conflictstyle
3014 </dt>
3015 <dd>
3017 Specify the style in which conflicted hunks are written out to
3018 working tree files upon merge. The default is "merge", which
3019 shows a <tt>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</tt> conflict marker, changes made by one side,
3020 a <tt>=======</tt> marker, changes made by the other side, and then
3021 a <tt>&gt;&gt;&gt;&gt;&gt;&gt;&gt;</tt> marker. An alternate style, "diff3", adds a <tt>|||||||</tt>
3022 marker and the original text before the <tt>=======</tt> marker.
3023 </p>
3024 </dd>
3025 <dt>
3026 merge.log
3027 </dt>
3028 <dd>
3030 Whether to include summaries of merged commits in newly created
3031 merge commit messages. False by default.
3032 </p>
3033 </dd>
3034 <dt>
3035 merge.renameLimit
3036 </dt>
3037 <dd>
3039 The number of files to consider when performing rename detection
3040 during a merge; if not specified, defaults to the value of
3041 diff.renameLimit.
3042 </p>
3043 </dd>
3044 <dt>
3045 merge.stat
3046 </dt>
3047 <dd>
3049 Whether to print the diffstat between ORIG_HEAD and the merge result
3050 at the end of the merge. True by default.
3051 </p>
3052 </dd>
3053 <dt>
3054 merge.tool
3055 </dt>
3056 <dd>
3058 Controls which merge resolution program is used by
3059 <a href="git-mergetool.html">git-mergetool(1)</a>. Valid built-in values are: "kdiff3",
3060 "tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
3061 "diffuse", "ecmerge", "tortoisemerge", "p4merge", "araxis" and
3062 "opendiff". Any other value is treated is custom merge tool
3063 and there must be a corresponding mergetool.&lt;tool&gt;.cmd option.
3064 </p>
3065 </dd>
3066 <dt>
3067 merge.verbosity
3068 </dt>
3069 <dd>
3071 Controls the amount of output shown by the recursive merge
3072 strategy. Level 0 outputs nothing except a final error
3073 message if conflicts were detected. Level 1 outputs only
3074 conflicts, 2 outputs conflicts and file changes. Level 5 and
3075 above outputs debugging information. The default is level 2.
3076 Can be overridden by the <em>GIT_MERGE_VERBOSITY</em> environment variable.
3077 </p>
3078 </dd>
3079 <dt>
3080 merge.&lt;driver&gt;.name
3081 </dt>
3082 <dd>
3084 Defines a human-readable name for a custom low-level
3085 merge driver. See <a href="gitattributes.html">gitattributes(5)</a> for details.
3086 </p>
3087 </dd>
3088 <dt>
3089 merge.&lt;driver&gt;.driver
3090 </dt>
3091 <dd>
3093 Defines the command that implements a custom low-level
3094 merge driver. See <a href="gitattributes.html">gitattributes(5)</a> for details.
3095 </p>
3096 </dd>
3097 <dt>
3098 merge.&lt;driver&gt;.recursive
3099 </dt>
3100 <dd>
3102 Names a low-level merge driver to be used when
3103 performing an internal merge between common ancestors.
3104 See <a href="gitattributes.html">gitattributes(5)</a> for details.
3105 </p>
3106 </dd>
3107 <dt>
3108 mergetool.&lt;tool&gt;.path
3109 </dt>
3110 <dd>
3112 Override the path for the given tool. This is useful in case
3113 your tool is not in the PATH.
3114 </p>
3115 </dd>
3116 <dt>
3117 mergetool.&lt;tool&gt;.cmd
3118 </dt>
3119 <dd>
3121 Specify the command to invoke the specified merge tool. The
3122 specified command is evaluated in shell with the following
3123 variables available: <em>BASE</em> is the name of a temporary file
3124 containing the common base of the files to be merged, if available;
3125 <em>LOCAL</em> is the name of a temporary file containing the contents of
3126 the file on the current branch; <em>REMOTE</em> is the name of a temporary
3127 file containing the contents of the file from the branch being
3128 merged; <em>MERGED</em> contains the name of the file to which the merge
3129 tool should write the results of a successful merge.
3130 </p>
3131 </dd>
3132 <dt>
3133 mergetool.&lt;tool&gt;.trustExitCode
3134 </dt>
3135 <dd>
3137 For a custom merge command, specify whether the exit code of
3138 the merge command can be used to determine whether the merge was
3139 successful. If this is not set to true then the merge target file
3140 timestamp is checked and the merge assumed to have been successful
3141 if the file has been updated, otherwise the user is prompted to
3142 indicate the success of the merge.
3143 </p>
3144 </dd>
3145 <dt>
3146 mergetool.keepBackup
3147 </dt>
3148 <dd>
3150 After performing a merge, the original file with conflict markers
3151 can be saved as a file with a <tt>.orig</tt> extension. If this variable
3152 is set to <tt>false</tt> then this file is not preserved. Defaults to
3153 <tt>true</tt> (i.e. keep the backup files).
3154 </p>
3155 </dd>
3156 <dt>
3157 mergetool.keepTemporaries
3158 </dt>
3159 <dd>
3161 When invoking a custom merge tool, git uses a set of temporary
3162 files to pass to the tool. If the tool returns an error and this
3163 variable is set to <tt>true</tt>, then these temporary files will be
3164 preserved, otherwise they will be removed after the tool has
3165 exited. Defaults to <tt>false</tt>.
3166 </p>
3167 </dd>
3168 <dt>
3169 mergetool.prompt
3170 </dt>
3171 <dd>
3173 Prompt before each invocation of the merge resolution program.
3174 </p>
3175 </dd>
3176 <dt>
3177 notes.displayRef
3178 </dt>
3179 <dd>
3181 The (fully qualified) refname from which to show notes when
3182 showing commit messages. The value of this variable can be set
3183 to a glob, in which case notes from all matching refs will be
3184 shown. You may also specify this configuration variable
3185 several times. A warning will be issued for refs that do not
3186 exist, but a glob that does not match any refs is silently
3187 ignored.
3188 </p>
3189 <div class="para"><p>This setting can be overridden with the <tt>GIT_NOTES_DISPLAY_REF</tt>
3190 environment variable, which must be a colon separated list of refs or
3191 globs.</p></div>
3192 <div class="para"><p>The effective value of "core.notesRef" (possibly overridden by
3193 GIT_NOTES_REF) is also implicitly added to the list of refs to be
3194 displayed.</p></div>
3195 </dd>
3196 <dt>
3197 notes.rewrite.&lt;command&gt;
3198 </dt>
3199 <dd>
3201 When rewriting commits with &lt;command&gt; (currently <tt>amend</tt> or
3202 <tt>rebase</tt>) and this variable is set to <tt>true</tt>, git
3203 automatically copies your notes from the original to the
3204 rewritten commit. Defaults to <tt>true</tt>, but see
3205 "notes.rewriteRef" below.
3206 </p>
3207 </dd>
3208 <dt>
3209 notes.rewriteMode
3210 </dt>
3211 <dd>
3213 When copying notes during a rewrite (see the
3214 "notes.rewrite.&lt;command&gt;" option), determines what to do if
3215 the target commit already has a note. Must be one of
3216 <tt>overwrite</tt>, <tt>concatenate</tt>, or <tt>ignore</tt>. Defaults to
3217 <tt>concatenate</tt>.
3218 </p>
3219 <div class="para"><p>This setting can be overridden with the <tt>GIT_NOTES_REWRITE_MODE</tt>
3220 environment variable.</p></div>
3221 </dd>
3222 <dt>
3223 notes.rewriteRef
3224 </dt>
3225 <dd>
3227 When copying notes during a rewrite, specifies the (fully
3228 qualified) ref whose notes should be copied. The ref may be a
3229 glob, in which case notes in all matching refs will be copied.
3230 You may also specify this configuration several times.
3231 </p>
3232 <div class="para"><p>Does not have a default value; you must configure this variable to
3233 enable note rewriting.</p></div>
3234 <div class="para"><p>This setting can be overridden with the <tt>GIT_NOTES_REWRITE_REF</tt>
3235 environment variable, which must be a colon separated list of refs or
3236 globs.</p></div>
3237 </dd>
3238 <dt>
3239 pack.window
3240 </dt>
3241 <dd>
3243 The size of the window used by <a href="git-pack-objects.html">git-pack-objects(1)</a> when no
3244 window size is given on the command line. Defaults to 10.
3245 </p>
3246 </dd>
3247 <dt>
3248 pack.depth
3249 </dt>
3250 <dd>
3252 The maximum delta depth used by <a href="git-pack-objects.html">git-pack-objects(1)</a> when no
3253 maximum depth is given on the command line. Defaults to 50.
3254 </p>
3255 </dd>
3256 <dt>
3257 pack.windowMemory
3258 </dt>
3259 <dd>
3261 The window memory size limit used by <a href="git-pack-objects.html">git-pack-objects(1)</a>
3262 when no limit is given on the command line. The value can be
3263 suffixed with "k", "m", or "g". Defaults to 0, meaning no
3264 limit.
3265 </p>
3266 </dd>
3267 <dt>
3268 pack.compression
3269 </dt>
3270 <dd>
3272 An integer -1..9, indicating the compression level for objects
3273 in a pack file. -1 is the zlib default. 0 means no
3274 compression, and 1..9 are various speed/size tradeoffs, 9 being
3275 slowest. If not set, defaults to core.compression. If that is
3276 not set, defaults to -1, the zlib default, which is "a default
3277 compromise between speed and compression (currently equivalent
3278 to level 6)."
3279 </p>
3280 </dd>
3281 <dt>
3282 pack.deltaCacheSize
3283 </dt>
3284 <dd>
3286 The maximum memory in bytes used for caching deltas in
3287 <a href="git-pack-objects.html">git-pack-objects(1)</a> before writing them out to a pack.
3288 This cache is used to speed up the writing object phase by not
3289 having to recompute the final delta result once the best match
3290 for all objects is found. Repacking large repositories on machines
3291 which are tight with memory might be badly impacted by this though,
3292 especially if this cache pushes the system into swapping.
3293 A value of 0 means no limit. The smallest size of 1 byte may be
3294 used to virtually disable this cache. Defaults to 256 MiB.
3295 </p>
3296 </dd>
3297 <dt>
3298 pack.deltaCacheLimit
3299 </dt>
3300 <dd>
3302 The maximum size of a delta, that is cached in
3303 <a href="git-pack-objects.html">git-pack-objects(1)</a>. This cache is used to speed up the
3304 writing object phase by not having to recompute the final delta
3305 result once the best match for all objects is found. Defaults to 1000.
3306 </p>
3307 </dd>
3308 <dt>
3309 pack.threads
3310 </dt>
3311 <dd>
3313 Specifies the number of threads to spawn when searching for best
3314 delta matches. This requires that <a href="git-pack-objects.html">git-pack-objects(1)</a>
3315 be compiled with pthreads otherwise this option is ignored with a
3316 warning. This is meant to reduce packing time on multiprocessor
3317 machines. The required amount of memory for the delta search window
3318 is however multiplied by the number of threads.
3319 Specifying 0 will cause git to auto-detect the number of CPU's
3320 and set the number of threads accordingly.
3321 </p>
3322 </dd>
3323 <dt>
3324 pack.indexVersion
3325 </dt>
3326 <dd>
3328 Specify the default pack index version. Valid values are 1 for
3329 legacy pack index used by Git versions prior to 1.5.2, and 2 for
3330 the new pack index with capabilities for packs larger than 4 GB
3331 as well as proper protection against the repacking of corrupted
3332 packs. Version 2 is the default. Note that version 2 is enforced
3333 and this config option ignored whenever the corresponding pack is
3334 larger than 2 GB.
3335 </p>
3336 <div class="para"><p>If you have an old git that does not understand the version 2 <tt>&#42;.idx</tt> file,
3337 cloning or fetching over a non native protocol (e.g. "http" and "rsync")
3338 that will copy both <tt>&#42;.pack</tt> file and corresponding <tt>&#42;.idx</tt> file from the
3339 other side may give you a repository that cannot be accessed with your
3340 older version of git. If the <tt>&#42;.pack</tt> file is smaller than 2 GB, however,
3341 you can use <a href="git-index-pack.html">git-index-pack(1)</a> on the *.pack file to regenerate
3342 the <tt>&#42;.idx</tt> file.</p></div>
3343 </dd>
3344 <dt>
3345 pack.packSizeLimit
3346 </dt>
3347 <dd>
3349 The maximum size of a pack. This setting only affects
3350 packing to a file when repacking, i.e. the git:// protocol
3351 is unaffected. It can be overridden by the <tt>--max-pack-size</tt>
3352 option of <a href="git-repack.html">git-repack(1)</a>. The minimum size allowed is
3353 limited to 1 MiB. The default is unlimited.
3354 Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are
3355 supported.
3356 </p>
3357 </dd>
3358 <dt>
3359 pager.&lt;cmd&gt;
3360 </dt>
3361 <dd>
3363 Allows turning on or off pagination of the output of a
3364 particular git subcommand when writing to a tty. If
3365 <tt>--paginate</tt> or <tt>--no-pager</tt> is specified on the command line,
3366 it takes precedence over this option. To disable pagination for
3367 all commands, set <tt>core.pager</tt> or <tt>GIT_PAGER</tt> to <tt>cat</tt>.
3368 </p>
3369 </dd>
3370 <dt>
3371 pretty.&lt;name&gt;
3372 </dt>
3373 <dd>
3375 Alias for a --pretty= format string, as specified in
3376 <a href="git-log.html">git-log(1)</a>. Any aliases defined here can be used just
3377 as the built-in pretty formats could. For example,
3378 running <tt>git config pretty.changelog "format:&#42; %H %s"</tt>
3379 would cause the invocation <tt>git log --pretty=changelog</tt>
3380 to be equivalent to running <tt>git log "--pretty=format:&#42; %H %s"</tt>.
3381 Note that an alias with the same name as a built-in format
3382 will be silently ignored.
3383 </p>
3384 </dd>
3385 <dt>
3386 pull.octopus
3387 </dt>
3388 <dd>
3390 The default merge strategy to use when pulling multiple branches
3391 at once.
3392 </p>
3393 </dd>
3394 <dt>
3395 pull.twohead
3396 </dt>
3397 <dd>
3399 The default merge strategy to use when pulling a single branch.
3400 </p>
3401 </dd>
3402 <dt>
3403 push.default
3404 </dt>
3405 <dd>
3407 Defines the action git push should take if no refspec is given
3408 on the command line, no refspec is configured in the remote, and
3409 no refspec is implied by any of the options given on the command
3410 line. Possible values are:
3411 </p>
3412 <div class="ilist"><ul>
3413 <li>
3415 <tt>nothing</tt> do not push anything.
3416 </p>
3417 </li>
3418 <li>
3420 <tt>matching</tt> push all matching branches.
3421 All branches having the same name in both ends are considered to be
3422 matching. This is the default.
3423 </p>
3424 </li>
3425 <li>
3427 <tt>tracking</tt> push the current branch to its upstream branch.
3428 </p>
3429 </li>
3430 <li>
3432 <tt>current</tt> push the current branch to a branch of the same name.
3433 </p>
3434 </li>
3435 </ul></div>
3436 </dd>
3437 <dt>
3438 rebase.stat
3439 </dt>
3440 <dd>
3442 Whether to show a diffstat of what changed upstream since the last
3443 rebase. False by default.
3444 </p>
3445 </dd>
3446 <dt>
3447 receive.autogc
3448 </dt>
3449 <dd>
3451 By default, git-receive-pack will run "git-gc --auto" after
3452 receiving data from git-push and updating refs. You can stop
3453 it by setting this variable to false.
3454 </p>
3455 </dd>
3456 <dt>
3457 receive.fsckObjects
3458 </dt>
3459 <dd>
3461 If it is set to true, git-receive-pack will check all received
3462 objects. It will abort in the case of a malformed object or a
3463 broken link. The result of an abort are only dangling objects.
3464 Defaults to false.
3465 </p>
3466 </dd>
3467 <dt>
3468 receive.unpackLimit
3469 </dt>
3470 <dd>
3472 If the number of objects received in a push is below this
3473 limit then the objects will be unpacked into loose object
3474 files. However if the number of received objects equals or
3475 exceeds this limit then the received pack will be stored as
3476 a pack, after adding any missing delta bases. Storing the
3477 pack from a push can make the push operation complete faster,
3478 especially on slow filesystems. If not set, the value of
3479 <tt>transfer.unpackLimit</tt> is used instead.
3480 </p>
3481 </dd>
3482 <dt>
3483 receive.denyDeletes
3484 </dt>
3485 <dd>
3487 If set to true, git-receive-pack will deny a ref update that deletes
3488 the ref. Use this to prevent such a ref deletion via a push.
3489 </p>
3490 </dd>
3491 <dt>
3492 receive.denyCurrentBranch
3493 </dt>
3494 <dd>
3496 If set to true or "refuse", git-receive-pack will deny a ref update
3497 to the currently checked out branch of a non-bare repository.
3498 Such a push is potentially dangerous because it brings the HEAD
3499 out of sync with the index and working tree. If set to "warn",
3500 print a warning of such a push to stderr, but allow the push to
3501 proceed. If set to false or "ignore", allow such pushes with no
3502 message. Defaults to "refuse".
3503 </p>
3504 </dd>
3505 <dt>
3506 receive.denyNonFastForwards
3507 </dt>
3508 <dd>
3510 If set to true, git-receive-pack will deny a ref update which is
3511 not a fast-forward. Use this to prevent such an update via a push,
3512 even if that push is forced. This configuration variable is
3513 set when initializing a shared repository.
3514 </p>
3515 </dd>
3516 <dt>
3517 receive.updateserverinfo
3518 </dt>
3519 <dd>
3521 If set to true, git-receive-pack will run git-update-server-info
3522 after receiving data from git-push and updating refs.
3523 </p>
3524 </dd>
3525 <dt>
3526 remote.&lt;name&gt;.url
3527 </dt>
3528 <dd>
3530 The URL of a remote repository. See <a href="git-fetch.html">git-fetch(1)</a> or
3531 <a href="git-push.html">git-push(1)</a>.
3532 </p>
3533 </dd>
3534 <dt>
3535 remote.&lt;name&gt;.pushurl
3536 </dt>
3537 <dd>
3539 The push URL of a remote repository. See <a href="git-push.html">git-push(1)</a>.
3540 </p>
3541 </dd>
3542 <dt>
3543 remote.&lt;name&gt;.proxy
3544 </dt>
3545 <dd>
3547 For remotes that require curl (http, https and ftp), the URL to
3548 the proxy to use for that remote. Set to the empty string to
3549 disable proxying for that remote.
3550 </p>
3551 </dd>
3552 <dt>
3553 remote.&lt;name&gt;.fetch
3554 </dt>
3555 <dd>
3557 The default set of "refspec" for <a href="git-fetch.html">git-fetch(1)</a>. See
3558 <a href="git-fetch.html">git-fetch(1)</a>.
3559 </p>
3560 </dd>
3561 <dt>
3562 remote.&lt;name&gt;.push
3563 </dt>
3564 <dd>
3566 The default set of "refspec" for <a href="git-push.html">git-push(1)</a>. See
3567 <a href="git-push.html">git-push(1)</a>.
3568 </p>
3569 </dd>
3570 <dt>
3571 remote.&lt;name&gt;.mirror
3572 </dt>
3573 <dd>
3575 If true, pushing to this remote will automatically behave
3576 as if the <tt>--mirror</tt> option was given on the command line.
3577 </p>
3578 </dd>
3579 <dt>
3580 remote.&lt;name&gt;.skipDefaultUpdate
3581 </dt>
3582 <dd>
3584 If true, this remote will be skipped by default when updating
3585 using <a href="git-fetch.html">git-fetch(1)</a> or the <tt>update</tt> subcommand of
3586 <a href="git-remote.html">git-remote(1)</a>.
3587 </p>
3588 </dd>
3589 <dt>
3590 remote.&lt;name&gt;.skipFetchAll
3591 </dt>
3592 <dd>
3594 If true, this remote will be skipped by default when updating
3595 using <a href="git-fetch.html">git-fetch(1)</a> or the <tt>update</tt> subcommand of
3596 <a href="git-remote.html">git-remote(1)</a>.
3597 </p>
3598 </dd>
3599 <dt>
3600 remote.&lt;name&gt;.receivepack
3601 </dt>
3602 <dd>
3604 The default program to execute on the remote side when pushing. See
3605 option --receive-pack of <a href="git-push.html">git-push(1)</a>.
3606 </p>
3607 </dd>
3608 <dt>
3609 remote.&lt;name&gt;.uploadpack
3610 </dt>
3611 <dd>
3613 The default program to execute on the remote side when fetching. See
3614 option --upload-pack of <a href="git-fetch-pack.html">git-fetch-pack(1)</a>.
3615 </p>
3616 </dd>
3617 <dt>
3618 remote.&lt;name&gt;.tagopt
3619 </dt>
3620 <dd>
3622 Setting this value to --no-tags disables automatic tag following when
3623 fetching from remote &lt;name&gt;. Setting it to --tags will fetch every
3624 tag from remote &lt;name&gt;, even if they are not reachable from remote
3625 branch heads.
3626 </p>
3627 </dd>
3628 <dt>
3629 remote.&lt;name&gt;.vcs
3630 </dt>
3631 <dd>
3633 Setting this to a value &lt;vcs&gt; will cause git to interact with
3634 the remote with the git-remote-&lt;vcs&gt; helper.
3635 </p>
3636 </dd>
3637 <dt>
3638 remotes.&lt;group&gt;
3639 </dt>
3640 <dd>
3642 The list of remotes which are fetched by "git remote update
3643 &lt;group&gt;". See <a href="git-remote.html">git-remote(1)</a>.
3644 </p>
3645 </dd>
3646 <dt>
3647 repack.usedeltabaseoffset
3648 </dt>
3649 <dd>
3651 By default, <a href="git-repack.html">git-repack(1)</a> creates packs that use
3652 delta-base offset. If you need to share your repository with
3653 git older than version 1.4.4, either directly or via a dumb
3654 protocol such as http, then you need to set this option to
3655 "false" and repack. Access from old git versions over the
3656 native protocol are unaffected by this option.
3657 </p>
3658 </dd>
3659 <dt>
3660 rerere.autoupdate
3661 </dt>
3662 <dd>
3664 When set to true, <tt>git-rerere</tt> updates the index with the
3665 resulting contents after it cleanly resolves conflicts using
3666 previously recorded resolution. Defaults to false.
3667 </p>
3668 </dd>
3669 <dt>
3670 rerere.enabled
3671 </dt>
3672 <dd>
3674 Activate recording of resolved conflicts, so that identical
3675 conflict hunks can be resolved automatically, should they
3676 be encountered again. <a href="git-rerere.html">git-rerere(1)</a> command is by
3677 default enabled if you create <tt>rr-cache</tt> directory under
3678 <tt>$GIT_DIR</tt>, but can be disabled by setting this option to false.
3679 </p>
3680 </dd>
3681 <dt>
3682 sendemail.identity
3683 </dt>
3684 <dd>
3686 A configuration identity. When given, causes values in the
3687 <em>sendemail.&lt;identity&gt;</em> subsection to take precedence over
3688 values in the <em>sendemail</em> section. The default identity is
3689 the value of <em>sendemail.identity</em>.
3690 </p>
3691 </dd>
3692 <dt>
3693 sendemail.smtpencryption
3694 </dt>
3695 <dd>
3697 See <a href="git-send-email.html">git-send-email(1)</a> for description. Note that this
3698 setting is not subject to the <em>identity</em> mechanism.
3699 </p>
3700 </dd>
3701 <dt>
3702 sendemail.smtpssl
3703 </dt>
3704 <dd>
3706 Deprecated alias for <em>sendemail.smtpencryption = ssl</em>.
3707 </p>
3708 </dd>
3709 <dt>
3710 sendemail.&lt;identity&gt;.*
3711 </dt>
3712 <dd>
3714 Identity-specific versions of the <em>sendemail.*</em> parameters
3715 found below, taking precedence over those when the this
3716 identity is selected, through command-line or
3717 <em>sendemail.identity</em>.
3718 </p>
3719 </dd>
3720 <dt>
3721 sendemail.aliasesfile
3722 </dt>
3723 <dt>
3724 sendemail.aliasfiletype
3725 </dt>
3726 <dt>
3727 sendemail.bcc
3728 </dt>
3729 <dt>
3730 sendemail.cc
3731 </dt>
3732 <dt>
3733 sendemail.cccmd
3734 </dt>
3735 <dt>
3736 sendemail.chainreplyto
3737 </dt>
3738 <dt>
3739 sendemail.confirm
3740 </dt>
3741 <dt>
3742 sendemail.envelopesender
3743 </dt>
3744 <dt>
3745 sendemail.from
3746 </dt>
3747 <dt>
3748 sendemail.multiedit
3749 </dt>
3750 <dt>
3751 sendemail.signedoffbycc
3752 </dt>
3753 <dt>
3754 sendemail.smtppass
3755 </dt>
3756 <dt>
3757 sendemail.suppresscc
3758 </dt>
3759 <dt>
3760 sendemail.suppressfrom
3761 </dt>
3762 <dt>
3763 sendemail.to
3764 </dt>
3765 <dt>
3766 sendemail.smtpdomain
3767 </dt>
3768 <dt>
3769 sendemail.smtpserver
3770 </dt>
3771 <dt>
3772 sendemail.smtpserverport
3773 </dt>
3774 <dt>
3775 sendemail.smtpuser
3776 </dt>
3777 <dt>
3778 sendemail.thread
3779 </dt>
3780 <dt>
3781 sendemail.validate
3782 </dt>
3783 <dd>
3785 See <a href="git-send-email.html">git-send-email(1)</a> for description.
3786 </p>
3787 </dd>
3788 <dt>
3789 sendemail.signedoffcc
3790 </dt>
3791 <dd>
3793 Deprecated alias for <em>sendemail.signedoffbycc</em>.
3794 </p>
3795 </dd>
3796 <dt>
3797 showbranch.default
3798 </dt>
3799 <dd>
3801 The default set of branches for <a href="git-show-branch.html">git-show-branch(1)</a>.
3802 See <a href="git-show-branch.html">git-show-branch(1)</a>.
3803 </p>
3804 </dd>
3805 <dt>
3806 status.relativePaths
3807 </dt>
3808 <dd>
3810 By default, <a href="git-status.html">git-status(1)</a> shows paths relative to the
3811 current directory. Setting this variable to <tt>false</tt> shows paths
3812 relative to the repository root (this was the default for git
3813 prior to v1.5.4).
3814 </p>
3815 </dd>
3816 <dt>
3817 status.showUntrackedFiles
3818 </dt>
3819 <dd>
3821 By default, <a href="git-status.html">git-status(1)</a> and <a href="git-commit.html">git-commit(1)</a> show
3822 files which are not currently tracked by Git. Directories which
3823 contain only untracked files, are shown with the directory name
3824 only. Showing untracked files means that Git needs to lstat() all
3825 all the files in the whole repository, which might be slow on some
3826 systems. So, this variable controls how the commands displays
3827 the untracked files. Possible values are:
3828 </p>
3829 <div class="ilist"><ul>
3830 <li>
3832 <em>no</em> - Show no untracked files
3833 </p>
3834 </li>
3835 <li>
3837 <em>normal</em> - Shows untracked files and directories
3838 </p>
3839 </li>
3840 <li>
3842 <em>all</em> - Shows also individual files in untracked directories.
3843 </p>
3844 </li>
3845 </ul></div>
3846 <div class="para"><p>If this variable is not specified, it defaults to <em>normal</em>.
3847 This variable can be overridden with the -u|--untracked-files option
3848 of <a href="git-status.html">git-status(1)</a> and <a href="git-commit.html">git-commit(1)</a>.</p></div>
3849 </dd>
3850 <dt>
3851 status.submodulesummary
3852 </dt>
3853 <dd>
3855 Defaults to false.
3856 If this is set to a non zero number or true (identical to -1 or an
3857 unlimited number), the submodule summary will be enabled and a
3858 summary of commits for modified submodules will be shown (see
3859 --summary-limit option of <a href="git-submodule.html">git-submodule(1)</a>).
3860 </p>
3861 </dd>
3862 <dt>
3863 tar.umask
3864 </dt>
3865 <dd>
3867 This variable can be used to restrict the permission bits of
3868 tar archive entries. The default is 0002, which turns off the
3869 world write bit. The special value "user" indicates that the
3870 archiving user's umask will be used instead. See umask(2) and
3871 <a href="git-archive.html">git-archive(1)</a>.
3872 </p>
3873 </dd>
3874 <dt>
3875 transfer.unpackLimit
3876 </dt>
3877 <dd>
3879 When <tt>fetch.unpackLimit</tt> or <tt>receive.unpackLimit</tt> are
3880 not set, the value of this variable is used instead.
3881 The default value is 100.
3882 </p>
3883 </dd>
3884 <dt>
3885 url.&lt;base&gt;.insteadOf
3886 </dt>
3887 <dd>
3889 Any URL that starts with this value will be rewritten to
3890 start, instead, with &lt;base&gt;. In cases where some site serves a
3891 large number of repositories, and serves them with multiple
3892 access methods, and some users need to use different access
3893 methods, this feature allows people to specify any of the
3894 equivalent URLs and have git automatically rewrite the URL to
3895 the best alternative for the particular user, even for a
3896 never-before-seen repository on the site. When more than one
3897 insteadOf strings match a given URL, the longest match is used.
3898 </p>
3899 </dd>
3900 <dt>
3901 url.&lt;base&gt;.pushInsteadOf
3902 </dt>
3903 <dd>
3905 Any URL that starts with this value will not be pushed to;
3906 instead, it will be rewritten to start with &lt;base&gt;, and the
3907 resulting URL will be pushed to. In cases where some site serves
3908 a large number of repositories, and serves them with multiple
3909 access methods, some of which do not allow push, this feature
3910 allows people to specify a pull-only URL and have git
3911 automatically use an appropriate URL to push, even for a
3912 never-before-seen repository on the site. When more than one
3913 pushInsteadOf strings match a given URL, the longest match is
3914 used. If a remote has an explicit pushurl, git will ignore this
3915 setting for that remote.
3916 </p>
3917 </dd>
3918 <dt>
3919 user.email
3920 </dt>
3921 <dd>
3923 Your email address to be recorded in any newly created commits.
3924 Can be overridden by the <em>GIT_AUTHOR_EMAIL</em>, <em>GIT_COMMITTER_EMAIL</em>, and
3925 <em>EMAIL</em> environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.
3926 </p>
3927 </dd>
3928 <dt>
3929 user.name
3930 </dt>
3931 <dd>
3933 Your full name to be recorded in any newly created commits.
3934 Can be overridden by the <em>GIT_AUTHOR_NAME</em> and <em>GIT_COMMITTER_NAME</em>
3935 environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.
3936 </p>
3937 </dd>
3938 <dt>
3939 user.signingkey
3940 </dt>
3941 <dd>
3943 If <a href="git-tag.html">git-tag(1)</a> is not selecting the key you want it to
3944 automatically when creating a signed tag, you can override the
3945 default selection with this variable. This option is passed
3946 unchanged to gpg's --local-user parameter, so you may specify a key
3947 using any method that gpg supports.
3948 </p>
3949 </dd>
3950 <dt>
3951 web.browser
3952 </dt>
3953 <dd>
3955 Specify a web browser that may be used by some commands.
3956 Currently only <a href="git-instaweb.html">git-instaweb(1)</a> and <a href="git-help.html">git-help(1)</a>
3957 may use it.
3958 </p>
3959 </dd>
3960 </dl></div>
3961 </div>
3962 <h2 id="_author">Author</h2>
3963 <div class="sectionbody">
3964 <div class="para"><p>Written by Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;</p></div>
3965 </div>
3966 <h2 id="_documentation">Documentation</h2>
3967 <div class="sectionbody">
3968 <div class="para"><p>Documentation by Johannes Schindelin, Petr Baudis and the git-list &lt;git@vger.kernel.org&gt;.</p></div>
3969 </div>
3970 <h2 id="_git">GIT</h2>
3971 <div class="sectionbody">
3972 <div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
3973 </div>
3974 <div id="footer">
3975 <div id="footer-text">
3976 Last updated 2010-07-13 22:47:44 UTC
3977 </div>
3978 </div>
3979 </body>
3980 </html>