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