<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="generator" content="Asciidoctor 2.0.23"/>
<title>git-config(1)</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"/>
<style>
/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment the following line when using as a custom stylesheet */
/* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
html{font-family:sans-serif;-webkit-text-size-adjust:100%}
a{background:none}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
b,strong{font-weight:bold}
abbr{font-size:.9em}
abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
dfn{font-style:italic}
hr{height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type=checkbox],input[type=radio]{padding:0}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,::before,::after{box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:0}
p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ul.square{list-style-type:square}
ul.circle ul:not([class]),ul.disc ul:not([class]),ul.square ul:not([class]){list-style:inherit}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}
table thead,table tfoot{background:#f7f8f7}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre).nobreak{word-wrap:normal}
:not(pre).nowrap{white-space:nowrap}
:not(pre).pre-wrap{white-space:pre-wrap}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block}
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
b.button::before{content:"[";padding:0 3px 0 2px}
b.button::after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
#content{margin-top:1.25em}
#content::before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
#header>h1:only-child{border-bottom:1px solid #dddddf;padding-bottom:8px}
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span::before{content:"\00a0\2013\00a0"}
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber::after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:hsla(0,0%,100%,.8);line-height:1.44}
#content{margin-bottom:.625em}
.sect1{padding-bottom:.625em}
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
.sect1{padding-bottom:1.25em}}
.sect1:last-child{padding-bottom:0}
.sect1+.sect1{border-top:1px solid #e7e7e9}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details{margin-left:1.25rem}
details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;outline:none;-webkit-tap-highlight-color:transparent}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)}
details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}
details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
.paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}
.sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:first-child,.sidebarblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child,.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
.listingblock>.content{position:relative}
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
.listingblock:hover code[data-lang]::before{display:block}
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.prettyprint{background:#f7f7f8}
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
pre.prettyprint li code[data-lang]::before{opacity:1}
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos,pre.pygments .linenos{border-right:1px solid;opacity:.35;padding-right:.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
pre.pygments span.linenos{display:inline-block;margin-right:.75em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
.verseblock{margin:0 1em 1.25em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>*>tr>*{border-width:1px}
table.grid-cols>*>tr>*{border-width:0 1px}
table.grid-rows>*>tr>*{border-width:1px 0}
table.frame-all{border-width:1px}
table.frame-ends{border-width:1px 0}
table.frame-sides{border-width:0 1px}
table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
table.stripes-all>*>tr,table.stripes-odd>*>tr:nth-of-type(odd),table.stripes-even>*>tr:nth-of-type(even),table.stripes-hover>*>tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
li>p:empty:only-child::before{content:"";display:inline-block}
ul.checklist>li>p:first-child{margin-left:-1em}
ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}
ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
ul.inline>li{margin-left:1.25em}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
td.hdlist2{word-wrap:anywhere}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none}
.colist td:not([class]):last-child{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}
.imageblock.left{margin:.25em .625em 1.25em 0}
.imageblock.right{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active,#footnotes .footnote a:first-of-type:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background:#00fafa}
.black{color:#000}
.black-background{background:#000}
.blue{color:#0000bf}
.blue-background{background:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background:#fa00fa}
.gray{color:#606060}
.gray-background{background:#7d7d7d}
.green{color:#006000}
.green-background{background:#007d00}
.lime{color:#00bf00}
.lime-background{background:#00fa00}
.maroon{color:#600000}
.maroon-background{background:#7d0000}
.navy{color:#000060}
.navy-background{background:#00007d}
.olive{color:#606000}
.olive-background{background:#7d7d00}
.purple{color:#600060}
.purple-background{background:#7d007d}
.red{color:#bf0000}
.red-background{background:#fa0000}
.silver{color:#909090}
.silver-background{background:#bcbcbc}
.teal{color:#006060}
.teal-background{background:#007d7d}
.white{color:#bfbfbf}
.white-background{background:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,td.hdlist1,span.alt,summary{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@page{margin:1.25cm .75cm}
@media print{*{box-shadow:none!important;text-shadow:none!important}
html{font-size:80%}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]{border-bottom:1px dotted}
abbr[title]::after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#header,#content,#footnotes,#footer{max-width:none}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span::before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]::before{display:block}
#footer{padding:0 .9375em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
@media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}
.sect1{padding:0!important}
.sect1+.sect1{border:0}
#footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style>
<style>
pre>code {
   display: inline;
}
</style>
</head>
<body class="manpage">
<div id="header">
<h1>git-config(1) Manual Page</h1>
<h2 id="_name">NAME</h2>
<div class="sectionbody">
<p>git-config - Get and set repository or global options</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>git config list</em> [&lt;file-option&gt;] [&lt;display-option&gt;] [--includes]
<em>git config get</em> [&lt;file-option&gt;] [&lt;display-option&gt;] [--includes] [--all] [--regexp] [--value=&lt;pattern&gt;] [--fixed-value] [--default=&lt;default&gt;] [--url=&lt;url&gt;] &lt;name&gt;
<em>git config set</em> [&lt;file-option&gt;] [--type=&lt;type&gt;] [--all] [--value=&lt;pattern&gt;] [--fixed-value] &lt;name&gt; &lt;value&gt;
<em>git config unset</em> [&lt;file-option&gt;] [--all] [--value=&lt;pattern&gt;] [--fixed-value] &lt;name&gt;
<em>git config rename-section</em> [&lt;file-option&gt;] &lt;old-name&gt; &lt;new-name&gt;
<em>git config remove-section</em> [&lt;file-option&gt;] &lt;name&gt;
<em>git config edit</em> [&lt;file-option&gt;]
<em>git config</em> [&lt;file-option&gt;] --get-colorbool &lt;name&gt; [&lt;stdout-is-tty&gt;]</pre>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph">
<p>You can query/set/replace/unset options with this command. The name is
actually the section and the key separated by a dot, and the value will be
escaped.</p>
</div>
<div class="paragraph">
<p>Multiple lines can be added to an option by using the <code>--append</code> option.
If you want to update or unset an option which can occur on multiple
lines, <code>--value=</code><em>&lt;pattern&gt;</em> (which is an extended regular expression,
unless the <code>--fixed-value</code> option is given) needs to be given.  Only the
existing values that match the pattern are updated or unset.  If
you want to handle the lines that do <strong>not</strong> match the pattern, just
prepend a single exclamation mark in front (see also <a href="#EXAMPLES">EXAMPLES</a>),
but note that this only works when the <code>--fixed-value</code> option is not
in use.</p>
</div>
<div class="paragraph">
<p>The <code>--type=</code><em>&lt;type&gt;</em> option instructs <em>git config</em> to ensure that incoming and
outgoing values are canonicalize-able under the given &lt;type&gt;.  If no
<code>--type=</code><em>&lt;type&gt;</em> is given, no canonicalization will be performed. Callers may
unset an existing <code>--type</code> specifier with <code>--no-type</code>.</p>
</div>
<div class="paragraph">
<p>When reading, the values are read from the system, global and
repository local configuration files by default, and options
<code>--system</code>, <code>--global</code>, <code>--local</code>, <code>--worktree</code> and
<code>--file</code> <em>&lt;filename&gt;</em> can be used to tell the command to read from only
that location (see <a href="#FILES">FILES</a>).</p>
</div>
<div class="paragraph">
<p>When writing, the new value is written to the repository local
configuration file by default, and options <code>--system</code>, <code>--global</code>,
<code>--worktree</code>, <code>--file</code> <em>&lt;filename&gt;</em> can be used to tell the command to
write to that location (you can say <code>--local</code> but that is the
default).</p>
</div>
<div class="paragraph">
<p>This command will fail with non-zero status upon error.  Some exit
codes are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The section or key is invalid (ret=1),</p>
</li>
<li>
<p>no section or name was provided (ret=2),</p>
</li>
<li>
<p>the config file is invalid (ret=3),</p>
</li>
<li>
<p>the config file cannot be written (ret=4),</p>
</li>
<li>
<p>you try to unset an option which does not exist (ret=5),</p>
</li>
<li>
<p>you try to unset/set an option for which multiple lines match (ret=5), or</p>
</li>
<li>
<p>you try to use an invalid regexp (ret=6).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>On success, the command returns the exit code 0.</p>
</div>
<div class="paragraph">
<p>A list of all available configuration variables can be obtained using the
<code>git</code> <code>help</code> <code>--config</code> command.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_commands">COMMANDS</h2>
<div class="sectionbody">
<div class="dlist">
<dl>
<dt class="hdlist1">list</dt>
<dd>
<p>List all variables set in config file, along with their values.</p>
</dd>
<dt class="hdlist1">get</dt>
<dd>
<p>Emits the value of the specified key. If key is present multiple times
in the configuration, emits the last value. If <code>--all</code> is specified,
emits all values associated with key. Returns error code 1 if key is
not present.</p>
</dd>
<dt class="hdlist1">set</dt>
<dd>
<p>Set value for one or more config options. By default, this command
refuses to write multi-valued config options. Passing <code>--all</code> will
replace all multi-valued config options with the new value, whereas
<code>--value=</code> will replace all config options whose values match the given
pattern.</p>
</dd>
<dt class="hdlist1">unset</dt>
<dd>
<p>Unset value for one or more config options. By default, this command
refuses to unset multi-valued keys. Passing <code>--all</code> will unset all
multi-valued config options, whereas <code>--value</code> will unset all config
options whose values match the given pattern.</p>
</dd>
<dt class="hdlist1">rename-section</dt>
<dd>
<p>Rename the given section to a new name.</p>
</dd>
<dt class="hdlist1">remove-section</dt>
<dd>
<p>Remove the given section from the configuration file.</p>
</dd>
<dt class="hdlist1">edit</dt>
<dd>
<p>Opens an editor to modify the specified config file; either
<code>--system</code>, <code>--global</code>, <code>--local</code> (default), <code>--worktree</code>, or
<code>--file</code> <em>&lt;config-file&gt;</em>.</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="sect1">
<h2 id="OPTIONS">OPTIONS</h2>
<div class="sectionbody">
<div class="dlist">
<dl>
<dt class="hdlist1">--replace-all</dt>
<dd>
<p>Default behavior is to replace at most one line. This replaces
all lines matching the key (and optionally <code>--value=</code><em>&lt;pattern&gt;</em>).</p>
</dd>
<dt class="hdlist1">--append</dt>
<dd>
<p>Adds a new line to the option without altering any existing
values. This is the same as providing <em>--value=^$</em> in <code>set</code>.</p>
</dd>
<dt class="hdlist1">--comment &lt;message&gt;</dt>
<dd>
<p>Append a comment at the end of new or modified lines.</p>
<div class="literalblock">
<div class="content">
<pre>If _&lt;message&gt;_ begins with one or more whitespaces followed
by "#", it is used as-is.  If it begins with "#", a space is
prepended before it is used.  Otherwise, a string " # " (a
space followed by a hash followed by a space) is prepended
to it.  And the resulting string is placed immediately after
the value defined for the variable.  The _&lt;message&gt;_ must
not contain linefeed characters (no multi-line comments are
permitted).</pre>
</div>
</div>
</dd>
<dt class="hdlist1">--all</dt>
<dd>
<p>With <code>get</code>, return all values for a multi-valued key.</p>
</dd>
<dt class="hdlist1">--regexp</dt>
<dd>
<p>With <code>get</code>, interpret the name as a regular expression. Regular
expression matching is currently case-sensitive and done against a
canonicalized version of the key in which section and variable names
are lowercased, but subsection names are not.</p>
</dd>
<dt class="hdlist1">--url=&lt;URL&gt;</dt>
<dd>
<p>When given a two-part &lt;name&gt; as &lt;section&gt;.&lt;key&gt;, the value for
&lt;section&gt;.&lt;URL&gt;.&lt;key&gt; whose &lt;URL&gt; part matches the best to the
given URL is returned (if no such key exists, the value for
&lt;section&gt;.&lt;key&gt; is used as a fallback).  When given just the
&lt;section&gt; as name, do so for all the keys in the section and
list them.  Returns error code 1 if no value is found.</p>
</dd>
<dt class="hdlist1">--global</dt>
<dd>
<p>For writing options: write to global <code>~/.gitconfig</code> file
rather than the repository .<code>git/config</code>, write to
<code>$XDG_CONFIG_HOME/git/config</code> file if this file exists and the
<code>~/.gitconfig</code> file doesn&#8217;t.</p>
<div class="paragraph">
<p>For reading options: read only from global <code>~/.gitconfig</code> and from
<code>$XDG_CONFIG_HOME/git/config</code> rather than from all available files.</p>
</div>
<div class="paragraph">
<p>See also <a href="#FILES">FILES</a>.</p>
</div>
</dd>
<dt class="hdlist1">--system</dt>
<dd>
<p>For writing options: write to system-wide
<code>$</code>(<code>prefix</code>)<code>/etc/gitconfig</code> rather than the repository
.<code>git/config</code>.</p>
<div class="paragraph">
<p>For reading options: read only from system-wide <code>$</code>(<code>prefix</code>)<code>/etc/gitconfig</code>
rather than from all available files.</p>
</div>
<div class="paragraph">
<p>See also <a href="#FILES">FILES</a>.</p>
</div>
</dd>
<dt class="hdlist1">--local</dt>
<dd>
<p>For writing options: write to the repository .<code>git/config</code> file.
This is the default behavior.</p>
<div class="paragraph">
<p>For reading options: read only from the repository .<code>git/config</code> rather than
from all available files.</p>
</div>
<div class="paragraph">
<p>See also <a href="#FILES">FILES</a>.</p>
</div>
</dd>
<dt class="hdlist1">--worktree</dt>
<dd>
<p>Similar to <code>--local</code> except that <code>$GIT_DIR/config.worktree</code> is
read from or written to if <code>extensions.worktreeConfig</code> is
enabled. If not it&#8217;s the same as <code>--local</code>. Note that <code>$GIT_DIR</code>
is equal to <code>$GIT_COMMON_DIR</code> for the main working tree, but is of
the form <code>$GIT_DIR/worktrees/</code><em>&lt;id&gt;</em><code>/</code> for other working trees. See
<a href="git-worktree.html">git-worktree(1)</a> to learn how to enable
<code>extensions.worktreeConfig</code>.</p>
</dd>
<dt class="hdlist1">-f &lt;config-file&gt;</dt>
<dt class="hdlist1">--file &lt;config-file&gt;</dt>
<dd>
<p>For writing options: write to the specified file rather than the
repository .<code>git/config</code>.</p>
<div class="paragraph">
<p>For reading options: read only from the specified file rather than from all
available files.</p>
</div>
<div class="paragraph">
<p>See also <a href="#FILES">FILES</a>.</p>
</div>
</dd>
<dt class="hdlist1">--blob &lt;blob&gt;</dt>
<dd>
<p>Similar to <code>--file</code> but use the given blob instead of a file. E.g.
you can use <em>master:.gitmodules</em> to read values from the file
<em>.gitmodules</em> in the master branch. See "SPECIFYING REVISIONS"
section in <a href="gitrevisions.html">gitrevisions(7)</a> for a more complete list of
ways to spell blob names.</p>
</dd>
<dt class="hdlist1"><code>--value=</code><em>&lt;pattern&gt;</em></dt>
<dt class="hdlist1"><code>--no-value</code></dt>
<dd>
<p>With <code>get</code>, <code>set</code>, and <code>unset</code>, match only against
<em>&lt;pattern&gt;</em>. The pattern is an extended regular expression unless
<code>--fixed-value</code> is given.</p>
<div class="paragraph">
<p>Use <code>--no-value</code> to unset <em>&lt;pattern&gt;</em>.</p>
</div>
</dd>
<dt class="hdlist1">--fixed-value</dt>
<dd>
<p>When used with <code>--value=</code><em>&lt;pattern&gt;</em>, treat <em>&lt;pattern&gt;</em> as
an exact string instead of a regular expression. This will restrict
the name/value pairs that are matched to only those where the value
is exactly equal to <em>&lt;pattern&gt;</em>.</p>
</dd>
<dt class="hdlist1">--type &lt;type&gt;</dt>
<dd>
<p><em>git config</em> will ensure that any input or output is valid under the given
type constraint(s), and will canonicalize outgoing values in <em>&lt;type&gt;</em>'s
canonical form.</p>
<div class="paragraph">
<p>Valid <em>&lt;type&gt;</em>'s include:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>bool</em>: canonicalize values <code>true</code>, <code>yes</code>,<code>on</code>, and positive
numbers as "true", and values <code>false</code>, <code>no</code>, <code>off</code> and <code>0</code> as
"false".</p>
</li>
<li>
<p><em>int</em>: canonicalize values as simple decimal numbers. An optional suffix of
<em>k</em>, <em>m</em>, or <em>g</em> will cause the value to be multiplied by 1024, 1048576, or
1073741824 upon input.</p>
</li>
<li>
<p><em>bool-or-int</em>: canonicalize according to either <em>bool</em> or <em>int</em>, as described
above.</p>
</li>
<li>
<p><em>path</em>: canonicalize by expanding a leading <code>~</code> to the value of <code>$HOME</code> and
<code>~user</code> to the home directory for the specified user. This specifier has no
effect when setting the value (but you can use <code>git</code> <code>config</code> <code>section.variable</code>
<code>~/</code> from the command line to let your shell do the expansion.)</p>
</li>
<li>
<p><em>expiry-date</em>: canonicalize by converting from a fixed or relative date-string
to a timestamp. This specifier has no effect when setting the value.</p>
</li>
<li>
<p><em>color</em>: When getting a value, canonicalize by converting to an ANSI color
escape sequence. When setting a value, a sanity-check is performed to ensure
that the given value is canonicalize-able as an ANSI color, but it is written
as-is.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">--bool</dt>
<dt class="hdlist1">--int</dt>
<dt class="hdlist1">--bool-or-int</dt>
<dt class="hdlist1">--path</dt>
<dt class="hdlist1">--expiry-date</dt>
<dd>
<p>Historical options for selecting a type specifier. Prefer instead <code>--type</code>
(see above).</p>
</dd>
<dt class="hdlist1">--no-type</dt>
<dd>
<p>Un-sets the previously set type specifier (if one was previously set). This
option requests that <em>git config</em> not canonicalize the retrieved variable.
<code>--no-type</code> has no effect without <code>--type=</code><em>&lt;type&gt;</em> or <code>--</code><em>&lt;type&gt;</em>.</p>
</dd>
<dt class="hdlist1">-z</dt>
<dt class="hdlist1">--null</dt>
<dd>
<p>For all options that output values and/or keys, always
end values with the null character (instead of a
newline). Use newline instead as a delimiter between
key and value. This allows for secure parsing of the
output without getting confused e.g. by values that
contain line breaks.</p>
</dd>
<dt class="hdlist1">--name-only</dt>
<dd>
<p>Output only the names of config variables for <code>list</code> or
<code>get</code>.</p>
</dd>
<dt class="hdlist1"><code>--show-names</code></dt>
<dt class="hdlist1"><code>--no-show-names</code></dt>
<dd>
<p>With <code>get</code>, show config keys in addition to their values. The
default is <code>--no-show-names</code> unless <code>--url</code> is given and there
are no subsections in <em>&lt;name&gt;</em>.</p>
</dd>
<dt class="hdlist1">--show-origin</dt>
<dd>
<p>Augment the output of all queried config options with the
origin type (file, standard input, blob, command line) and
the actual origin (config file path, ref, or blob id if
applicable).</p>
</dd>
<dt class="hdlist1">--show-scope</dt>
<dd>
<p>Similar to <code>--show-origin</code> in that it augments the output of
all queried config options with the scope of that value
(worktree, local, global, system, command).</p>
</dd>
<dt class="hdlist1">--get-colorbool &lt;name&gt; [&lt;stdout-is-tty&gt;]</dt>
<dd>
<p>Find the color setting for <em>&lt;name&gt;</em> (e.g. <code>color.diff</code>) and output
"true" or "false".  <em>&lt;stdout-is-tty&gt;</em> should be either "true" or
"false", and is taken into account when configuration says
"auto".  If <em>&lt;stdout-is-tty&gt;</em> is missing, then checks the standard
output of the command itself, and exits with status 0 if color
is to be used, or exits with status 1 otherwise.
When the color setting for <code>name</code> is undefined, the command uses
<code>color.ui</code> as fallback.</p>
</dd>
<dt class="hdlist1">--[no-]includes</dt>
<dd>
<p>Respect <code>include.*</code> directives in config files when looking up
values. Defaults to <code>off</code> when a specific file is given (e.g.,
using <code>--file</code>, <code>--global</code>, etc) and <code>on</code> when searching all
config files.</p>
</dd>
<dt class="hdlist1">--default &lt;value&gt;</dt>
<dd>
<p>When using <code>get</code>, and the requested variable is not found, behave as if
&lt;value&gt; were the value assigned to that variable.</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_deprecated_modes">DEPRECATED MODES</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The following modes have been deprecated in favor of subcommands. It is
recommended to migrate to the new syntax.</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><em>git config &lt;name&gt;</em></dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>get</code> <em>&lt;name&gt;</em>.</p>
</dd>
<dt class="hdlist1"><em>git config &lt;name&gt; &lt;value&gt; [&lt;value-pattern&gt;]</em></dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>set</code> [<code>--value=</code><em>&lt;pattern&gt;</em>] <em>&lt;name&gt;</em> <em>&lt;value&gt;</em>.</p>
</dd>
<dt class="hdlist1">-l</dt>
<dt class="hdlist1">--list</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>list</code>.</p>
</dd>
<dt class="hdlist1">--get &lt;name&gt; [&lt;value-pattern&gt;]</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>get</code> [<code>--value=</code><em>&lt;pattern&gt;</em>] <em>&lt;name&gt;</em>.</p>
</dd>
<dt class="hdlist1">--get-all &lt;name&gt; [&lt;value-pattern&gt;]</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>get</code> [<code>--value=</code><em>&lt;pattern&gt;</em>] <code>--all</code> <em>&lt;name&gt;</em>.</p>
</dd>
<dt class="hdlist1">--get-regexp &lt;name-regexp&gt;</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>get</code> <code>--all</code> <code>--show-names</code> <code>--regexp</code> <em>&lt;name-regexp&gt;</em>.</p>
</dd>
<dt class="hdlist1">--get-urlmatch &lt;name&gt; &lt;URL&gt;</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>get</code> <code>--all</code> <code>--show-names</code> <code>--url=</code><em>&lt;URL&gt;</em> <em>&lt;name&gt;</em>.</p>
</dd>
<dt class="hdlist1">--get-color &lt;name&gt; [&lt;default&gt;]</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>get</code> <code>--type=color</code> [<code>--default=</code><em>&lt;default&gt;</em>] <em>&lt;name&gt;</em>.</p>
</dd>
<dt class="hdlist1">--add &lt;name&gt; &lt;value&gt;</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>set</code> <code>--append</code> <em>&lt;name&gt;</em> <em>&lt;value&gt;</em>.</p>
</dd>
<dt class="hdlist1">--unset &lt;name&gt; [&lt;value-pattern&gt;]</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>unset</code> [<code>--value=</code><em>&lt;pattern&gt;</em>] <em>&lt;name&gt;</em>.</p>
</dd>
<dt class="hdlist1">--unset-all &lt;name&gt; [&lt;value-pattern&gt;]</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>unset</code> [<code>--value=</code><em>&lt;pattern&gt;</em>] <code>--all</code> <em>&lt;name&gt;</em>.</p>
</dd>
<dt class="hdlist1">--rename-section &lt;old-name&gt; &lt;new-name&gt;</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>rename-section</code> <em>&lt;old-name&gt;</em> <em>&lt;new-name&gt;</em>.</p>
</dd>
<dt class="hdlist1">--remove-section &lt;name&gt;</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>remove-section</code> <em>&lt;name&gt;</em>.</p>
</dd>
<dt class="hdlist1">-e</dt>
<dt class="hdlist1">--edit</dt>
<dd>
<p>Replaced by <code>git</code> <code>config</code> <code>edit</code>.</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_configuration">CONFIGURATION</h2>
<div class="sectionbody">
<div class="paragraph">
<p><code>pager.config</code> is only respected when listing configuration, i.e., when
using <code>list</code> or <code>get</code> which may return multiple results. The default is to use
a pager.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="FILES">FILES</h2>
<div class="sectionbody">
<div class="paragraph">
<p>By default, <em>git config</em> will read configuration options from multiple
files:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">$(prefix)/etc/gitconfig</dt>
<dd>
<p>System-wide configuration file.</p>
</dd>
<dt class="hdlist1">$XDG_CONFIG_HOME/git/config</dt>
<dt class="hdlist1">~/.gitconfig</dt>
<dd>
<p>User-specific configuration files. When the XDG_CONFIG_HOME environment
variable is not set or empty, $HOME/.config/ is used as
$XDG_CONFIG_HOME.</p>
<div class="paragraph">
<p>These are also called "global" configuration files. If both files exist, both
files are read in the order given above.</p>
</div>
</dd>
<dt class="hdlist1">$GIT_DIR/config</dt>
<dd>
<p>Repository specific configuration file.</p>
</dd>
<dt class="hdlist1">$GIT_DIR/config.worktree</dt>
<dd>
<p>This is optional and is only searched when
<code>extensions.worktreeConfig</code> is present in $GIT_DIR/config.</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>You may also provide additional configuration parameters when running any
git command by using the <code>-c</code> option. See <a href="git.html">git(1)</a> for details.</p>
</div>
<div class="paragraph">
<p>Options will be read from all of these files that are available. If the
global or the system-wide configuration files are missing or unreadable they
will be ignored. If the repository configuration file is missing or unreadable,
<em>git config</em> will exit with a non-zero error code. An error message is produced
if the file is unreadable, but not if it is missing.</p>
</div>
<div class="paragraph">
<p>The files are read in the order given above, with last value found taking
precedence over values read earlier.  When multiple values are taken then all
values of a key from all files will be used.</p>
</div>
<div class="paragraph">
<p>By default, options are only written to the repository specific
configuration file. Note that this also affects options like <code>set</code>
and <code>unset</code>. <strong><em>git config</em> will only ever change one file at a time</strong>.</p>
</div>
<div class="paragraph">
<p>You can limit which configuration sources are read from or written to by
specifying the path of a file with the <code>--file</code> option, or by specifying a
configuration scope with <code>--system</code>, <code>--global</code>, <code>--local</code>, or <code>--worktree</code>.
For more, see <a href="#OPTIONS">OPTIONS</a> above.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="SCOPES">SCOPES</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Each configuration source falls within a configuration scope. The scopes
are:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">system</dt>
<dd>
<p>$(prefix)/etc/gitconfig</p>
</dd>
<dt class="hdlist1">global</dt>
<dd>
<p>$XDG_CONFIG_HOME/git/config</p>
<div class="paragraph">
<p>~/.gitconfig</p>
</div>
</dd>
<dt class="hdlist1">local</dt>
<dd>
<p>$GIT_DIR/config</p>
</dd>
<dt class="hdlist1">worktree</dt>
<dd>
<p>$GIT_DIR/config.worktree</p>
</dd>
<dt class="hdlist1">command</dt>
<dd>
<p>GIT_CONFIG_{COUNT,KEY,VALUE} environment variables (see <a href="#ENVIRONMENT">ENVIRONMENT</a>
below)</p>
<div class="paragraph">
<p>the <code>-c</code> option</p>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>With the exception of <em>command</em>, each scope corresponds to a command line
option: <code>--system</code>, <code>--global</code>, <code>--local</code>, <code>--worktree</code>.</p>
</div>
<div class="paragraph">
<p>When reading options, specifying a scope will only read options from the
files within that scope. When writing options, specifying a scope will write
to the files within that scope (instead of the repository specific
configuration file). See <a href="#OPTIONS">OPTIONS</a> above for a complete description.</p>
</div>
<div class="paragraph">
<p>Most configuration options are respected regardless of the scope it is
defined in, but some options are only respected in certain scopes. See the
respective option&#8217;s documentation for the full details.</p>
</div>
<div class="sect2">
<h3 id="_protected_configuration">Protected configuration</h3>
<div class="paragraph">
<p>Protected configuration refers to the <em>system</em>, <em>global</em>, and <em>command</em> scopes.
For security reasons, certain options are only respected when they are
specified in protected configuration, and ignored otherwise.</p>
</div>
<div class="paragraph">
<p>Git treats these scopes as if they are controlled by the user or a trusted
administrator. This is because an attacker who controls these scopes can do
substantial harm without using Git, so it is assumed that the user&#8217;s environment
protects these scopes against attackers.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="ENVIRONMENT">ENVIRONMENT</h2>
<div class="sectionbody">
<div class="dlist">
<dl>
<dt class="hdlist1">GIT_CONFIG_GLOBAL</dt>
<dt class="hdlist1">GIT_CONFIG_SYSTEM</dt>
<dd>
<p>Take the configuration from the given files instead from global or
system-level configuration. See <a href="git.html">git(1)</a> for details.</p>
</dd>
<dt class="hdlist1">GIT_CONFIG_NOSYSTEM</dt>
<dd>
<p>Whether to skip reading settings from the system-wide
$(prefix)/etc/gitconfig file. See <a href="git.html">git(1)</a> for details.</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>See also <a href="#FILES">FILES</a>.</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">GIT_CONFIG_COUNT</dt>
<dt class="hdlist1">GIT_CONFIG_KEY_&lt;n&gt;</dt>
<dt class="hdlist1">GIT_CONFIG_VALUE_&lt;n&gt;</dt>
<dd>
<p>If GIT_CONFIG_COUNT is set to a positive number, all environment pairs
GIT_CONFIG_KEY_&lt;n&gt; and GIT_CONFIG_VALUE_&lt;n&gt; up to that number will be
added to the process&#8217;s runtime configuration. The config pairs are
zero-indexed. Any missing key or value is treated as an error. An empty
GIT_CONFIG_COUNT is treated the same as GIT_CONFIG_COUNT=0, namely no
pairs are processed. These environment variables will override values
in configuration files, but will be overridden by any explicit options
passed via <code>git</code> <code>-c</code>.</p>
<div class="paragraph">
<p>This is useful for cases where you want to spawn multiple git commands
with a common configuration but cannot depend on a configuration file,
for example when writing scripts.</p>
</div>
</dd>
<dt class="hdlist1">GIT_CONFIG</dt>
<dd>
<p>If no <code>--file</code> option is provided to <code>git</code> <code>config</code>, use the file
given by <code>GIT_CONFIG</code> as if it were provided via <code>--file</code>. This
variable has no effect on other Git commands, and is mostly for
historical compatibility; there is generally no reason to use it
instead of the <code>--file</code> option.</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="sect1">
<h2 id="EXAMPLES">EXAMPLES</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Given a .git/config like this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>#
# This is the config file, and
# a '#' or ';' character indicates
# a comment
#

; core variables
[core]
        ; Don't trust file modes
        filemode = false

; Our diff algorithm
[diff]
        external = /usr/local/bin/diff-wrapper
        renames = true

; Proxy settings
[core]
        gitproxy=proxy-command for kernel.org
        gitproxy=default-proxy ; for all the rest

; HTTP
[http]
        sslVerify
[http "https://weak.example.com"]
        sslVerify = false
        cookieFile = /tmp/cookie.txt</pre>
</div>
</div>
<div class="paragraph">
<p>you can set the filemode to true with</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config set core.filemode true</pre>
</div>
</div>
<div class="paragraph">
<p>The hypothetical proxy command entries actually have a postfix to discern
what URL they apply to. Here is how to change the entry for kernel.org
to "ssh".</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config set --value='for kernel.org$' core.gitproxy '"ssh" for kernel.org'</pre>
</div>
</div>
<div class="paragraph">
<p>This makes sure that only the key/value pair for kernel.org is replaced.</p>
</div>
<div class="paragraph">
<p>To delete the entry for renames, do</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config unset diff.renames</pre>
</div>
</div>
<div class="paragraph">
<p>If you want to delete an entry for a multivar (like core.gitproxy above),
you have to provide a regex matching the value of exactly one line.</p>
</div>
<div class="paragraph">
<p>To query the value for a given key, do</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config get core.filemode</pre>
</div>
</div>
<div class="paragraph">
<p>or, to query a multivar:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config get --value="for kernel.org$" core.gitproxy</pre>
</div>
</div>
<div class="paragraph">
<p>If you want to know all the values for a multivar, do:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config get --all --show-names core.gitproxy</pre>
</div>
</div>
<div class="paragraph">
<p>If you like to live dangerously, you can replace <strong>all</strong> core.gitproxy by a
new one with</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config set --all core.gitproxy ssh</pre>
</div>
</div>
<div class="paragraph">
<p>However, if you really only want to replace the line for the default proxy,
i.e. the one without a "for &#8230;&#8203;" postfix, do something like this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config set --value='! for ' core.gitproxy ssh</pre>
</div>
</div>
<div class="paragraph">
<p>To actually match only values with an exclamation mark, you have to</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config set --value='[!]' section.key value</pre>
</div>
</div>
<div class="paragraph">
<p>To add a new proxy, without altering any of the existing ones, use</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config set --append core.gitproxy '"proxy-command" for example.com'</pre>
</div>
</div>
<div class="paragraph">
<p>An example to use customized color from the configuration in your
script:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>#!/bin/sh
WS=$(git config get --type=color --default="blue reverse" color.diff.whitespace)
RESET=$(git config get --type=color --default="reset" "")
echo "${WS}your whitespace color or blue reverse${RESET}"</pre>
</div>
</div>
<div class="paragraph">
<p>For URLs in <code>https://weak.example.com</code>, <code>http.sslVerify</code> is set to
false, while it is set to <code>true</code> for all others:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>% git config get --type=bool --url=https://good.example.com http.sslverify
true
% git config get --type=bool --url=https://weak.example.com http.sslverify
false
% git config get --url=https://weak.example.com http
http.cookieFile /tmp/cookie.txt
http.sslverify false</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_configuration_file">CONFIGURATION FILE</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Git configuration file contains a number of variables that affect
the Git commands' behavior. The files .<code>git/config</code> and optionally
<code>config.worktree</code> (see the "CONFIGURATION FILE" section of
<a href="git-worktree.html">git-worktree(1)</a>) in each repository are used to store the
configuration for that repository, and <code>$HOME/.gitconfig</code> is used to
store a per-user configuration as fallback values for the .<code>git/config</code>
file. The file <code>/etc/gitconfig</code> can be used to store a system-wide
default configuration.</p>
</div>
<div class="paragraph">
<p>The configuration variables are used by both the Git plumbing
and the porcelain commands. The variables are divided into sections, wherein
the fully qualified variable name of the variable itself is the last
dot-separated segment and the section name is everything before the last
dot. The variable names are case-insensitive, allow only alphanumeric
characters and <code>-</code>, and must start with an alphabetic character.  Some
variables may appear multiple times; we say then that the variable is
multivalued.</p>
</div>
<div class="sect2">
<h3 id="_syntax">Syntax</h3>
<div class="paragraph">
<p>The syntax is fairly flexible and permissive.  Whitespace characters,
which in this context are the space character (SP) and the horizontal
tabulation (HT), are mostly ignored.  The <em>#</em> and <em>;</em> characters begin
comments to the end of line.  Blank lines are ignored.</p>
</div>
<div class="paragraph">
<p>The file consists of sections and variables.  A section begins with
the name of the section in square brackets and continues until the next
section begins.  Section names are case-insensitive.  Only alphanumeric
characters, <code>-</code> and . are allowed in section names.  Each variable
must belong to some section, which means that there must be a section
header before the first setting of a variable.</p>
</div>
<div class="paragraph">
<p>Sections can be further divided into subsections.  To begin a subsection
put its name in double quotes, separated by space from the section name,
in the section header, like in the example below:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>        [section "subsection"]</pre>
</div>
</div>
<div class="paragraph">
<p>Subsection names are case sensitive and can contain any characters except
newline and the null byte. Doublequote " and backslash can be included
by escaping them as <code>\</code>" and <code>\\</code>, respectively. Backslashes preceding
other characters are dropped when reading; for example, <code>\t</code> is read as
<code>t</code> and <code>\0</code> is read as <code>0</code>. Section headers cannot span multiple lines.
Variables may belong directly to a section or to a given subsection. You
can have [<code>section</code>] if you have [<code>section</code> "subsection"], but you don&#8217;t
need to.</p>
</div>
<div class="paragraph">
<p>There is also a deprecated [<code>section.subsection</code>] syntax. With this
syntax, the subsection name is converted to lower-case and is also
compared case sensitively. These subsection names follow the same
restrictions as section names.</p>
</div>
<div class="paragraph">
<p>All the other lines (and the remainder of the line after the section
header) are recognized as setting variables, in the form
<em>name = value</em> (or just <em>name</em>, which is a short-hand to say that
the variable is the boolean "true").
The variable names are case-insensitive, allow only alphanumeric characters
and <code>-</code>, and must start with an alphabetic character.</p>
</div>
<div class="paragraph">
<p>Whitespace characters surrounding <code>name</code>, <code>=</code> and <code>value</code> are discarded.
Internal whitespace characters within <em>value</em> are retained verbatim.
Comments starting with either # or ; and extending to the end of line
are discarded.  A line that defines a value can be continued to the next
line by ending it with a backslash (<code>\</code>);  the backslash and the end-of-line
characters are discarded.</p>
</div>
<div class="paragraph">
<p>If <code>value</code> needs to contain leading or trailing whitespace characters,
it must be enclosed in double quotation marks (").  Inside double quotation
marks, double quote (") and backslash (<code>\</code>) characters must be escaped:
use <code>\</code>" for " and <code>\\</code> for <code>\</code>.</p>
</div>
<div class="paragraph">
<p>The following escape sequences (beside <code>\</code>" and <code>\\</code>) are recognized:
<code>\n</code> for newline character (NL), <code>\t</code> for horizontal tabulation (HT, TAB)
and <code>\b</code> for backspace (BS).  Other char escape sequences (including octal
escape sequences) are invalid.</p>
</div>
</div>
<div class="sect2">
<h3 id="_includes">Includes</h3>
<div class="paragraph">
<p>The <code>include</code> and <code>includeIf</code> sections allow you to include config
directives from another source. These sections behave identically to
each other with the exception that <code>includeIf</code> sections may be ignored
if their condition does not evaluate to true; see "Conditional includes"
below.</p>
</div>
<div class="paragraph">
<p>You can include a config file from another by setting the special
<code>include.path</code> (or <code>includeIf.*.path</code>) variable to the name of the file
to be included. The variable takes a pathname as its value, and is
subject to tilde expansion. These variables can be given multiple times.</p>
</div>
<div class="paragraph">
<p>The contents of the included file are inserted immediately, as if they
had been found at the location of the include directive. If the value of the
variable is a relative path, the path is considered to
be relative to the configuration file in which the include directive
was found.  See below for examples.</p>
</div>
</div>
<div class="sect2">
<h3 id="_conditional_includes">Conditional includes</h3>
<div class="paragraph">
<p>You can conditionally include a config file from another by setting an
<code>includeIf.</code><em>&lt;condition&gt;</em><code>.path</code> variable to the name of the file to be
included.</p>
</div>
<div class="paragraph">
<p>The condition starts with a keyword followed by a colon and some data
whose format and meaning depends on the keyword. Supported keywords
are:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>gitdir</code></dt>
<dd>
<p>The data that follows the keyword <code>gitdir:</code> is used as a glob
pattern. If the location of the .git directory matches the
pattern, the include condition is met.</p>
<div class="paragraph">
<p>The .git location may be auto-discovered, or come from <code>$GIT_DIR</code>
environment variable. If the repository is auto-discovered via a .git
file (e.g. from submodules, or a linked worktree), the .git location
would be the final location where the .git directory is, not where the
.git file is.</p>
</div>
<div class="paragraph">
<p>The pattern can contain standard globbing wildcards and two additional
ones, <code>**/</code> and <code>/**</code>, that can match multiple path components. Please
refer to <a href="gitignore.html">gitignore(5)</a> for details. For convenience:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If the pattern starts with <code>~/</code>, <code>~</code> will be substituted with the
content of the environment variable <code>HOME</code>.</p>
</li>
<li>
<p>If the pattern starts with .<code>/</code>, it is replaced with the directory
containing the current config file.</p>
</li>
<li>
<p>If the pattern does not start with either <code>~/</code>, .<code>/</code> or <code>/</code>, <code>**/</code>
will be automatically prepended. For example, the pattern <code>foo/bar</code>
becomes <code>**/foo/bar</code> and would match <code>/any/path/to/foo/bar</code>.</p>
</li>
<li>
<p>If the pattern ends with <code>/</code>, <code>**</code> will be automatically added. For
example, the pattern <code>foo/</code> becomes <code>foo/**</code>. In other words, it
matches "foo" and everything inside, recursively.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1"><code>gitdir/i</code></dt>
<dd>
<p>This is the same as <code>gitdir</code> except that matching is done
case-insensitively (e.g. on case-insensitive file systems)</p>
</dd>
<dt class="hdlist1"><code>onbranch</code></dt>
<dd>
<p>The data that follows the keyword <code>onbranch:</code> is taken to be a
pattern with standard globbing wildcards and two additional
ones, <code>**/</code> and <code>/**</code>, that can match multiple path components.
If we are in a worktree where the name of the branch that is
currently checked out matches the pattern, the include condition
is met.</p>
<div class="paragraph">
<p>If the pattern ends with <code>/</code>, <code>**</code> will be automatically added. For
example, the pattern <code>foo/</code> becomes <code>foo/**</code>. In other words, it matches
all branches that begin with <code>foo/</code>. This is useful if your branches are
organized hierarchically and you would like to apply a configuration to
all the branches in that hierarchy.</p>
</div>
</dd>
<dt class="hdlist1"><code>hasconfig:remote.*.url:</code></dt>
<dd>
<p>The data that follows this keyword is taken to
be a pattern with standard globbing wildcards and two
additional ones, <code>**/</code> and <code>/**</code>, that can match multiple
components. The first time this keyword is seen, the rest of
the config files will be scanned for remote URLs (without
applying any values). If there exists at least one remote URL
that matches this pattern, the include condition is met.</p>
<div class="paragraph">
<p>Files included by this option (directly or indirectly) are not allowed
to contain remote URLs.</p>
</div>
<div class="paragraph">
<p>Note that unlike other includeIf conditions, resolving this condition
relies on information that is not yet known at the point of reading the
condition. A typical use case is this option being present as a
system-level or global-level config, and the remote URL being in a
local-level config; hence the need to scan ahead when resolving this
condition. In order to avoid the chicken-and-egg problem in which
potentially-included files can affect whether such files are potentially
included, Git breaks the cycle by prohibiting these files from affecting
the resolution of these conditions (thus, prohibiting them from
declaring remote URLs).</p>
</div>
<div class="paragraph">
<p>As for the naming of this keyword, it is for forwards compatibility with
a naming scheme that supports more variable-based include conditions,
but currently Git only supports the exact keyword described above.</p>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>A few more notes on matching via <code>gitdir</code> and <code>gitdir/i</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Symlinks in <code>$GIT_DIR</code> are not resolved before matching.</p>
</li>
<li>
<p>Both the symlink &amp; realpath versions of paths will be matched
outside of <code>$GIT_DIR</code>. E.g. if ~/git is a symlink to
/mnt/storage/git, both <code>gitdir:~/git</code> and <code>gitdir:/mnt/storage/git</code>
will match.</p>
<div class="paragraph">
<p>This was not the case in the initial release of this feature in
v2.13.0, which only matched the realpath version. Configuration that
wants to be compatible with the initial release of this feature needs
to either specify only the realpath version, or both versions.</p>
</div>
</li>
<li>
<p>Note that "../" is not special and will match literally, which is
unlikely what you want.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_example">Example</h3>
<div class="listingblock">
<div class="content">
<pre># Core variables
[core]
        ; Don't trust file modes
        filemode = false

# Our diff algorithm
[diff]
        external = /usr/local/bin/diff-wrapper
        renames = true

[branch "devel"]
        remote = origin
        merge = refs/heads/devel

# Proxy settings
[core]
        gitProxy="ssh" for "kernel.org"
        gitProxy=default-proxy ; for the rest

[include]
        path = /path/to/foo.inc ; include by absolute path
        path = foo.inc ; find "foo.inc" relative to the current file
        path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory

; include if $GIT_DIR is /path/to/foo/.git
[includeIf "gitdir:/path/to/foo/.git"]
        path = /path/to/foo.inc

; include for all repositories inside /path/to/group
[includeIf "gitdir:/path/to/group/"]
        path = /path/to/foo.inc

; include for all repositories inside $HOME/to/group
[includeIf "gitdir:~/to/group/"]
        path = /path/to/foo.inc

; relative paths are always relative to the including
; file (if the condition is true); their location is not
; affected by the condition
[includeIf "gitdir:/path/to/group/"]
        path = foo.inc

; include only if we are in a worktree where foo-branch is
; currently checked out
[includeIf "onbranch:foo-branch"]
        path = foo.inc

; include only if a remote with the given URL exists (note
; that such a URL may be provided later in a file or in a
; file read after this file is read, as seen in this example)
[includeIf "hasconfig:remote.*.url:https://example.com/**"]
        path = foo.inc
[remote "origin"]
        url = https://example.com/git</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_values">Values</h3>
<div class="paragraph">
<p>Values of many variables are treated as a simple string, but there
are variables that take values of specific types and there are rules
as to how to spell them.</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">boolean</dt>
<dd>
<p>When a variable is said to take a boolean value, many
synonyms are accepted for <em>true</em> and <em>false</em>; these are all
case-insensitive.</p>
<div class="dlist">
<dl>
<dt class="hdlist1">true</dt>
<dd>
<p>Boolean true literals are <code>yes</code>, <code>on</code>, <code>true</code>,
and <code>1</code>.  Also, a variable defined without <code>=</code> <em>&lt;value&gt;</em>
is taken as true.</p>
</dd>
<dt class="hdlist1">false</dt>
<dd>
<p>Boolean false literals are <code>no</code>, <code>off</code>, <code>false</code>,
<code>0</code> and the empty string.</p>
<div class="paragraph">
<p>When converting a value to its canonical form using the <code>--type=bool</code> type
specifier, <em>git config</em> will ensure that the output is "true" or
"false" (spelled in lowercase).</p>
</div>
</dd>
</dl>
</div>
</dd>
<dt class="hdlist1">integer</dt>
<dd>
<p>The value for many variables that specify various sizes can
be suffixed with <code>k</code>, <code>M</code>,&#8230;&#8203; to mean "scale the number by
1024", "by 1024x1024", etc.</p>
</dd>
<dt class="hdlist1">color</dt>
<dd>
<p>The value for a variable that takes a color is a list of
colors (at most two, one for foreground and one for background)
and attributes (as many as you want), separated by spaces.</p>
<div class="paragraph">
<p>The basic colors accepted are <code>normal</code>, <code>black</code>, <code>red</code>, <code>green</code>,
<code>yellow</code>, <code>blue</code>, <code>magenta</code>, <code>cyan</code>, <code>white</code> and <code>default</code>.  The first
color given is the foreground; the second is the background.  All the
basic colors except <code>normal</code> and <code>default</code> have a bright variant that can
be specified by prefixing the color with <code>bright</code>, like <code>brightred</code>.</p>
</div>
<div class="paragraph">
<p>The color <code>normal</code> makes no change to the color. It is the same as an
empty string, but can be used as the foreground color when specifying a
background color alone (for example, "normal red").</p>
</div>
<div class="paragraph">
<p>The color <code>default</code> explicitly resets the color to the terminal default,
for example to specify a cleared background. Although it varies between
terminals, this is usually not the same as setting to "white black".</p>
</div>
<div class="paragraph">
<p>Colors may also be given as numbers between 0 and 255; these use ANSI
256-color mode (but note that not all terminals may support this).  If
your terminal supports it, you may also specify 24-bit RGB values as
hex, like #ff0ab3, or 12-bit RGB values like #f1b, which is
equivalent to the 24-bit color #ff11bb.</p>
</div>
<div class="paragraph">
<p>The accepted attributes are <code>bold</code>, <code>dim</code>, <code>ul</code>, <code>blink</code>, <code>reverse</code>,
<code>italic</code>, and <code>strike</code> (for crossed-out or "strikethrough" letters).
The position of any attributes with respect to the colors
(before, after, or in between), doesn&#8217;t matter. Specific attributes may
be turned off by prefixing them with <code>no</code> or <code>no-</code> (e.g., <code>noreverse</code>,
<code>no-ul</code>, etc).</p>
</div>
<div class="paragraph">
<p>The pseudo-attribute <code>reset</code> resets all colors and attributes before
applying the specified coloring. For example, <code>reset</code> <code>green</code> will result
in a green foreground and default background without any active
attributes.</p>
</div>
<div class="paragraph">
<p>An empty color string produces no color effect at all. This can be used
to avoid coloring specific elements without disabling color entirely.</p>
</div>
<div class="paragraph">
<p>For git&#8217;s pre-defined color slots, the attributes are meant to be reset
at the beginning of each item in the colored output. So setting
<code>color.decorate.branch</code> to <code>black</code> will paint that branch name in a
plain <code>black</code>, even if the previous thing on the same output line (e.g.
opening parenthesis before the list of branch names in <code>log</code> <code>--decorate</code>
output) is set to be painted with <code>bold</code> or some other attribute.
However, custom log formats may do more complicated and layered
coloring, and the negated forms may be useful there.</p>
</div>
</dd>
<dt class="hdlist1">pathname</dt>
<dd>
<p>A variable that takes a pathname value can be given a
string that begins with "<code>~/</code>" or "<code>~user/</code>", and the usual
tilde expansion happens to such a string: <code>~/</code>
is expanded to the value of <code>$HOME</code>, and <code>~user/</code> to the
specified user&#8217;s home directory.</p>
<div class="paragraph">
<p>If a path starts with <code>%</code>(<code>prefix</code>)<code>/</code>, the remainder is interpreted as a
path relative to Git&#8217;s "runtime prefix", i.e. relative to the location
where Git itself was installed. For example, <code>%</code>(<code>prefix</code>)<code>/bin/</code> refers to
the directory in which the Git executable itself lives. If Git was
compiled without runtime prefix support, the compiled-in prefix will be
substituted instead. In the unlikely event that a literal path needs to
be specified that should <em>not</em> be expanded, it needs to be prefixed by
.<code>/</code>, like so: .<code>/%</code>(<code>prefix</code>)<code>/bin</code>.</p>
</div>
</dd>
</dl>
</div>
</div>
<div class="sect2">
<h3 id="_variables">Variables</h3>
<div class="paragraph">
<p>Note that this list is non-comprehensive and not necessarily complete.
For command-specific variables, you will find a more detailed description
in the appropriate manual page.</p>
</div>
<div class="paragraph">
<p>Other git-related tools may and do use their own variables.  When
inventing new variables for use in your own tool, make sure their
names do not conflict with those that are used by Git itself and
other popular tools, and describe them in your documentation.</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>add.ignoreErrors</code></dt>
<dt class="hdlist1"><code>add.ignore-errors</code> (deprecated)</dt>
<dd>
<p>Tells <code>git</code> <code>add</code> to continue adding files when some files cannot be
added due to indexing errors.
Equivalent to the <code>--ignore-errors</code> option of <a href="git-add.html">git-add(1)</a>.
<code>add.ignore-errors</code> is deprecated, as it does not follow the usual
naming convention for configuration variables.</p>
</dd>
<dt class="hdlist1">advice.*</dt>
<dd>
<p>These variables control various optional help messages designed to
aid new users.  When left unconfigured, Git will give the message
alongside instructions on how to squelch it.  You can tell Git
that you have understood the issue and no longer need a specific
help message by setting the corresponding variable to <code>false</code>.</p>
<div class="paragraph">
<p>As they are intended to help human users, these messages are output to
the standard error. When tools that run Git as a subprocess find them
disruptive, they can set <code>GIT_ADVICE=0</code> in the environment to squelch
all advice messages.</p>
</div>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1">addEmbeddedRepo</dt>
<dd>
<p>Shown when the user accidentally adds one
git repo inside of another.</p>
</dd>
<dt class="hdlist1">addEmptyPathspec</dt>
<dd>
<p>Shown when the user runs <code>git</code> <code>add</code> without providing
the pathspec parameter.</p>
</dd>
<dt class="hdlist1">addIgnoredFile</dt>
<dd>
<p>Shown when the user attempts to add an ignored file to
the index.</p>
</dd>
<dt class="hdlist1">amWorkDir</dt>
<dd>
<p>Shown when <a href="git-am.html">git-am(1)</a> fails to apply a patch
file, to tell the user the location of the file.</p>
</dd>
<dt class="hdlist1">ambiguousFetchRefspec</dt>
<dd>
<p>Shown when a fetch refspec for multiple remotes maps to
the same remote-tracking branch namespace and causes branch
tracking set-up to fail.</p>
</dd>
<dt class="hdlist1">checkoutAmbiguousRemoteBranchName</dt>
<dd>
<p>Shown when the argument to
<a href="git-checkout.html">git-checkout(1)</a> and <a href="git-switch.html">git-switch(1)</a>
ambiguously resolves to a
remote tracking branch on more than one remote in
situations where an unambiguous argument would have
otherwise caused a remote-tracking branch to be
checked out. See the <code>checkout.defaultRemote</code>
configuration variable for how to set a given remote
to be used by default in some situations where this
advice would be printed.</p>
</dd>
<dt class="hdlist1">commitBeforeMerge</dt>
<dd>
<p>Shown when <a href="git-merge.html">git-merge(1)</a> refuses to
merge to avoid overwriting local changes.</p>
</dd>
<dt class="hdlist1">detachedHead</dt>
<dd>
<p>Shown when the user uses
<a href="git-switch.html">git-switch(1)</a> or <a href="git-checkout.html">git-checkout(1)</a>
to move to the detached HEAD state, to tell the user how
to create a local branch after the fact.</p>
</dd>
<dt class="hdlist1">diverging</dt>
<dd>
<p>Shown when a fast-forward is not possible.</p>
</dd>
<dt class="hdlist1">fetchShowForcedUpdates</dt>
<dd>
<p>Shown when <a href="git-fetch.html">git-fetch(1)</a> takes a long time
to calculate forced updates after ref updates, or to warn
that the check is disabled.</p>
</dd>
<dt class="hdlist1">forceDeleteBranch</dt>
<dd>
<p>Shown when the user tries to delete a not fully merged
branch without the force option set.</p>
</dd>
<dt class="hdlist1">ignoredHook</dt>
<dd>
<p>Shown when a hook is ignored because the hook is not
set as executable.</p>
</dd>
<dt class="hdlist1">implicitIdentity</dt>
<dd>
<p>Shown when the user&#8217;s information is guessed from the
system username and domain name, to tell the user how to
set their identity configuration.</p>
</dd>
<dt class="hdlist1">mergeConflict</dt>
<dd>
<p>Shown when various commands stop because of conflicts.</p>
</dd>
<dt class="hdlist1">nestedTag</dt>
<dd>
<p>Shown when a user attempts to recursively tag a tag object.</p>
</dd>
<dt class="hdlist1">pushAlreadyExists</dt>
<dd>
<p>Shown when <a href="git-push.html">git-push(1)</a> rejects an update that
does not qualify for fast-forwarding (e.g., a tag.)</p>
</dd>
<dt class="hdlist1">pushFetchFirst</dt>
<dd>
<p>Shown when <a href="git-push.html">git-push(1)</a> rejects an update that
tries to overwrite a remote ref that points at an
object we do not have.</p>
</dd>
<dt class="hdlist1">pushNeedsForce</dt>
<dd>
<p>Shown when <a href="git-push.html">git-push(1)</a> rejects an update that
tries to overwrite a remote ref that points at an
object that is not a commit-ish, or make the remote
ref point at an object that is not a commit-ish.</p>
</dd>
<dt class="hdlist1">pushNonFFCurrent</dt>
<dd>
<p>Shown when <a href="git-push.html">git-push(1)</a> fails due to a
non-fast-forward update to the current branch.</p>
</dd>
<dt class="hdlist1">pushNonFFMatching</dt>
<dd>
<p>Shown when the user ran <a href="git-push.html">git-push(1)</a> and pushed
"matching refs" explicitly (i.e. used <code>:</code>, or
specified a refspec that isn&#8217;t the current branch) and
it resulted in a non-fast-forward error.</p>
</dd>
<dt class="hdlist1">pushRefNeedsUpdate</dt>
<dd>
<p>Shown when <a href="git-push.html">git-push(1)</a> rejects a forced update of
a branch when its remote-tracking ref has updates that we
do not have locally.</p>
</dd>
<dt class="hdlist1">pushUnqualifiedRefname</dt>
<dd>
<p>Shown when <a href="git-push.html">git-push(1)</a> gives up trying to
guess based on the source and destination refs what
remote ref namespace the source belongs in, but where
we can still suggest that the user push to either
<code>refs/heads/*</code> or <code>refs/tags/*</code> based on the type of the
source object.</p>
</dd>
<dt class="hdlist1">pushUpdateRejected</dt>
<dd>
<p>Set this variable to <code>false</code> if you want to disable
<code>pushNonFFCurrent</code>, <code>pushNonFFMatching</code>, <code>pushAlreadyExists</code>,
<code>pushFetchFirst</code>, <code>pushNeedsForce</code>, and <code>pushRefNeedsUpdate</code>
simultaneously.</p>
</dd>
<dt class="hdlist1">rebaseTodoError</dt>
<dd>
<p>Shown when there is an error after editing the rebase todo list.</p>
</dd>
<dt class="hdlist1">refSyntax</dt>
<dd>
<p>Shown when the user provides an illegal ref name, to
tell the user about the ref syntax documentation.</p>
</dd>
<dt class="hdlist1">resetNoRefresh</dt>
<dd>
<p>Shown when <a href="git-reset.html">git-reset(1)</a> takes more than 2
seconds to refresh the index after reset, to tell the user
that they can use the <code>--no-refresh</code> option.</p>
</dd>
<dt class="hdlist1">resolveConflict</dt>
<dd>
<p>Shown by various commands when conflicts
prevent the operation from being performed.</p>
</dd>
<dt class="hdlist1">rmHints</dt>
<dd>
<p>Shown on failure in the output of <a href="git-rm.html">git-rm(1)</a>, to
give directions on how to proceed from the current state.</p>
</dd>
<dt class="hdlist1">sequencerInUse</dt>
<dd>
<p>Shown when a sequencer command is already in progress.</p>
</dd>
<dt class="hdlist1">skippedCherryPicks</dt>
<dd>
<p>Shown when <a href="git-rebase.html">git-rebase(1)</a> skips a commit that has already
been cherry-picked onto the upstream branch.</p>
</dd>
<dt class="hdlist1">sparseIndexExpanded</dt>
<dd>
<p>Shown when a sparse index is expanded to a full index, which is likely
due to an unexpected set of files existing outside of the
sparse-checkout.</p>
</dd>
<dt class="hdlist1">statusAheadBehind</dt>
<dd>
<p>Shown when <a href="git-status.html">git-status(1)</a> computes the ahead/behind
counts for a local ref compared to its remote tracking ref,
and that calculation takes longer than expected. Will not
appear if <code>status.aheadBehind</code> is false or the option
<code>--no-ahead-behind</code> is given.</p>
</dd>
<dt class="hdlist1">statusHints</dt>
<dd>
<p>Show directions on how to proceed from the current
state in the output of <a href="git-status.html">git-status(1)</a>, in
the template shown when writing commit messages in
<a href="git-commit.html">git-commit(1)</a>, and in the help message shown
by <a href="git-switch.html">git-switch(1)</a> or
<a href="git-checkout.html">git-checkout(1)</a> when switching branches.</p>
</dd>
<dt class="hdlist1">statusUoption</dt>
<dd>
<p>Shown when <a href="git-status.html">git-status(1)</a> takes more than 2
seconds to enumerate untracked files, to tell the user that
they can use the <code>-u</code> option.</p>
</dd>
<dt class="hdlist1">submoduleAlternateErrorStrategyDie</dt>
<dd>
<p>Shown when a submodule.alternateErrorStrategy option
configured to "die" causes a fatal error.</p>
</dd>
<dt class="hdlist1">submoduleMergeConflict</dt>
<dd>
<p>Advice shown when a non-trivial submodule merge conflict is
encountered.</p>
</dd>
<dt class="hdlist1">submodulesNotUpdated</dt>
<dd>
<p>Shown when a user runs a submodule command that fails
because <code>git</code> <code>submodule</code> <code>update</code> <code>--init</code> was not run.</p>
</dd>
<dt class="hdlist1">suggestDetachingHead</dt>
<dd>
<p>Shown when <a href="git-switch.html">git-switch(1)</a> refuses to detach HEAD
without the explicit <code>--detach</code> option.</p>
</dd>
<dt class="hdlist1">updateSparsePath</dt>
<dd>
<p>Shown when either <a href="git-add.html">git-add(1)</a> or <a href="git-rm.html">git-rm(1)</a>
is asked to update index entries outside the current sparse
checkout.</p>
</dd>
<dt class="hdlist1">waitingForEditor</dt>
<dd>
<p>Shown when Git is waiting for editor input. Relevant
when e.g. the editor is not launched inside the terminal.</p>
</dd>
<dt class="hdlist1">worktreeAddOrphan</dt>
<dd>
<p>Shown when the user tries to create a worktree from an
invalid reference, to tell the user how to create a new unborn
branch instead.</p>
</dd>
</dl>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">alias.*</dt>
<dd>
<p>Command aliases for the <a href="git.html">git(1)</a> command wrapper - e.g.
after defining <code>alias.last</code> <code>=</code> <code>cat-file</code> <code>commit</code> <code>HEAD</code>, the invocation
<code>git</code> <code>last</code> is equivalent to <code>git</code> <code>cat-file</code> <code>commit</code> <code>HEAD</code>. To avoid
confusion and troubles with script usage, aliases that
hide existing Git commands are ignored. Arguments are split by
spaces, the usual shell quoting and escaping are supported.
A quote pair or a backslash can be used to quote them.</p>
<div class="paragraph">
<p>Note that the first word of an alias does not necessarily have to be a
command. It can be a command-line option that will be passed into the
invocation of <code>git</code>. In particular, this is useful when used with <code>-c</code>
to pass in one-time configurations or <code>-p</code> to force pagination. For example,
<code>loud-rebase</code> <code>=</code> <code>-c</code> <code>commit.verbose=true</code> <code>rebase</code> can be defined such that
running <code>git</code> <code>loud-rebase</code> would be equivalent to
<code>git</code> <code>-c</code> <code>commit.verbose=true</code> <code>rebase</code>. Also, <code>ps</code> <code>=</code> <code>-p</code> <code>status</code> would be a
helpful alias since <code>git</code> <code>ps</code> would paginate the output of <code>git</code> <code>status</code>
where the original command does not.</p>
</div>
<div class="paragraph">
<p>If the alias expansion is prefixed with an exclamation point,
it will be treated as a shell command.  For example, defining
<code>alias.new</code> <code>=</code> !gitk <code>--all</code> <code>--not</code> <code>ORIG_HEAD</code>, the invocation
<code>git</code> <code>new</code> is equivalent to running the shell command
<code>gitk</code> <code>--all</code> <code>--not</code> <code>ORIG_HEAD</code>.  Note:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Shell commands will be executed from the top-level directory of a
repository, which may not necessarily be the current directory.</p>
</li>
<li>
<p><code>GIT_PREFIX</code> is set as returned by running <code>git</code> <code>rev-parse</code> <code>--show-prefix</code>
from the original current directory. See <a href="git-rev-parse.html">git-rev-parse(1)</a>.</p>
</li>
<li>
<p>Shell command aliases always receive any extra arguments provided to
the Git command-line as positional arguments.</p>
<div class="ulist">
<ul>
<li>
<p>Care should be taken if your shell alias is a "one-liner" script
with multiple commands (e.g. in a pipeline), references multiple
arguments, or is otherwise not able to handle positional arguments
added at the end.  For example: <code>alias.cmd</code> <code>=</code> "!echo <code>$1</code> | <code>grep</code> <code>$2</code>"
called as <code>git</code> <code>cmd</code> <code>1</code> <code>2</code> will be executed as <em>echo $1 | grep $2
1 2</em>, which is not what you want.</p>
</li>
<li>
<p>A convenient way to deal with this is to write your script
operations in an inline function that is then called with any
arguments from the command-line.  For example `alias.cmd = "!c() {
echo $1 | grep $2 ; }; c" will correctly execute the prior example.</p>
</li>
<li>
<p>Setting <code>GIT_TRACE=1</code> can help you debug the command being run for
your alias.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">am.keepcr</dt>
<dd>
<p>If true, git-am will call git-mailsplit for patches in mbox format
with parameter <code>--keep-cr</code>. In this case git-mailsplit will
not remove <code>\r</code> from lines ending with <code>\r\n</code>. Can be overridden
by giving <code>--no-keep-cr</code> from the command line.
See <a href="git-am.html">git-am(1)</a>, <a href="git-mailsplit.html">git-mailsplit(1)</a>.</p>
</dd>
<dt class="hdlist1">am.threeWay</dt>
<dd>
<p>By default, <code>git</code> <code>am</code> will fail if the patch does not apply cleanly. When
set to true, this setting tells <code>git</code> <code>am</code> to fall back on 3-way merge if
the patch records the identity of blobs it is supposed to apply to and
we have those blobs available locally (equivalent to giving the <code>--3way</code>
option from the command line). Defaults to <code>false</code>.
See <a href="git-am.html">git-am(1)</a>.</p>
</dd>
<dt class="hdlist1">apply.ignoreWhitespace</dt>
<dd>
<p>When set to <em>change</em>, tells <em>git apply</em> to ignore changes in
whitespace, in the same way as the <code>--ignore-space-change</code>
option.
When set to one of: no, none, never, false, it tells <em>git apply</em> to
respect all whitespace differences.
See <a href="git-apply.html">git-apply(1)</a>.</p>
</dd>
<dt class="hdlist1">apply.whitespace</dt>
<dd>
<p>Tells <em>git apply</em> how to handle whitespace, in the same way
as the <code>--whitespace</code> option. See <a href="git-apply.html">git-apply(1)</a>.</p>
</dd>
<dt class="hdlist1">attr.tree</dt>
<dd>
<p>A reference to a tree in the repository from which to read attributes,
instead of the .<code>gitattributes</code> file in the working tree. If the value
does not resolve to a valid tree object, an empty tree is used instead.
When the <code>GIT_ATTR_SOURCE</code> environment variable or <code>--attr-source</code>
command line option are used, this configuration variable has no effect.</p>
</dd>
</dl>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<div class="title">Note</div>
</td>
<td class="content">
The configuration options in <code>bitmapPseudoMerge.*</code> are considered
EXPERIMENTAL and may be subject to change or be removed entirely in the
future. For more information about the pseudo-merge bitmap feature, see
the "Pseudo-merge bitmaps" section of <a href="gitpacking.html">gitpacking(7)</a>.
</td>
</tr>
</table>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">bitmapPseudoMerge.&lt;name&gt;.pattern</dt>
<dd>
<p>Regular expression used to match reference names. Commits
pointed to by references matching this pattern (and meeting
the below criteria, like <code>bitmapPseudoMerge.</code><em>&lt;name&gt;</em><code>.sampleRate</code>
and <code>bitmapPseudoMerge.</code><em>&lt;name&gt;</em><code>.threshold</code>) will be considered
for inclusion in a pseudo-merge bitmap.</p>
<div class="paragraph">
<p>Commits are grouped into pseudo-merge groups based on whether or not
any reference(s) that point at a given commit match the pattern, which
is an extended regular expression.</p>
</div>
<div class="paragraph">
<p>Within a pseudo-merge group, commits may be further grouped into
sub-groups based on the capture groups in the pattern. These
sub-groupings are formed from the regular expressions by concatenating
any capture groups from the regular expression, with a <em>-</em> dash in
between.</p>
</div>
<div class="paragraph">
<p>For example, if the pattern is <code>refs/tags/</code>, then all tags (provided
they meet the below criteria) will be considered candidates for the
same pseudo-merge group. However, if the pattern is instead
<code>refs/remotes/</code>([<code>0-9</code>])<code>+/tags/</code>, then tags from different remotes will
be grouped into separate pseudo-merge groups, based on the remote
number.</p>
</div>
</dd>
<dt class="hdlist1">bitmapPseudoMerge.&lt;name&gt;.decay</dt>
<dd>
<p>Determines the rate at which consecutive pseudo-merge bitmap
groups decrease in size. Must be non-negative. This parameter
can be thought of as <code>k</code> in the function <code>f</code>(<code>n</code>) <code>=</code> <code>C</code> <code>*</code> <code>n^-k</code>,
where <code>f</code>(<code>n</code>) is the size of the `n`th group.</p>
<div class="paragraph">
<p>Setting the decay rate equal to <code>0</code> will cause all groups to be the
same size. Setting the decay rate equal to <code>1</code> will cause the <code>n</code>`th
<code>group</code> <code>to</code> <code>be</code> `1/n the size of the initial group.  Higher values of the
decay rate cause consecutive groups to shrink at an increasing rate.
The default is <code>1</code>.</p>
</div>
<div class="paragraph">
<p>If all groups are the same size, it is possible that groups containing
newer commits will be able to be used less often than earlier groups,
since it is more likely that the references pointing at newer commits
will be updated more often than a reference pointing at an old commit.</p>
</div>
</dd>
<dt class="hdlist1">bitmapPseudoMerge.&lt;name&gt;.sampleRate</dt>
<dd>
<p>Determines the proportion of non-bitmapped commits (among
reference tips) which are selected for inclusion in an
unstable pseudo-merge bitmap. Must be between <code>0</code> and <code>1</code>
(inclusive). The default is <code>1</code>.</p>
</dd>
<dt class="hdlist1">bitmapPseudoMerge.&lt;name&gt;.threshold</dt>
<dd>
<p>Determines the minimum age of non-bitmapped commits (among
reference tips, as above) which are candidates for inclusion
in an unstable pseudo-merge bitmap. The default is
<code>1.week.ago</code>.</p>
</dd>
<dt class="hdlist1">bitmapPseudoMerge.&lt;name&gt;.maxMerges</dt>
<dd>
<p>Determines the maximum number of pseudo-merge commits among
which commits may be distributed.</p>
<div class="paragraph">
<p>For pseudo-merge groups whose pattern does not contain any capture
groups, this setting is applied for all commits matching the regular
expression. For patterns that have one or more capture groups, this
setting is applied for each distinct capture group.</p>
</div>
<div class="paragraph">
<p>For example, if your capture group is <code>refs/tags/</code>, then this setting
will distribute all tags into a maximum of <code>maxMerges</code> pseudo-merge
commits. However, if your capture group is, say,
<code>refs/remotes/</code>([<code>0-9</code>]<code>+</code>)<code>/tags/</code>, then this setting will be applied to
each remote&#8217;s set of tags individually.</p>
</div>
<div class="paragraph">
<p>Must be non-negative. The default value is 64.</p>
</div>
</dd>
<dt class="hdlist1">bitmapPseudoMerge.&lt;name&gt;.stableThreshold</dt>
<dd>
<p>Determines the minimum age of commits (among reference tips,
as above, however stable commits are still considered
candidates even when they have been covered by a bitmap) which
are candidates for a stable a pseudo-merge bitmap. The default
is <code>1.month.ago</code>.</p>
<div class="paragraph">
<p>Setting this threshold to a smaller value (e.g., 1.week.ago) will cause
more stable groups to be generated (which impose a one-time generation
cost) but those groups will likely become stale over time. Using a
larger value incurs the opposite penalty (fewer stable groups which are
more useful).</p>
</div>
</dd>
<dt class="hdlist1">bitmapPseudoMerge.&lt;name&gt;.stableSize</dt>
<dd>
<p>Determines the size (in number of commits) of a stable
psuedo-merge bitmap. The default is <code>512</code>.</p>
</dd>
<dt class="hdlist1">blame.blankBoundary</dt>
<dd>
<p>Show blank commit object name for boundary commits in
<a href="git-blame.html">git-blame(1)</a>. This option defaults to false.</p>
</dd>
<dt class="hdlist1">blame.coloring</dt>
<dd>
<p>This determines the coloring scheme to be applied to blame
output. It can be <em>repeatedLines</em>, <em>highlightRecent</em>,
or <em>none</em> which is the default.</p>
</dd>
<dt class="hdlist1">blame.date</dt>
<dd>
<p>Specifies the format used to output dates in <a href="git-blame.html">git-blame(1)</a>.
If unset the iso format is used. For supported values,
see the discussion of the <code>--date</code> option at <a href="git-log.html">git-log(1)</a>.</p>
</dd>
<dt class="hdlist1">blame.showEmail</dt>
<dd>
<p>Show the author email instead of author name in <a href="git-blame.html">git-blame(1)</a>.
This option defaults to false.</p>
</dd>
<dt class="hdlist1">blame.showRoot</dt>
<dd>
<p>Do not treat root commits as boundaries in <a href="git-blame.html">git-blame(1)</a>.
This option defaults to false.</p>
</dd>
<dt class="hdlist1">blame.ignoreRevsFile</dt>
<dd>
<p>Ignore revisions listed in the file, one unabbreviated object name per
line, in <a href="git-blame.html">git-blame(1)</a>.  Whitespace and comments beginning with
# are ignored.  This option may be repeated multiple times.  Empty
file names will reset the list of ignored revisions.  This option will
be handled before the command line option <code>--ignore-revs-file</code>.</p>
</dd>
<dt class="hdlist1">blame.markUnblamableLines</dt>
<dd>
<p>Mark lines that were changed by an ignored revision that we could not
attribute to another commit with a <em>*</em> in the output of
<a href="git-blame.html">git-blame(1)</a>.</p>
</dd>
<dt class="hdlist1">blame.markIgnoredLines</dt>
<dd>
<p>Mark lines that were changed by an ignored revision that we attributed to
another commit with a <em>?</em> in the output of <a href="git-blame.html">git-blame(1)</a>.</p>
</dd>
<dt class="hdlist1"><code>branch.autoSetupMerge</code></dt>
<dd>
<p>Tells <code>git</code> <code>branch</code>, <code>git</code> <code>switch</code> and <code>git</code> <code>checkout</code> to set up new branches
so that <a href="git-pull.html">git-pull(1)</a> will appropriately merge from the
starting point branch. Note that even if this option is not set,
this behavior can be chosen per-branch using the <code>--track</code>
and <code>--no-track</code> options.  This option defaults to <code>true</code>. The valid settings
are:</p>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>false</code></dt>
<dd>
<p>no automatic setup is done</p>
</dd>
<dt class="hdlist1"><code>true</code></dt>
<dd>
<p>automatic setup is done when the starting point is a remote-tracking branch</p>
</dd>
<dt class="hdlist1"><code>always</code></dt>
<dd>
<p>automatic setup is done when the starting point is either a
local branch or remote-tracking branch</p>
</dd>
<dt class="hdlist1"><code>inherit</code></dt>
<dd>
<p>if the starting point has a tracking configuration, it is copied to the new
branch</p>
</dd>
<dt class="hdlist1"><code>simple</code></dt>
<dd>
<p>automatic setup is done only when the starting point
is a remote-tracking branch and the new branch has the same name as the
remote branch.</p>
</dd>
</dl>
</div>
</dd>
<dt class="hdlist1"><code>branch.autoSetupRebase</code></dt>
<dd>
<p>When a new branch is created with <code>git</code> <code>branch</code>, <code>git</code> <code>switch</code> or <code>git</code> <code>checkout</code>
that tracks another branch, this variable tells Git to set
up pull to rebase instead of merge (see <code>branch.</code><em>&lt;name&gt;</em><code>.rebase</code>).
The valid settings are:</p>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>never</code></dt>
<dd>
<p>rebase is never automatically set to true.</p>
</dd>
<dt class="hdlist1"><code>local</code></dt>
<dd>
<p>rebase is set to true for tracked branches of other local branches.</p>
</dd>
<dt class="hdlist1"><code>remote</code></dt>
<dd>
<p>rebase is set to true for tracked branches of remote-tracking branches.</p>
</dd>
<dt class="hdlist1"><code>always</code></dt>
<dd>
<p>rebase will be set to true for all tracking branches.</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>See <code>branch.autoSetupMerge</code> for details on how to set up a branch to track another branch.
This option defaults to <code>never</code>.</p>
</div>
</dd>
<dt class="hdlist1"><code>branch.sort</code></dt>
<dd>
<p>This variable controls the sort ordering of branches when displayed by
<a href="git-branch.html">git-branch(1)</a>. Without the <code>--sort=</code><em>&lt;value&gt;</em> option provided, the
value of this variable will be used as the default.
See <a href="git-for-each-ref.html">git-for-each-ref(1)</a> field names for valid values.</p>
</dd>
<dt class="hdlist1"><code>branch.</code><em>&lt;name&gt;</em><code>.remote</code></dt>
<dd>
<p>When on branch <em>&lt;name&gt;</em>, it tells <code>git</code> <code>fetch</code> and <code>git</code> <code>push</code>
which remote to fetch from or push to.  The remote to push to
may be overridden with <code>remote.pushDefault</code> (for all branches).
The remote to push to, for the current branch, may be further
overridden by <code>branch.</code><em>&lt;name&gt;</em><code>.pushRemote</code>.  If no remote is
configured, or if you are not on any branch and there is more than
one remote defined in the repository, it defaults to <code>origin</code> for
fetching and <code>remote.pushDefault</code> for pushing.
Additionally, . (a period) is the current local repository
(a dot-repository), see <code>branch.</code><em>&lt;name&gt;</em><code>.merge</code>'s final note below.</p>
</dd>
<dt class="hdlist1"><code>branch.</code><em>&lt;name&gt;</em><code>.pushRemote</code></dt>
<dd>
<p>When on branch <em>&lt;name&gt;</em>, it overrides <code>branch.</code><em>&lt;name&gt;</em><code>.remote</code> for
pushing.  It also overrides <code>remote.pushDefault</code> for pushing
from branch <em>&lt;name&gt;</em>.  When you pull from one place (e.g. your
upstream) and push to another place (e.g. your own publishing
repository), you would want to set <code>remote.pushDefault</code> to
specify the remote to push to for all branches, and use this
option to override it for a specific branch.</p>
</dd>
<dt class="hdlist1"><code>branch.</code><em>&lt;name&gt;</em><code>.merge</code></dt>
<dd>
<p>Defines, together with <code>branch.</code><em>&lt;name&gt;</em><code>.remote</code>, the upstream branch
for the given branch. It tells <code>git</code> <code>fetch</code>/<code>git</code> <code>pull</code>/<code>git</code> <code>rebase</code> which
branch to merge and can also affect <code>git</code> <code>push</code> (see <code>push.default</code>).
When in branch <em>&lt;name&gt;</em>, it tells <code>git</code> <code>fetch</code> the default
refspec to be marked for merging in <code>FETCH_HEAD</code>. The value is
handled like the remote part of a refspec, and must match a
ref which is fetched from the remote given by
<code>branch.</code><em>&lt;name&gt;</em><code>.remote</code>.
The merge information is used by <code>git</code> <code>pull</code> (which first calls
<code>git</code> <code>fetch</code>) to lookup the default branch for merging. Without
this option, <code>git</code> <code>pull</code> defaults to merge the first refspec fetched.
Specify multiple values to get an octopus merge.
If you wish to setup <code>git</code> <code>pull</code> so that it merges into <em>&lt;name&gt;</em> from
another branch in the local repository, you can point
<code>branch.</code><em>&lt;name&gt;</em><code>.merge</code> to the desired branch, and use the relative path
setting . (a period) for <code>branch.</code><em>&lt;name&gt;</em><code>.remote</code>.</p>
</dd>
<dt class="hdlist1"><code>branch.</code><em>&lt;name&gt;</em><code>.mergeOptions</code></dt>
<dd>
<p>Sets default options for merging into branch <em>&lt;name&gt;</em>. The syntax and
supported options are the same as those of <a href="git-merge.html">git-merge(1)</a>, but
option values containing whitespace characters are currently not
supported.</p>
</dd>
<dt class="hdlist1"><code>branch.</code><em>&lt;name&gt;</em><code>.rebase</code></dt>
<dd>
<p>When true, rebase the branch <em>&lt;name&gt;</em> on top of the fetched branch,
instead of merging the default branch from the default remote when
<code>git</code> <code>pull</code> is run. See <code>pull.rebase</code> for doing this in a non
branch-specific manner.</p>
<div class="paragraph">
<p>When <code>merges</code> (or just <code>m</code>), pass the <code>--rebase-merges</code> option to <code>git</code> <code>rebase</code>
so that the local merge commits are included in the rebase (see
<a href="git-rebase.html">git-rebase(1)</a> for details).</p>
</div>
<div class="paragraph">
<p>When the value is <code>interactive</code> (or just <code>i</code>), the rebase is run in interactive
mode.</p>
</div>
<div class="paragraph">
<p><strong>NOTE</strong>: this is a possibly dangerous operation; do <strong>not</strong> use
it unless you understand the implications (see <a href="git-rebase.html">git-rebase(1)</a>
for details).</p>
</div>
</dd>
<dt class="hdlist1"><code>branch.</code><em>&lt;name&gt;</em><code>.description</code></dt>
<dd>
<p>Branch description, can be edited with
<code>git</code> <code>branch</code> <code>--edit-description</code>. Branch description is
automatically added to the <code>format-patch</code> cover letter or
<code>request-pull</code> summary.</p>
</dd>
<dt class="hdlist1">browser.&lt;tool&gt;.cmd</dt>
<dd>
<p>Specify the command to invoke the specified browser. The
specified command is evaluated in shell with the URLs passed
as arguments. (See <a href="git-web&#x2d;&#x2d;browse.html">git-web&#x2d;&#x2d;browse(1)</a>.)</p>
</dd>
<dt class="hdlist1">browser.&lt;tool&gt;.path</dt>
<dd>
<p>Override the path for the given tool that may be used to
browse HTML help (see <code>-w</code> option in <a href="git-help.html">git-help(1)</a>) or a
working repository in gitweb (see <a href="git-instaweb.html">git-instaweb(1)</a>).</p>
</dd>
<dt class="hdlist1">bundle.*</dt>
<dd>
<p>The <code>bundle.*</code> keys may appear in a bundle list file found via the
<code>git</code> <code>clone</code> <code>--bundle-uri</code> option. These keys currently have no effect
if placed in a repository config file, though this will change in the
future. See <a href="technical/bundle-uri.html">the bundle URI design
document</a> for more details.</p>
</dd>
<dt class="hdlist1">bundle.version</dt>
<dd>
<p>This integer value advertises the version of the bundle list format
used by the bundle list. Currently, the only accepted value is <code>1</code>.</p>
</dd>
<dt class="hdlist1">bundle.mode</dt>
<dd>
<p>This string value should be either <code>all</code> or <code>any</code>. This value describes
whether all of the advertised bundles are required to unbundle a
complete understanding of the bundled information (<code>all</code>) or if any one
of the listed bundle URIs is sufficient (<code>any</code>).</p>
</dd>
<dt class="hdlist1">bundle.heuristic</dt>
<dd>
<p>If this string-valued key exists, then the bundle list is designed to
work well with incremental <code>git</code> <code>fetch</code> commands. The heuristic signals
that there are additional keys available for each bundle that help
determine which subset of bundles the client should download. The
only value currently understood is <code>creationToken</code>.</p>
</dd>
<dt class="hdlist1">bundle.&lt;id&gt;.*</dt>
<dd>
<p>The <code>bundle.</code><em>&lt;id&gt;</em><code>.*</code> keys are used to describe a single item in the
bundle list, grouped under <em>&lt;id&gt;</em> for identification purposes.</p>
</dd>
<dt class="hdlist1">bundle.&lt;id&gt;.uri</dt>
<dd>
<p>This string value defines the URI by which Git can reach the contents
of this <em>&lt;id&gt;</em>. This URI may be a bundle file or another bundle list.</p>
</dd>
<dt class="hdlist1"><code>checkout.defaultRemote</code></dt>
<dd>
<p>When you run <code>git</code> <code>checkout</code> <em>&lt;something&gt;</em>
or <code>git</code> <code>switch</code> <em>&lt;something&gt;</em> and only have one
remote, it may implicitly fall back on checking out and
tracking e.g. <code>origin/</code><em>&lt;something&gt;</em>. This stops working as soon
as you have more than one remote with a <em>&lt;something&gt;</em>
reference. This setting allows for setting the name of a
preferred remote that should always win when it comes to
disambiguation. The typical use-case is to set this to
<code>origin</code>.</p>
<div class="paragraph">
<p>Currently this is used by <a href="git-switch.html">git-switch(1)</a> and
<a href="git-checkout.html">git-checkout(1)</a> when <code>git</code> <code>checkout</code> <em>&lt;something&gt;</em>
or <code>git</code> <code>switch</code> <em>&lt;something&gt;</em>
will checkout the <em>&lt;something&gt;</em> branch on another remote,
and by <a href="git-worktree.html">git-worktree(1)</a> when <code>git</code> <code>worktree</code> <code>add</code> refers to a
remote branch. This setting might be used for other checkout-like
commands or functionality in the future.</p>
</div>
</dd>
<dt class="hdlist1"><code>checkout.guess</code></dt>
<dd>
<p>Provides the default value for the <code>--guess</code> or <code>--no-guess</code>
option in <code>git</code> <code>checkout</code> and <code>git</code> <code>switch</code>. See
<a href="git-switch.html">git-switch(1)</a> and <a href="git-checkout.html">git-checkout(1)</a>.</p>
</dd>
<dt class="hdlist1"><code>checkout.workers</code></dt>
<dd>
<p>The number of parallel workers to use when updating the working tree.
The default is one, i.e. sequential execution. If set to a value less
than one, Git will use as many workers as the number of logical cores
available. This setting and <code>checkout.thresholdForParallelism</code> affect
all commands that perform checkout. E.g. checkout, clone, reset,
sparse-checkout, etc.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<div class="title">Note</div>
</td>
<td class="content">
Parallel checkout usually delivers better performance for repositories
located on SSDs or over NFS. For repositories on spinning disks and/or machines
with a small number of cores, the default sequential checkout often performs
better. The size and compression level of a repository might also influence how
well the parallel version performs.
</td>
</tr>
</table>
</div>
</dd>
<dt class="hdlist1"><code>checkout.thresholdForParallelism</code></dt>
<dd>
<p>When running parallel checkout with a small number of files, the cost
of subprocess spawning and inter-process communication might outweigh
the parallelization gains. This setting allows you to define the minimum
number of files for which parallel checkout should be attempted. The
default is 100.</p>
</dd>
<dt class="hdlist1">clean.requireForce</dt>
<dd>
<p>A boolean to make git-clean refuse to delete files unless -f
is given. Defaults to true.</p>
</dd>
<dt class="hdlist1"><code>clone.defaultRemoteName</code></dt>
<dd>
<p>The name of the remote to create when cloning a repository.  Defaults to
<code>origin</code>.
It can be overridden by passing the <code>--origin</code> command-line
option to <a href="git-clone.html">git-clone(1)</a>.</p>
</dd>
<dt class="hdlist1"><code>clone.rejectShallow</code></dt>
<dd>
<p>Reject cloning a repository if it is a shallow one; this can be overridden by
passing the <code>--reject-shallow</code> option on the command line.
See <a href="git-clone.html">git-clone(1)</a>.</p>
</dd>
<dt class="hdlist1"><code>clone.filterSubmodules</code></dt>
<dd>
<p>If a partial clone filter is provided (see <code>--filter</code> in
<a href="git-rev-list.html">git-rev-list(1)</a>) and <code>--recurse-submodules</code> is used, also apply
the filter to submodules.</p>
</dd>
<dt class="hdlist1">color.advice</dt>
<dd>
<p>A boolean to enable/disable color in hints (e.g. when a push
failed, see <code>advice.*</code> for a list).  May be set to <code>always</code>,
<code>false</code> (or <code>never</code>) or <code>auto</code> (or <code>true</code>), in which case colors
are used only when the error output goes to a terminal. If
unset, then the value of <code>color.ui</code> is used (<code>auto</code> by default).</p>
</dd>
<dt class="hdlist1">color.advice.hint</dt>
<dd>
<p>Use customized color for hints.</p>
</dd>
<dt class="hdlist1">color.blame.highlightRecent</dt>
<dd>
<p>Specify the line annotation color for <code>git</code> <code>blame</code> <code>--color-by-age</code>
depending upon the age of the line.</p>
<div class="paragraph">
<p>This setting should be set to a comma-separated list of color and
date settings, starting and ending with a color, the dates should be
set from oldest to newest. The metadata will be colored with the
specified colors if the line was introduced before the given
timestamp, overwriting older timestamped colors.</p>
</div>
<div class="paragraph">
<p>Instead of an absolute timestamp relative timestamps work as well,
e.g. <code>2.weeks.ago</code> is valid to address anything older than 2 weeks.</p>
</div>
<div class="paragraph">
<p>It defaults to <code>blue,12</code> <code>month</code> <code>ago,white,1</code> <code>month</code> <code>ago,red</code>, which
colors everything older than one year blue, recent changes between
one month and one year old are kept white, and lines introduced
within the last month are colored red.</p>
</div>
</dd>
<dt class="hdlist1">color.blame.repeatedLines</dt>
<dd>
<p>Use the specified color to colorize line annotations for
<code>git</code> <code>blame</code> <code>--color-lines</code>, if they come from the same commit as the
preceding line. Defaults to cyan.</p>
</dd>
<dt class="hdlist1">color.branch</dt>
<dd>
<p>A boolean to enable/disable color in the output of
<a href="git-branch.html">git-branch(1)</a>. May be set to <code>always</code>,
<code>false</code> (or <code>never</code>) or <code>auto</code> (or <code>true</code>), in which case colors are used
only when the output is to a terminal. If unset, then the
value of <code>color.ui</code> is used (<code>auto</code> by default).</p>
</dd>
<dt class="hdlist1">color.branch.&lt;slot&gt;</dt>
<dd>
<p>Use customized color for branch coloration. <em>&lt;slot&gt;</em> is one of
<code>current</code> (the current branch), <code>local</code> (a local branch),
<code>remote</code> (a remote-tracking branch in refs/remotes/),
<code>upstream</code> (upstream tracking branch), <code>plain</code> (other
refs).</p>
</dd>
<dt class="hdlist1">color.diff</dt>
<dd>
<p>Whether to use ANSI escape sequences to add color to patches.
If this is set to <code>always</code>, <a href="git-diff.html">git-diff(1)</a>,
<a href="git-log.html">git-log(1)</a>, and <a href="git-show.html">git-show(1)</a> will use color
for all patches.  If it is set to <code>true</code> or <code>auto</code>, those
commands will only use color when output is to the terminal.
If unset, then the value of <code>color.ui</code> is used (<code>auto</code> by
default).</p>
<div class="paragraph">
<p>This does not affect <a href="git-format-patch.html">git-format-patch(1)</a> or the
<em>git-diff-*</em> plumbing commands.  Can be overridden on the
command line with the <code>--color</code>[<code>=</code><em>&lt;when&gt;</em>] option.</p>
</div>
</dd>
<dt class="hdlist1">color.diff.&lt;slot&gt;</dt>
<dd>
<p>Use customized color for diff colorization.  <em>&lt;slot&gt;</em> specifies
which part of the patch to use the specified color, and is one
of <code>context</code> (context text - <code>plain</code> is a historical synonym),
<code>meta</code> (metainformation), <code>frag</code>
(hunk header), <em>func</em> (function in hunk header), <code>old</code> (removed lines),
<code>new</code> (added lines), <code>commit</code> (commit headers), <code>whitespace</code>
(highlighting whitespace errors), <code>oldMoved</code> (deleted lines),
<code>newMoved</code> (added lines), <code>oldMovedDimmed</code>, <code>oldMovedAlternative</code>,
<code>oldMovedAlternativeDimmed</code>, <code>newMovedDimmed</code>, <code>newMovedAlternative</code>
<code>newMovedAlternativeDimmed</code> (See the <em>&lt;mode&gt;</em>
setting of <em>--color-moved</em> in <a href="git-diff.html">git-diff(1)</a> for details),
<code>contextDimmed</code>, <code>oldDimmed</code>, <code>newDimmed</code>, <code>contextBold</code>,
<code>oldBold</code>, and <code>newBold</code> (see <a href="git-range-diff.html">git-range-diff(1)</a> for details).</p>
</dd>
<dt class="hdlist1">color.decorate.&lt;slot&gt;</dt>
<dd>
<p>Use customized color for <em>git log --decorate</em> output.  <em>&lt;slot&gt;</em> is one
of <code>branch</code>, <code>remoteBranch</code>, <code>tag</code>, <code>stash</code> or <code>HEAD</code> for local
branches, remote-tracking branches, tags, stash and HEAD, respectively
and <code>grafted</code> for grafted commits.</p>
</dd>
<dt class="hdlist1">color.grep</dt>
<dd>
<p>When set to <code>always</code>, always highlight matches.  When <code>false</code> (or
<code>never</code>), never.  When set to <code>true</code> or <code>auto</code>, use color only
when the output is written to the terminal.  If unset, then the
value of <code>color.ui</code> is used (<code>auto</code> by default).</p>
</dd>
<dt class="hdlist1">color.grep.&lt;slot&gt;</dt>
<dd>
<p>Use customized color for grep colorization.  <em>&lt;slot&gt;</em> specifies which
part of the line to use the specified color, and is one of</p>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1"><code>context</code></dt>
<dd>
<p>non-matching text in context lines (when using <code>-A</code>, <code>-B</code>, or <code>-C</code>)</p>
</dd>
<dt class="hdlist1"><code>filename</code></dt>
<dd>
<p>filename prefix (when not using <code>-h</code>)</p>
</dd>
<dt class="hdlist1"><code>function</code></dt>
<dd>
<p>function name lines (when using <code>-p</code>)</p>
</dd>
<dt class="hdlist1"><code>lineNumber</code></dt>
<dd>
<p>line number prefix (when using <code>-n</code>)</p>
</dd>
<dt class="hdlist1"><code>column</code></dt>
<dd>
<p>column number prefix (when using <code>--column</code>)</p>
</dd>
<dt class="hdlist1"><code>match</code></dt>
<dd>
<p>matching text (same as setting <code>matchContext</code> and <code>matchSelected</code>)</p>
</dd>
<dt class="hdlist1"><code>matchContext</code></dt>
<dd>
<p>matching text in context lines</p>
</dd>
<dt class="hdlist1"><code>matchSelected</code></dt>
<dd>
<p>matching text in selected lines. Also, used to customize the following
<a href="git-log.html">git-log(1)</a> subcommands: <code>--grep</code>, <code>--author</code>, and <code>--committer</code>.</p>
</dd>
<dt class="hdlist1"><code>selected</code></dt>
<dd>
<p>non-matching text in selected lines. Also, used to customize the
following <a href="git-log.html">git-log(1)</a> subcommands: <code>--grep</code>, <code>--author</code> and
<code>--committer</code>.</p>
</dd>
<dt class="hdlist1"><code>separator</code></dt>
<dd>
<p>separators between fields on a line (<code>:</code>, <code>-</code>, and <code>=</code>)
and between hunks (<code>--</code>)</p>
</dd>
</dl>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">color.interactive</dt>
<dd>
<p>When set to <code>always</code>, always use colors for interactive prompts
and displays (such as those used by "git-add --interactive" and
"git-clean --interactive"). When false (or <code>never</code>), never.
When set to <code>true</code> or <code>auto</code>, use colors only when the output is
to the terminal. If unset, then the value of <code>color.ui</code> is
used (<code>auto</code> by default).</p>
</dd>
<dt class="hdlist1">color.interactive.&lt;slot&gt;</dt>
<dd>
<p>Use customized color for <em>git add --interactive</em> and <em>git clean
--interactive</em> output. <em>&lt;slot&gt;</em> may be <code>prompt</code>, <code>header</code>, <code>help</code>
or <code>error</code>, for four distinct types of normal output from
interactive commands.</p>
</dd>
<dt class="hdlist1">color.pager</dt>
<dd>
<p>A boolean to specify whether <code>auto</code> color modes should colorize
output going to the pager. Defaults to true; set this to false
if your pager does not understand ANSI color codes.</p>
</dd>
<dt class="hdlist1">color.push</dt>
<dd>
<p>A boolean to enable/disable color in push errors. May be set to
<code>always</code>, <code>false</code> (or <code>never</code>) or <code>auto</code> (or <code>true</code>), in which
case colors are used only when the error output goes to a terminal.
If unset, then the value of <code>color.ui</code> is used (<code>auto</code> by default).</p>
</dd>
<dt class="hdlist1">color.push.error</dt>
<dd>
<p>Use customized color for push errors.</p>
</dd>
<dt class="hdlist1">color.remote</dt>
<dd>
<p>If set, keywords at the start of the line are highlighted. The
keywords are "error", "warning", "hint" and "success", and are
matched case-insensitively. May be set to <code>always</code>, <code>false</code> (or
<code>never</code>) or <code>auto</code> (or <code>true</code>). If unset, then the value of
<code>color.ui</code> is used (<code>auto</code> by default).</p>
</dd>
<dt class="hdlist1">color.remote.&lt;slot&gt;</dt>
<dd>
<p>Use customized color for each remote keyword. <em>&lt;slot&gt;</em> may be
<code>hint</code>, <code>warning</code>, <code>success</code> or <code>error</code> which match the
corresponding keyword.</p>
</dd>
<dt class="hdlist1">color.showBranch</dt>
<dd>
<p>A boolean to enable/disable color in the output of
<a href="git-show-branch.html">git-show-branch(1)</a>. May be set to <code>always</code>,
<code>false</code> (or <code>never</code>) or <code>auto</code> (or <code>true</code>), in which case colors are used
only when the output is to a terminal. If unset, then the
value of <code>color.ui</code> is used (<code>auto</code> by default).</p>
</dd>
<dt class="hdlist1">color.status</dt>
<dd>
<p>A boolean to enable/disable color in the output of
<a href="git-status.html">git-status(1)</a>. May be set to <code>always</code>,
<code>false</code> (or <code>never</code>) or <code>auto</code> (or <code>true</code>), in which case colors are used
only when the output is to a terminal. If unset, then the
value of <code>color.ui</code> is used (<code>auto</code> by default).</p>
</dd>
<dt class="hdlist1">color.status.&lt;slot&gt;</dt>
<dd>
<p>Use customized color for status colorization. <em>&lt;slot&gt;</em> is
one of <code>header</code> (the header text of the status message),
<code>added</code> or <code>updated</code> (files which are added but not committed),
<code>changed</code> (files which are changed but not added in the index),
<code>untracked</code> (files which are not tracked by Git),
<code>branch</code> (the current branch),
<code>nobranch</code> (the color the <em>no branch</em> warning is shown in, defaulting
to red),
<code>localBranch</code> or <code>remoteBranch</code> (the local and remote branch names,
respectively, when branch and tracking information is displayed in the
status short-format), or
<code>unmerged</code> (files which have unmerged changes).</p>
</dd>
<dt class="hdlist1">color.transport</dt>
<dd>
<p>A boolean to enable/disable color when pushes are rejected. May be
set to <code>always</code>, <code>false</code> (or <code>never</code>) or <code>auto</code> (or <code>true</code>), in which
case colors are used only when the error output goes to a terminal.
If unset, then the value of <code>color.ui</code> is used (<code>auto</code> by default).</p>
</dd>
<dt class="hdlist1">color.transport.rejected</dt>
<dd>
<p>Use customized color when a push was rejected.</p>
</dd>
<dt class="hdlist1">color.ui</dt>
<dd>
<p>This variable determines the default value for variables such
as <code>color.diff</code> and <code>color.grep</code> that control the use of color
per command family. Its scope will expand as more commands learn
configuration to set a default for the <code>--color</code> option.  Set it
to <code>false</code> or <code>never</code> if you prefer Git commands not to use
color unless enabled explicitly with some other configuration
or the <code>--color</code> option. Set it to <code>always</code> if you want all
output not intended for machine consumption to use color, to
<code>true</code> or <code>auto</code> (this is the default since Git 1.8.4) if you
want such output to use color when written to the terminal.</p>
</dd>
<dt class="hdlist1">column.ui</dt>
<dd>
<p>Specify whether supported commands should output in columns.
This variable consists of a list of tokens separated by spaces
or commas:</p>
<div class="paragraph">
<p>These options control when the feature should be enabled
(defaults to <em>never</em>):</p>
</div>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1"><code>always</code></dt>
<dd>
<p>always show in columns</p>
</dd>
<dt class="hdlist1"><code>never</code></dt>
<dd>
<p>never show in columns</p>
</dd>
<dt class="hdlist1"><code>auto</code></dt>
<dd>
<p>show in columns if the output is to the terminal</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="paragraph">
<p>These options control layout (defaults to <em>column</em>).  Setting any
of these implies <em>always</em> if none of <em>always</em>, <em>never</em>, or <em>auto</em> are
specified.</p>
</div>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1"><code>column</code></dt>
<dd>
<p>fill columns before rows</p>
</dd>
<dt class="hdlist1"><code>row</code></dt>
<dd>
<p>fill rows before columns</p>
</dd>
<dt class="hdlist1"><code>plain</code></dt>
<dd>
<p>show in one column</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="paragraph">
<p>Finally, these options can be combined with a layout option (defaults
to <em>nodense</em>):</p>
</div>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1"><code>dense</code></dt>
<dd>
<p>make unequal size columns to utilize more space</p>
</dd>
<dt class="hdlist1"><code>nodense</code></dt>
<dd>
<p>make equal size columns</p>
</dd>
</dl>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">column.branch</dt>
<dd>
<p>Specify whether to output branch listing in <code>git</code> <code>branch</code> in columns.
See <code>column.ui</code> for details.</p>
</dd>
<dt class="hdlist1">column.clean</dt>
<dd>
<p>Specify the layout when listing items in <code>git</code> <code>clean</code> <code>-i</code>, which always
shows files and directories in columns. See <code>column.ui</code> for details.</p>
</dd>
<dt class="hdlist1">column.status</dt>
<dd>
<p>Specify whether to output untracked files in <code>git</code> <code>status</code> in columns.
See <code>column.ui</code> for details.</p>
</dd>
<dt class="hdlist1">column.tag</dt>
<dd>
<p>Specify whether to output tag listings in <code>git</code> <code>tag</code> in columns.
See <code>column.ui</code> for details.</p>
</dd>
</dl>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>commit.cleanup</code></dt>
<dd>
<p>This setting overrides the default of the <code>--cleanup</code> option in
<code>git</code> <code>commit</code>. See <a href="git-commit.html">git-commit(1)</a> for details. Changing the default can be useful
when you always want to keep lines that begin
with the comment character (<code>core.commentChar</code>, default #)
in your log message, in which case you
would do <code>git</code> <code>config</code> <code>commit.cleanup</code> <code>whitespace</code> (note that you will
have to remove the help lines that begin with the comment character
in the commit log template yourself, if you do this).</p>
</dd>
<dt class="hdlist1"><code>commit.gpgSign</code></dt>
<dd>
<p>A boolean to specify whether all commits should be GPG signed.
Use of this option when doing operations such as rebase can
result in a large number of commits being signed. It may be
convenient to use an agent to avoid typing your GPG passphrase
several times.</p>
</dd>
<dt class="hdlist1"><code>commit.status</code></dt>
<dd>
<p>A boolean to enable/disable inclusion of status information in the
commit message template when using an editor to prepare the commit
message.  Defaults to <code>true</code>.</p>
</dd>
<dt class="hdlist1"><code>commit.template</code></dt>
<dd>
<p>Specify the pathname of a file to use as the template for
new commit messages.</p>
</dd>
<dt class="hdlist1"><code>commit.verbose</code></dt>
<dd>
<p>A boolean or int to specify the level of verbosity with <code>git</code> <code>commit</code>.
See <a href="git-commit.html">git-commit(1)</a> for details.</p>
</dd>
<dt class="hdlist1">commitGraph.generationVersion</dt>
<dd>
<p>Specifies the type of generation number version to use when writing
or reading the commit-graph file. If version 1 is specified, then
the corrected commit dates will not be written or read. Defaults to
2.</p>
</dd>
<dt class="hdlist1">commitGraph.maxNewFilters</dt>
<dd>
<p>Specifies the default value for the <code>--max-new-filters</code> option of <code>git</code>
<code>commit-graph</code> <code>write</code> (c.f., <a href="git-commit-graph.html">git-commit-graph(1)</a>).</p>
</dd>
<dt class="hdlist1">commitGraph.readChangedPaths</dt>
<dd>
<p>Deprecated. Equivalent to commitGraph.changedPathsVersion=-1 if true, and
commitGraph.changedPathsVersion=0 if false. (If commitGraph.changedPathVersion
is also set, commitGraph.changedPathsVersion takes precedence.)</p>
</dd>
<dt class="hdlist1">commitGraph.changedPathsVersion</dt>
<dd>
<p>Specifies the version of the changed-path Bloom filters that Git will read and
write. May be -1, 0, 1, or 2. Note that values greater than 1 may be
incompatible with older versions of Git which do not yet understand
those versions. Use caution when operating in a mixed-version
environment.</p>
<div class="paragraph">
<p>Defaults to -1.</p>
</div>
<div class="paragraph">
<p>If -1, Git will use the version of the changed-path Bloom filters in the
repository, defaulting to 1 if there are none.</p>
</div>
<div class="paragraph">
<p>If 0, Git will not read any Bloom filters, and will write version 1 Bloom
filters when instructed to write.</p>
</div>
<div class="paragraph">
<p>If 1, Git will only read version 1 Bloom filters, and will write version 1
Bloom filters.</p>
</div>
<div class="paragraph">
<p>If 2, Git will only read version 2 Bloom filters, and will write version 2
Bloom filters.</p>
</div>
<div class="paragraph">
<p>See <a href="git-commit-graph.html">git-commit-graph(1)</a> for more information.</p>
</div>
</dd>
<dt class="hdlist1">completion.commands</dt>
<dd>
<p>This is only used by git-completion.bash to add or remove
commands from the list of completed commands. Normally only
porcelain commands and a few select others are completed. You
can add more commands, separated by space, in this
variable. Prefixing the command with <em>-</em> will remove it from
the existing list.</p>
</dd>
<dt class="hdlist1">core.fileMode</dt>
<dd>
<p>Tells Git if the executable bit of files in the working tree
is to be honored.</p>
<div class="paragraph">
<p>Some filesystems lose the executable bit when a file that is
marked as executable is checked out, or checks out a
non-executable file with executable bit on.
<a href="git-clone.html">git-clone(1)</a> or <a href="git-init.html">git-init(1)</a> probe the filesystem
to see if it handles the executable bit correctly
and this variable is automatically set as necessary.</p>
</div>
<div class="paragraph">
<p>A repository, however, may be on a filesystem that handles
the filemode correctly, and this variable is set to <em>true</em>
when created, but later may be made accessible from another
environment that loses the filemode (e.g. exporting ext4 via
CIFS mount, visiting a Cygwin created repository with
Git for Windows or Eclipse).
In such a case it may be necessary to set this variable to <em>false</em>.
See <a href="git-update-index.html">git-update-index(1)</a>.</p>
</div>
<div class="paragraph">
<p>The default is true (when core.filemode is not specified in the config file).</p>
</div>
</dd>
<dt class="hdlist1">core.hideDotFiles</dt>
<dd>
<p>(Windows-only) If true, mark newly-created directories and files whose
name starts with a dot as hidden.  If <em>dotGitOnly</em>, only the .<code>git/</code>
directory is hidden, but no other files starting with a dot.  The
default mode is <em>dotGitOnly</em>.</p>
</dd>
<dt class="hdlist1">core.ignoreCase</dt>
<dd>
<p>Internal variable which enables various workarounds to enable
Git to work better on filesystems that are not case sensitive,
like APFS, HFS+, FAT, NTFS, etc. For example, if a directory listing
finds "makefile" when Git expects "Makefile", Git will assume
it is really the same file, and continue to remember it as
"Makefile".</p>
<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>
will probe and set core.ignoreCase true if appropriate when the repository
is created.</p>
</div>
<div class="paragraph">
<p>Git relies on the proper configuration of this variable for your operating
and file system. Modifying this value may result in unexpected behavior.</p>
</div>
</dd>
<dt class="hdlist1">core.precomposeUnicode</dt>
<dd>
<p>This option is only used by Mac OS implementation of Git.
When core.precomposeUnicode=true, Git reverts the unicode decomposition
of filenames done by Mac OS. This is useful when sharing a repository
between Mac OS and Linux or Windows.
(Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7).
When false, file names are handled fully transparent by Git,
which is backward compatible with older versions of Git.</p>
</dd>
<dt class="hdlist1">core.protectHFS</dt>
<dd>
<p>If set to true, do not allow checkout of paths that would
be considered equivalent to .<code>git</code> on an HFS+ filesystem.
Defaults to <code>true</code> on Mac OS, and <code>false</code> elsewhere.</p>
</dd>
<dt class="hdlist1">core.protectNTFS</dt>
<dd>
<p>If set to true, do not allow checkout of paths that would
cause problems with the NTFS filesystem, e.g. conflict with
8.3 "short" names.
Defaults to <code>true</code> on Windows, and <code>false</code> elsewhere.</p>
</dd>
<dt class="hdlist1">core.fsmonitor</dt>
<dd>
<p>If set to true, enable the built-in file system monitor
daemon for this working directory (<a href="git-fsmonitor&#x2d;&#x2d;daemon.html">git-fsmonitor&#x2d;&#x2d;daemon(1)</a>).</p>
<div class="paragraph">
<p>Like hook-based file system monitors, the built-in file system monitor
can speed up Git commands that need to refresh the Git index
(e.g. <code>git</code> <code>status</code>) in a working directory with many files.  The
built-in monitor eliminates the need to install and maintain an
external third-party tool.</p>
</div>
<div class="paragraph">
<p>The built-in file system monitor is currently available only on a
limited set of supported platforms.  Currently, this includes Windows
and MacOS.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>Otherwise, this variable contains the pathname of the "fsmonitor"
hook command.</pre>
</div>
</div>
<div class="paragraph">
<p>This hook command is used to identify all files that may have changed
since the requested date/time. This information is used to speed up
git by avoiding unnecessary scanning of files that have not changed.</p>
</div>
<div class="paragraph">
<p>See the "fsmonitor-watchman" section of <a href="githooks.html">githooks(5)</a>.</p>
</div>
<div class="paragraph">
<p>Note that if you concurrently use multiple versions of Git, such
as one version on the command line and another version in an IDE
tool, that the definition of <code>core.fsmonitor</code> was extended to
allow boolean values in addition to hook pathnames.  Git versions
2.35.1 and prior will not understand the boolean values and will
consider the "true" or "false" values as hook pathnames to be
invoked.  Git versions 2.26 thru 2.35.1 default to hook protocol
V2 and will fall back to no fsmonitor (full scan).  Git versions
prior to 2.26 default to hook protocol V1 and will silently
assume there were no changes to report (no scan), so status
commands may report incomplete results.  For this reason, it is
best to upgrade all of your Git versions before using the built-in
file system monitor.</p>
</div>
</dd>
<dt class="hdlist1">core.fsmonitorHookVersion</dt>
<dd>
<p>Sets the protocol version to be used when invoking the
"fsmonitor" hook.</p>
<div class="paragraph">
<p>There are currently versions 1 and 2. When this is not set,
version 2 will be tried first and if it fails then version 1
will be tried. Version 1 uses a timestamp as input to determine
which files have changes since that time but some monitors
like Watchman have race conditions when used with a timestamp.
Version 2 uses an opaque string so that the monitor can return
something that can be used to determine what files have changed
without race conditions.</p>
</div>
</dd>
<dt class="hdlist1">core.trustctime</dt>
<dd>
<p>If false, the ctime differences between the index and the
working tree are ignored; useful when the inode change time
is regularly modified by something outside Git (file system
crawlers and some backup systems).
See <a href="git-update-index.html">git-update-index(1)</a>. True by default.</p>
</dd>
<dt class="hdlist1">core.splitIndex</dt>
<dd>
<p>If true, the split-index feature of the index will be used.
See <a href="git-update-index.html">git-update-index(1)</a>. False by default.</p>
</dd>
<dt class="hdlist1">core.untrackedCache</dt>
<dd>
<p>Determines what to do about the untracked cache feature of the
index. It will be kept, if this variable is unset or set to
<code>keep</code>. It will automatically be added if set to <code>true</code>. And
it will automatically be removed, if set to <code>false</code>. Before
setting it to <code>true</code>, you should check that mtime is working
properly on your system.
See <a href="git-update-index.html">git-update-index(1)</a>. <code>keep</code> by default, unless
<code>feature.manyFiles</code> is enabled which sets this setting to
<code>true</code> by default.</p>
</dd>
<dt class="hdlist1">core.checkStat</dt>
<dd>
<p>When missing or is set to <code>default</code>, many fields in the stat
structure are checked to detect if a file has been modified
since Git looked at it.  When this configuration variable is
set to <code>minimal</code>, sub-second part of mtime and ctime, the
uid and gid of the owner of the file, the inode number (and
the device number, if Git was compiled to use it), are
excluded from the check among these fields, leaving only the
whole-second part of mtime (and ctime, if <code>core.trustCtime</code>
is set) and the filesize to be checked.</p>
<div class="paragraph">
<p>There are implementations of Git that do not leave usable values in
some fields (e.g. JGit); by excluding these fields from the
comparison, the <code>minimal</code> mode may help interoperability when the
same repository is used by these other systems at the same time.</p>
</div>
</dd>
<dt class="hdlist1">core.quotePath</dt>
<dd>
<p>Commands that output paths (e.g. <em>ls-files</em>, <em>diff</em>), will
quote "unusual" characters in the pathname by enclosing the
pathname in double-quotes and escaping those characters with
backslashes in the same way C escapes control characters (e.g.
<code>\t</code> for TAB, <code>\n</code> for LF, <code>\\</code> for backslash) or bytes with
values larger than 0x80 (e.g. octal <code>\302\265</code> for "micro" in
UTF-8).  If this variable is set to false, bytes higher than
0x80 are not considered "unusual" any more. Double-quotes,
backslash and control characters are always escaped regardless
of the setting of this variable.  A simple space character is
not considered "unusual".  Many commands can output pathnames
completely verbatim using the <code>-z</code> option. The default value
is true.</p>
</dd>
<dt class="hdlist1">core.eol</dt>
<dd>
<p>Sets the line ending type to use in the working directory for
files that are marked as text (either by having the <code>text</code>
attribute set, or by having <code>text=auto</code> and Git auto-detecting
the contents as text).
Alternatives are <em>lf</em>, <em>crlf</em> and <em>native</em>, which uses the platform&#8217;s
native line ending.  The default value is <code>native</code>.  See
<a href="gitattributes.html">gitattributes(5)</a> for more information on end-of-line
conversion. Note that this value is ignored if <code>core.autocrlf</code>
is set to <code>true</code> or <code>input</code>.</p>
</dd>
<dt class="hdlist1">core.safecrlf</dt>
<dd>
<p>If true, makes Git check if converting <code>CRLF</code> is reversible when
end-of-line conversion is active.  Git will verify if a command
modifies a file in the work tree either directly or indirectly.
For example, committing a file followed by checking out the
same file should yield the original file in the work tree.  If
this is not the case for the current setting of
<code>core.autocrlf</code>, Git will reject the file.  The variable can
be set to "warn", in which case Git will only warn about an
irreversible conversion but continue the operation.</p>
<div class="paragraph">
<p>CRLF conversion bears a slight chance of corrupting data.
When it is enabled, Git will convert CRLF to LF during commit and LF to
CRLF during checkout.  A file that contains a mixture of LF and
CRLF before the commit cannot be recreated by Git.  For text
files this is the right thing to do: it corrects line endings
such that we have only LF line endings in the repository.
But for binary files that are accidentally classified as text the
conversion can corrupt data.</p>
</div>
<div class="paragraph">
<p>If you recognize such corruption early you can easily fix it by
setting the conversion type explicitly in .gitattributes.  Right
after committing you still have the original file in your work
tree and this file is not yet corrupted.  You can explicitly tell
Git that this file is binary and Git will handle the file
appropriately.</p>
</div>
<div class="paragraph">
<p>Unfortunately, the desired effect of cleaning up text files with
mixed line endings and the undesired effect of corrupting binary
files cannot be distinguished.  In both cases CRLFs are removed
in an irreversible way.  For text files this is the right thing
to do because CRLFs are line endings, while for binary files
converting CRLFs corrupts data.</p>
</div>
<div class="paragraph">
<p>Note, this safety check does not mean that a checkout will generate a
file identical to the original file for a different setting of
<code>core.eol</code> and <code>core.autocrlf</code>, but only for the current one.  For
example, a text file with <code>LF</code> would be accepted with <code>core.eol=lf</code>
and could later be checked out with <code>core.eol=crlf</code>, in which case the
resulting file would contain <code>CRLF</code>, although the original file
contained <code>LF</code>.  However, in both work trees the line endings would be
consistent, that is either all <code>LF</code> or all <code>CRLF</code>, but never mixed.  A
file with mixed line endings would be reported by the <code>core.safecrlf</code>
mechanism.</p>
</div>
</dd>
<dt class="hdlist1">core.autocrlf</dt>
<dd>
<p>Setting this variable to "true" is the same as setting
the <code>text</code> attribute to "auto" on all files and core.eol to "crlf".
Set to true if you want to have <code>CRLF</code> line endings in your
working directory and the repository has LF line endings.
This variable can be set to <em>input</em>,
in which case no output conversion is performed.</p>
</dd>
<dt class="hdlist1">core.checkRoundtripEncoding</dt>
<dd>
<p>A comma and/or whitespace separated list of encodings that Git
performs UTF-8 round trip checks on if they are used in an
<code>working-tree-encoding</code> attribute (see <a href="gitattributes.html">gitattributes(5)</a>).
The default value is <code>SHIFT-JIS</code>.</p>
</dd>
<dt class="hdlist1">core.symlinks</dt>
<dd>
<p>If false, symbolic links are checked out as small plain files that
contain the link text. <a href="git-update-index.html">git-update-index(1)</a> and
<a href="git-add.html">git-add(1)</a> will not change the recorded type to regular
file. Useful on filesystems like FAT that do not support
symbolic links.</p>
<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>
will probe and set core.symlinks false if appropriate when the repository
is created.</p>
</div>
</dd>
<dt class="hdlist1">core.gitProxy</dt>
<dd>
<p>A "proxy command" to execute (as <em>command host port</em>) instead
of establishing direct connection to the remote server when
using the Git protocol for fetching. If the variable value is
in the "COMMAND for DOMAIN" format, the command is applied only
on hostnames ending with the specified domain string. This variable
may be set multiple times and is matched in the given order;
the first match wins.</p>
<div class="paragraph">
<p>Can be overridden by the <code>GIT_PROXY_COMMAND</code> environment variable
(which always applies universally, without the special "for"
handling).</p>
</div>
<div class="paragraph">
<p>The special string <code>none</code> can be used as the proxy command to
specify that no proxy be used for a given domain pattern.
This is useful for excluding servers inside a firewall from
proxy use, while defaulting to a common proxy for external domains.</p>
</div>
</dd>
<dt class="hdlist1">core.sshCommand</dt>
<dd>
<p>If this variable is set, <code>git</code> <code>fetch</code> and <code>git</code> <code>push</code> will
use the specified command instead of <code>ssh</code> when they need to
connect to a remote system. The command is in the same form as
the <code>GIT_SSH_COMMAND</code> environment variable and is overridden
when the environment variable is set.</p>
</dd>
<dt class="hdlist1">core.ignoreStat</dt>
<dd>
<p>If true, Git will avoid using lstat() calls to detect if files have
changed by setting the "assume-unchanged" bit for those tracked files
which it has updated identically in both the index and working tree.</p>
<div class="paragraph">
<p>When files are modified outside of Git, the user will need to stage
the modified files explicitly (e.g. see <em>Examples</em> section in
<a href="git-update-index.html">git-update-index(1)</a>).
Git will not normally detect changes to those files.</p>
</div>
<div class="paragraph">
<p>This is useful on systems where lstat() calls are very slow, such as
CIFS/Microsoft Windows.</p>
</div>
<div class="paragraph">
<p>False by default.</p>
</div>
</dd>
<dt class="hdlist1">core.preferSymlinkRefs</dt>
<dd>
<p>Instead of the default "symref" format for HEAD
and other symbolic reference files, use symbolic links.
This is sometimes needed to work with old scripts that
expect HEAD to be a symbolic link.</p>
</dd>
<dt class="hdlist1">core.alternateRefsCommand</dt>
<dd>
<p>When advertising tips of available history from an alternate, use the shell to
execute the specified command instead of <a href="git-for-each-ref.html">git-for-each-ref(1)</a>. The
first argument is the absolute path of the alternate. Output must contain one
hex object id per line (i.e., the same as produced by <code>git</code> <code>for-each-ref</code>
<code>--format=</code>'%(<code>objectname</code>)').</p>
<div class="paragraph">
<p>Note that you cannot generally put <code>git</code> <code>for-each-ref</code> directly into the config
value, as it does not take a repository path as an argument (but you can wrap
the command above in a shell script).</p>
</div>
</dd>
<dt class="hdlist1">core.alternateRefsPrefixes</dt>
<dd>
<p>When listing references from an alternate, list only references that begin
with the given prefix. Prefixes match as if they were given as arguments to
<a href="git-for-each-ref.html">git-for-each-ref(1)</a>. To list multiple prefixes, separate them with
whitespace. If <code>core.alternateRefsCommand</code> is set, setting
<code>core.alternateRefsPrefixes</code> has no effect.</p>
</dd>
<dt class="hdlist1">core.bare</dt>
<dd>
<p>If true this repository is assumed to be <em>bare</em> and has no
working directory associated with it.  If this is the case a
number of commands that require a working directory will be
disabled, such as <a href="git-add.html">git-add(1)</a> or <a href="git-merge.html">git-merge(1)</a>.</p>
<div class="paragraph">
<p>This setting is automatically guessed by <a href="git-clone.html">git-clone(1)</a> or
<a href="git-init.html">git-init(1)</a> when the repository was created.  By default a
repository that ends in "/.git" is assumed to be not bare (bare =
false), while all other repositories are assumed to be bare (bare
= true).</p>
</div>
</dd>
<dt class="hdlist1">core.worktree</dt>
<dd>
<p>Set the path to the root of the working tree.
If <code>GIT_COMMON_DIR</code> environment variable is set, core.worktree
is ignored and not used for determining the root of working tree.
This can be overridden by the <code>GIT_WORK_TREE</code> environment
variable and the <code>--work-tree</code> command-line option.
The value can be an absolute path or relative to the path to
the .git directory, which is either specified by --git-dir
or GIT_DIR, or automatically discovered.
If --git-dir or GIT_DIR is specified but none of
--work-tree, GIT_WORK_TREE and core.worktree is specified,
the current working directory is regarded as the top level
of your working tree.</p>
<div class="paragraph">
<p>Note that this variable is honored even when set in a configuration
file in a ".git" subdirectory of a directory and its value differs
from the latter directory (e.g. "/path/to/.git/config" has
core.worktree set to "/different/path"), which is most likely a
misconfiguration.  Running Git commands in the "/path/to" directory will
still use "/different/path" as the root of the work tree and can cause
confusion unless you know what you are doing (e.g. you are creating a
read-only snapshot of the same index to a location different from the
repository&#8217;s usual working tree).</p>
</div>
</dd>
<dt class="hdlist1">core.logAllRefUpdates</dt>
<dd>
<p>Enable the reflog. Updates to a ref &lt;ref&gt; is logged to the file
"<code>$GIT_DIR/logs/</code><em>&lt;ref&gt;</em>", by appending the new and old
SHA-1, the date/time and the reason of the update, but
only when the file exists.  If this configuration
variable is set to <code>true</code>, missing "<code>$GIT_DIR/logs/</code><em>&lt;ref&gt;</em>"
file is automatically created for branch heads (i.e. under
<code>refs/heads/</code>), remote refs (i.e. under <code>refs/remotes/</code>),
note refs (i.e. under <code>refs/notes/</code>), and the symbolic ref <code>HEAD</code>.
If it is set to <code>always</code>, then a missing reflog is automatically
created for any ref under <code>refs/</code>.</p>
<div class="paragraph">
<p>This information can be used to determine what commit
was the tip of a branch "2 days ago".</p>
</div>
<div class="paragraph">
<p>This value is true by default in a repository that has
a working directory associated with it, and false by
default in a bare repository.</p>
</div>
</dd>
<dt class="hdlist1">core.repositoryFormatVersion</dt>
<dd>
<p>Internal variable identifying the repository format and layout
version. See <a href="gitrepository-layout.html">gitrepository-layout(5)</a>.</p>
</dd>
<dt class="hdlist1">core.sharedRepository</dt>
<dd>
<p>When <em>group</em> (or <em>true</em>), the repository is made shareable between
several users in a group (making sure all the files and objects are
group-writable). When <em>all</em> (or <em>world</em> or <em>everybody</em>), the
repository will be readable by all users, additionally to being
group-shareable. When <em>umask</em> (or <em>false</em>), Git will use permissions
reported by umask(2). When <em>0xxx</em>, where <em>0xxx</em> is an octal number,
files in the repository will have this mode value. <em>0xxx</em> will override
user&#8217;s umask value (whereas the other options will only override
requested parts of the user&#8217;s umask value). Examples: <em>0660</em> will make
the repo read/write-able for the owner and group, but inaccessible to
others (equivalent to <em>group</em> unless umask is e.g. <em>0022</em>). <em>0640</em> is a
repository that is group-readable but not group-writable.
See <a href="git-init.html">git-init(1)</a>. False by default.</p>
</dd>
<dt class="hdlist1">core.warnAmbiguousRefs</dt>
<dd>
<p>If true, Git will warn you if the ref name you passed it is ambiguous
and might match multiple refs in the repository. True by default.</p>
</dd>
<dt class="hdlist1">core.compression</dt>
<dd>
<p>An integer -1..9, indicating a default compression level.
-1 is the zlib default. 0 means no compression,
and 1..9 are various speed/size tradeoffs, 9 being slowest.
If set, this provides a default to other compression variables,
such as <code>core.looseCompression</code> and <code>pack.compression</code>.</p>
</dd>
<dt class="hdlist1">core.looseCompression</dt>
<dd>
<p>An integer -1..9, indicating the compression level for objects that
are not in a pack file. -1 is the zlib default. 0 means no
compression, and 1..9 are various speed/size tradeoffs, 9 being
slowest.  If not set,  defaults to core.compression.  If that is
not set,  defaults to 1 (best speed).</p>
</dd>
<dt class="hdlist1">core.packedGitWindowSize</dt>
<dd>
<p>Number of bytes of a pack file to map into memory in a
single mapping operation.  Larger window sizes may allow
your system to process a smaller number of large pack files
more quickly.  Smaller window sizes will negatively affect
performance due to increased calls to the operating system&#8217;s
memory manager, but may improve performance when accessing
a large number of large pack files.</p>
<div class="paragraph">
<p>Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
MiB on 32 bit platforms and 1 GiB on 64 bit platforms.  This should
be reasonable for all users/operating systems.  You probably do
not need to adjust this value.</p>
</div>
<div class="paragraph">
<p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p>
</div>
</dd>
<dt class="hdlist1">core.packedGitLimit</dt>
<dd>
<p>Maximum number of bytes to map simultaneously into memory
from pack files.  If Git needs to access more than this many
bytes at once to complete an operation it will unmap existing
regions to reclaim virtual address space within the process.</p>
<div class="paragraph">
<p>Default is 256 MiB on 32 bit platforms and 32 TiB (effectively
unlimited) on 64 bit platforms.
This should be reasonable for all users/operating systems, except on
the largest projects.  You probably do not need to adjust this value.</p>
</div>
<div class="paragraph">
<p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p>
</div>
</dd>
<dt class="hdlist1">core.deltaBaseCacheLimit</dt>
<dd>
<p>Maximum number of bytes per thread to reserve for caching base objects
that may be referenced by multiple deltified objects.  By storing the
entire decompressed base objects in a cache Git is able
to avoid unpacking and decompressing frequently used base
objects multiple times.</p>
<div class="paragraph">
<p>Default is 96 MiB on all platforms.  This should be reasonable
for all users/operating systems, except on the largest projects.
You probably do not need to adjust this value.</p>
</div>
<div class="paragraph">
<p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p>
</div>
</dd>
<dt class="hdlist1">core.bigFileThreshold</dt>
<dd>
<p>The size of files considered "big", which as discussed below
changes the behavior of numerous git commands, as well as how
such files are stored within the repository. The default is
512 MiB. Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are
supported.</p>
<div class="paragraph">
<p>Files above the configured limit will be:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Stored deflated in packfiles, without attempting delta compression.</p>
<div class="paragraph">
<p>The default limit is primarily set with this use-case in mind. With it,
most projects will have their source code and other text files delta
compressed, but not larger binary media files.</p>
</div>
<div class="paragraph">
<p>Storing large files without delta compression avoids excessive memory
usage, at the slight expense of increased disk usage.</p>
</div>
</li>
<li>
<p>Will be treated as if they were labeled "binary" (see
<a href="gitattributes.html">gitattributes(5)</a>). e.g. <a href="git-log.html">git-log(1)</a> and
<a href="git-diff.html">git-diff(1)</a> will not compute diffs for files above this limit.</p>
</li>
<li>
<p>Will generally be streamed when written, which avoids excessive
memory usage, at the cost of some fixed overhead. Commands that make
use of this include <a href="git-archive.html">git-archive(1)</a>,
<a href="git-fast-import.html">git-fast-import(1)</a>, <a href="git-index-pack.html">git-index-pack(1)</a>,
<a href="git-unpack-objects.html">git-unpack-objects(1)</a> and <a href="git-fsck.html">git-fsck(1)</a>.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">core.excludesFile</dt>
<dd>
<p>Specifies the pathname to the file that contains patterns to
describe paths that are not meant to be tracked, in addition
to .<code>gitignore</code> (per-directory) and .<code>git/info/exclude</code>.
Defaults to <code>$XDG_CONFIG_HOME/git/ignore</code>.
If <code>$XDG_CONFIG_HOME</code> is either not set or empty, <code>$HOME/.config/git/ignore</code>
is used instead. See <a href="gitignore.html">gitignore(5)</a>.</p>
</dd>
<dt class="hdlist1">core.askPass</dt>
<dd>
<p>Some commands (e.g. svn and http interfaces) that interactively
ask for a password can be told to use an external program given
via the value of this variable. Can be overridden by the <code>GIT_ASKPASS</code>
environment variable. If not set, fall back to the value of the
<code>SSH_ASKPASS</code> environment variable or, failing that, a simple password
prompt. The external program shall be given a suitable prompt as
command-line argument and write the password on its STDOUT.</p>
</dd>
<dt class="hdlist1">core.attributesFile</dt>
<dd>
<p>In addition to .<code>gitattributes</code> (per-directory) and
.<code>git/info/attributes</code>, Git looks into this file for attributes
(see <a href="gitattributes.html">gitattributes(5)</a>). Path expansions are made the same
way as for <code>core.excludesFile</code>. Its default value is
<code>$XDG_CONFIG_HOME/git/attributes</code>. If <code>$XDG_CONFIG_HOME</code> is either not
set or empty, <code>$HOME/.config/git/attributes</code> is used instead.</p>
</dd>
<dt class="hdlist1">core.hooksPath</dt>
<dd>
<p>By default Git will look for your hooks in the
<code>$GIT_DIR/hooks</code> directory. Set this to different path,
e.g. <code>/etc/git/hooks</code>, and Git will try to find your hooks in
that directory, e.g. <code>/etc/git/hooks/pre-receive</code> instead of
in <code>$GIT_DIR/hooks/pre-receive</code>.</p>
<div class="paragraph">
<p>The path can be either absolute or relative. A relative path is
taken as relative to the directory where the hooks are run (see
the "DESCRIPTION" section of <a href="githooks.html">githooks(5)</a>).</p>
</div>
<div class="paragraph">
<p>This configuration variable is useful in cases where you&#8217;d like to
centrally configure your Git hooks instead of configuring them on a
per-repository basis, or as a more flexible and centralized
alternative to having an <code>init.templateDir</code> where you&#8217;ve changed
default hooks.</p>
</div>
<div class="paragraph">
<p>You can also disable all hooks entirely by setting <code>core.hooksPath</code>
to <code>/dev/null</code>. This is usually only advisable for expert users and
on a per-command basis using configuration parameters of the form
<code>git</code> <code>-c</code> <code>core.hooksPath=/dev/null</code> ....</p>
</div>
</dd>
<dt class="hdlist1">core.editor</dt>
<dd>
<p>Commands such as <code>commit</code> and <code>tag</code> that let you edit
messages by launching an editor use the value of this
variable when it is set, and the environment variable
<code>GIT_EDITOR</code> is not set.  See <a href="git-var.html">git-var(1)</a>.</p>
</dd>
<dt class="hdlist1">core.commentChar</dt>
<dt class="hdlist1">core.commentString</dt>
<dd>
<p>Commands such as <code>commit</code> and <code>tag</code> that let you edit
messages consider a line that begins with this character
commented, and removes them after the editor returns
(default <em>#</em>).</p>
<div class="paragraph">
<p>If set to "auto", <code>git-commit</code> would select a character that is not
the beginning character of any line in existing commit messages.</p>
</div>
<div class="paragraph">
<p>Note that these two variables are aliases of each other, and in modern
versions of Git you are free to use a string (e.g., <code>//</code> or ⁑⁕⁑) with
<code>commentChar</code>. Versions of Git prior to v2.45.0 will ignore
<code>commentString</code> but will reject a value of <code>commentChar</code> that consists
of more than a single ASCII byte. If you plan to use your config with
older and newer versions of Git, you may want to specify both:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>[core]
# single character for older versions
commentChar = "#"
# string for newer versions (which will override commentChar
# because it comes later in the file)
commentString = "//"</pre>
</div>
</div>
</dd>
<dt class="hdlist1">core.filesRefLockTimeout</dt>
<dd>
<p>The length of time, in milliseconds, to retry when trying to
lock an individual reference. Value 0 means not to retry at
all; -1 means to try indefinitely. Default is 100 (i.e.,
retry for 100ms).</p>
</dd>
<dt class="hdlist1">core.packedRefsTimeout</dt>
<dd>
<p>The length of time, in milliseconds, to retry when trying to
lock the <code>packed-refs</code> file. Value 0 means not to retry at
all; -1 means to try indefinitely. Default is 1000 (i.e.,
retry for 1 second).</p>
</dd>
<dt class="hdlist1">core.pager</dt>
<dd>
<p>Text viewer for use by Git commands (e.g., <em>less</em>).  The value
is meant to be interpreted by the shell.  The order of preference
is the <code>$GIT_PAGER</code> environment variable, then <code>core.pager</code>
configuration, then <code>$PAGER</code>, and then the default chosen at
compile time (usually <em>less</em>).</p>
<div class="paragraph">
<p>When the <code>LESS</code> environment variable is unset, Git sets it to <code>FRX</code>
(if <code>LESS</code> environment variable is set, Git does not change it at
all).  If you want to selectively override Git&#8217;s default setting
for <code>LESS</code>, you can set <code>core.pager</code> to e.g. <code>less</code> <code>-S</code>.  This will
be passed to the shell by Git, which will translate the final
command to <code>LESS=FRX</code> <code>less</code> <code>-S</code>. The environment does not set the
<code>S</code> option but the command line does, instructing less to truncate
long lines. Similarly, setting <code>core.pager</code> to <code>less</code> <code>-+F</code> will
deactivate the <code>F</code> option specified by the environment from the
command-line, deactivating the "quit if one screen" behavior of
<code>less</code>.  One can specifically activate some flags for particular
commands: for example, setting <code>pager.blame</code> to <code>less</code> <code>-S</code> enables
line truncation only for <code>git</code> <code>blame</code>.</p>
</div>
<div class="paragraph">
<p>Likewise, when the <code>LV</code> environment variable is unset, Git sets it
to <code>-c</code>.  You can override this setting by exporting <code>LV</code> with
another value or setting <code>core.pager</code> to <code>lv</code> <code>+c</code>.</p>
</div>
</dd>
<dt class="hdlist1">core.whitespace</dt>
<dd>
<p>A comma separated list of common whitespace problems to
notice.  <em>git diff</em> will use <code>color.diff.whitespace</code> to
highlight them, and <em>git apply --whitespace=error</em> will
consider them as errors.  You can prefix <code>-</code> to disable
any of them (e.g. <code>-trailing-space</code>):</p>
<div class="ulist">
<ul>
<li>
<p><code>blank-at-eol</code> treats trailing whitespaces at the end of the line
as an error (enabled by default).</p>
</li>
<li>
<p><code>space-before-tab</code> treats a space character that appears immediately
before a tab character in the initial indent part of the line as an
error (enabled by default).</p>
</li>
<li>
<p><code>indent-with-non-tab</code> treats a line that is indented with space
characters instead of the equivalent tabs as an error (not enabled by
default).</p>
</li>
<li>
<p><code>tab-in-indent</code> treats a tab character in the initial indent part of
the line as an error (not enabled by default).</p>
</li>
<li>
<p><code>blank-at-eof</code> treats blank lines added at the end of file as an error
(enabled by default).</p>
</li>
<li>
<p><code>trailing-space</code> is a short-hand to cover both <code>blank-at-eol</code> and
<code>blank-at-eof</code>.</p>
</li>
<li>
<p><code>cr-at-eol</code> treats a carriage-return at the end of line as
part of the line terminator, i.e. with it, <code>trailing-space</code>
does not trigger if the character before such a carriage-return
is not a whitespace (not enabled by default).</p>
</li>
<li>
<p><code>tabwidth=</code><em>&lt;n&gt;</em> tells how many character positions a tab occupies; this
is relevant for <code>indent-with-non-tab</code> and when Git fixes <code>tab-in-indent</code>
errors. The default tab width is 8. Allowed values are 1 to 63.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">core.fsync</dt>
<dd>
<p>A comma-separated list of components of the repository that
should be hardened via the core.fsyncMethod when created or
modified.  You can disable hardening of any component by
prefixing it with a <em>-</em>.  Items that are not hardened may be
lost in the event of an unclean	system shutdown. Unless you
have special requirements, it is recommended that you leave
this option empty or pick one of <code>committed</code>, <code>added</code>,
or <code>all</code>.</p>
<div class="paragraph">
<p>When this configuration is encountered, the set of components starts with
the platform default value, disabled components are removed, and additional
components are added. <code>none</code> resets the state so that the platform default
is ignored.</p>
</div>
<div class="paragraph">
<p>The empty string resets the fsync configuration to the platform
default. The default on most platforms is equivalent to
<code>core.fsync=committed,-loose-object</code>, which has good performance,
but risks losing recent work in the event of an unclean system shutdown.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>none</code> clears the set of fsynced components.</p>
</li>
<li>
<p><code>loose-object</code> hardens objects added to the repo in loose-object form.</p>
</li>
<li>
<p><code>pack</code> hardens objects added to the repo in packfile form.</p>
</li>
<li>
<p><code>pack-metadata</code> hardens packfile bitmaps and indexes.</p>
</li>
<li>
<p><code>commit-graph</code> hardens the commit-graph file.</p>
</li>
<li>
<p><code>index</code> hardens the index when it is modified.</p>
</li>
<li>
<p><code>objects</code> is an aggregate option that is equivalent to
<code>loose-object,pack</code>.</p>
</li>
<li>
<p><code>reference</code> hardens references modified in the repo.</p>
</li>
<li>
<p><code>derived-metadata</code> is an aggregate option that is equivalent to
<code>pack-metadata,commit-graph</code>.</p>
</li>
<li>
<p><code>committed</code> is an aggregate option that is currently equivalent to
<code>objects</code>. This mode sacrifices some performance to ensure that work
that is committed to the repository with <code>git</code> <code>commit</code> or similar commands
is hardened.</p>
</li>
<li>
<p><code>added</code> is an aggregate option that is currently equivalent to
<code>committed,index</code>. This mode sacrifices additional performance to
ensure that the results of commands like <code>git</code> <code>add</code> and similar operations
are hardened.</p>
</li>
<li>
<p><code>all</code> is an aggregate option that syncs all individual components above.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">core.fsyncMethod</dt>
<dd>
<p>A value indicating the strategy Git will use to harden repository data
using fsync and related primitives.</p>
<div class="ulist">
<ul>
<li>
<p><code>fsync</code> uses the fsync() system call or platform equivalents.</p>
</li>
<li>
<p><code>writeout-only</code> issues pagecache writeback requests, but depending on the
filesystem and storage hardware, data added to the repository may not be
durable in the event of a system crash. This is the default mode on macOS.</p>
</li>
<li>
<p><code>batch</code> enables a mode that uses writeout-only flushes to stage multiple
updates in the disk writeback cache and then does a single full fsync of
a dummy file to trigger the disk cache flush at the end of the operation.</p>
<div class="paragraph">
<p>Currently <code>batch</code> mode only applies to loose-object files. Other repository
data is made durable as if <code>fsync</code> was specified. This mode is expected to
be as safe as <code>fsync</code> on macOS for repos stored on HFS+ or APFS filesystems
and on Windows for repos stored on NTFS or ReFS filesystems.</p>
</div>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">core.fsyncObjectFiles</dt>
<dd>
<p>This boolean will enable <em>fsync()</em> when writing object files.
This setting is deprecated. Use core.fsync instead.</p>
<div class="paragraph">
<p>This setting affects data added to the Git repository in loose-object
form. When set to true, Git will issue an fsync or similar system call
to flush caches so that loose-objects remain consistent in the face
of a unclean system shutdown.</p>
</div>
</dd>
<dt class="hdlist1">core.preloadIndex</dt>
<dd>
<p>Enable parallel index preload for operations like <em>git diff</em></p>
<div class="paragraph">
<p>This can speed up operations like <em>git diff</em> and <em>git status</em> especially
on filesystems like NFS that have weak caching semantics and thus
relatively high IO latencies.  When enabled, Git will do the
index comparison to the filesystem data in parallel, allowing
overlapping IO&#8217;s.  Defaults to true.</p>
</div>
</dd>
<dt class="hdlist1">core.unsetenvvars</dt>
<dd>
<p>Windows-only: comma-separated list of environment variables'
names that need to be unset before spawning any other process.
Defaults to <code>PERL5LIB</code> to account for the fact that Git for
Windows insists on using its own Perl interpreter.</p>
</dd>
<dt class="hdlist1">core.createObject</dt>
<dd>
<p>You can set this to <em>link</em>, in which case a hardlink followed by
a delete of the source are used to make sure that object creation
will not overwrite existing objects.</p>
<div class="paragraph">
<p>On some file system/operating system combinations, this is unreliable.
Set this config setting to <em>rename</em> there; however, this will remove the
check that makes sure that existing object files will not get overwritten.</p>
</div>
</dd>
<dt class="hdlist1">core.notesRef</dt>
<dd>
<p>When showing commit messages, also show notes which are stored in
the given ref.  The ref must be fully qualified.  If the given
ref does not exist, it is not an error but means that no
notes should be printed.</p>
<div class="paragraph">
<p>This setting defaults to "refs/notes/commits", and it can be overridden by
the <code>GIT_NOTES_REF</code> environment variable.  See <a href="git-notes.html">git-notes(1)</a>.</p>
</div>
</dd>
<dt class="hdlist1">core.commitGraph</dt>
<dd>
<p>If true, then git will read the commit-graph file (if it exists)
to parse the graph structure of commits. Defaults to true. See
<a href="git-commit-graph.html">git-commit-graph(1)</a> for more information.</p>
</dd>
<dt class="hdlist1">core.useReplaceRefs</dt>
<dd>
<p>If set to <code>false</code>, behave as if the <code>--no-replace-objects</code>
option was given on the command line. See <a href="git.html">git(1)</a> and
<a href="git-replace.html">git-replace(1)</a> for more information.</p>
</dd>
<dt class="hdlist1">core.multiPackIndex</dt>
<dd>
<p>Use the multi-pack-index file to track multiple packfiles using a
single index. See <a href="git-multi-pack-index.html">git-multi-pack-index(1)</a> for more
information. Defaults to true.</p>
</dd>
<dt class="hdlist1">core.sparseCheckout</dt>
<dd>
<p>Enable "sparse checkout" feature. See <a href="git-sparse-checkout.html">git-sparse-checkout(1)</a>
for more information.</p>
</dd>
<dt class="hdlist1">core.sparseCheckoutCone</dt>
<dd>
<p>Enables the "cone mode" of the sparse checkout feature. When the
sparse-checkout file contains a limited set of patterns, this
mode provides significant performance advantages. The "non-cone
mode" can be requested to allow specifying more flexible
patterns by setting this variable to <em>false</em>. See
<a href="git-sparse-checkout.html">git-sparse-checkout(1)</a> for more information.</p>
</dd>
<dt class="hdlist1">core.abbrev</dt>
<dd>
<p>Set the length object names are abbreviated to.  If
unspecified or set to "auto", an appropriate value is
computed based on the approximate number of packed objects
in your repository, which hopefully is enough for
abbreviated object names to stay unique for some time.
If set to "no", no abbreviation is made and the object names
are shown in their full length.
The minimum length is 4.</p>
</dd>
<dt class="hdlist1">core.maxTreeDepth</dt>
<dd>
<p>The maximum depth Git is willing to recurse while traversing a
tree (e.g., "a/b/cde/f" has a depth of 4). This is a fail-safe
to allow Git to abort cleanly, and should not generally need to
be adjusted. When Git is compiled with MSVC, the default is 512.
Otherwise, the default is 2048.</p>
</dd>
<dt class="hdlist1">credential.helper</dt>
<dd>
<p>Specify an external helper to be called when a username or
password credential is needed; the helper may consult external
storage to avoid prompting the user for the credentials. This is
normally the name of a credential helper with possible
arguments, but may also be an absolute path with arguments or, if
preceded by !, shell commands.</p>
<div class="paragraph">
<p>Note that multiple helpers may be defined. See <a href="gitcredentials.html">gitcredentials(7)</a>
for details and examples.</p>
</div>
</dd>
<dt class="hdlist1">credential.interactive</dt>
<dd>
<p>By default, Git and any configured credential helpers will ask for
user input when new credentials are required. Many of these helpers
will succeed based on stored credentials if those credentials are
still valid. To avoid the possibility of user interactivity from
Git, set <code>credential.interactive=false</code>. Some credential helpers
respect this option as well.</p>
</dd>
<dt class="hdlist1">credential.useHttpPath</dt>
<dd>
<p>When acquiring credentials, consider the "path" component of an http
or https URL to be important. Defaults to false. See
<a href="gitcredentials.html">gitcredentials(7)</a> for more information.</p>
</dd>
<dt class="hdlist1">credential.sanitizePrompt</dt>
<dd>
<p>By default, user names and hosts that are shown as part of the
password prompt are not allowed to contain control characters (they
will be URL-encoded by default). Configure this setting to <code>false</code> to
override that behavior.</p>
</dd>
<dt class="hdlist1">credential.protectProtocol</dt>
<dd>
<p>By default, Carriage Return characters are not allowed in the protocol
that is used when Git talks to a credential helper. This setting allows
users to override this default.</p>
</dd>
<dt class="hdlist1">credential.username</dt>
<dd>
<p>If no username is set for a network authentication, use this username
by default. See credential.&lt;context&gt;.* below, and
<a href="gitcredentials.html">gitcredentials(7)</a>.</p>
</dd>
<dt class="hdlist1">credential.&lt;url&gt;.*</dt>
<dd>
<p>Any of the credential.* options above can be applied selectively to
some credentials. For example, "credential.https://example.com.username"
would set the default username only for https connections to
example.com. See <a href="gitcredentials.html">gitcredentials(7)</a> for details on how URLs are
matched.</p>
</dd>
<dt class="hdlist1">credentialCache.ignoreSIGHUP</dt>
<dd>
<p>Tell git-credential-cache&#8212;&#8203;daemon to ignore SIGHUP, instead of quitting.</p>
</dd>
<dt class="hdlist1">credentialStore.lockTimeoutMS</dt>
<dd>
<p>The length of time, in milliseconds, for git-credential-store to retry
when trying to lock the credentials file. A value of 0 means not to retry at
all; -1 means to try indefinitely. Default is 1000 (i.e., retry for
1s).</p>
</dd>
<dt class="hdlist1"><code>diff.autoRefreshIndex</code></dt>
<dd>
<p>When using <code>git</code> <code>diff</code> to compare with work tree
files, do not consider stat-only changes as changed.
Instead, silently run <code>git</code> <code>update-index</code> <code>--refresh</code> to
update the cached stat information for paths whose
contents in the work tree match the contents in the
index.  This option defaults to <code>true</code>.  Note that this
affects only <code>git</code> <code>diff</code> Porcelain, and not lower level
<code>diff</code> commands such as <code>git</code> <code>diff-files</code>.</p>
</dd>
<dt class="hdlist1"><code>diff.dirstat</code></dt>
<dd>
<p>A comma separated list of <code>--dirstat</code> parameters specifying the
default behavior of the <code>--dirstat</code> option to <a href="git-diff.html">git-diff(1)</a>
and friends.
The defaults can be overridden on the command line
(using <code>--dirstat=</code><em>&lt;param&gt;</em><code>,..</code>.). The fallback defaults
(when not changed by <code>diff.dirstat</code>) are <code>changes,noncumulative,3</code>.
The following parameters are available:</p>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1"><code>changes</code></dt>
<dd>
<p>Compute the dirstat numbers by counting the lines that have been
removed from the source, or added to the destination. This ignores
the amount of pure code movements within a file.  In other words,
rearranging lines in a file is not counted as much as other changes.
This is the default behavior when no parameter is given.</p>
</dd>
<dt class="hdlist1"><code>lines</code></dt>
<dd>
<p>Compute the dirstat numbers by doing the regular line-based diff
analysis, and summing the removed/added line counts. (For binary
files, count 64-byte chunks instead, since binary files have no
natural concept of lines). This is a more expensive <code>--dirstat</code>
behavior than the <code>changes</code> behavior, but it does count rearranged
lines within a file as much as other changes. The resulting output
is consistent with what you get from the other <code>--*stat</code> options.</p>
</dd>
<dt class="hdlist1"><code>files</code></dt>
<dd>
<p>Compute the dirstat numbers by counting the number of files changed.
Each changed file counts equally in the dirstat analysis. This is
the computationally cheapest <code>--dirstat</code> behavior, since it does
not have to look at the file contents at all.</p>
</dd>
<dt class="hdlist1"><code>cumulative</code></dt>
<dd>
<p>Count changes in a child directory for the parent directory as well.
Note that when using <code>cumulative</code>, the sum of the percentages
reported may exceed 100%. The default (non-cumulative) behavior can
be specified with the <code>noncumulative</code> parameter.</p>
</dd>
<dt class="hdlist1"><em>&lt;limit&gt;</em></dt>
<dd>
<p>An integer parameter specifies a cut-off percent (3% by default).
Directories contributing less than this percentage of the changes
are not shown in the output.</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="paragraph">
<p>Example: The following will count changed files, while ignoring
directories with less than 10% of the total amount of changed files,
and accumulating child directory counts in the parent directories:
<code>files,10,cumulative</code>.</p>
</div>
</dd>
<dt class="hdlist1"><code>diff.statNameWidth</code></dt>
<dd>
<p>Limit the width of the filename part in <code>--stat</code> output. If set, applies
to all commands generating <code>--stat</code> output except <code>format-patch</code>.</p>
</dd>
<dt class="hdlist1"><code>diff.statGraphWidth</code></dt>
<dd>
<p>Limit the width of the graph part in <code>--stat</code> output. If set, applies
to all commands generating <code>--stat</code> output except <code>format-patch</code>.</p>
</dd>
<dt class="hdlist1"><code>diff.context</code></dt>
<dd>
<p>Generate diffs with <em>&lt;n&gt;</em> lines of context instead of the default
of 3. This value is overridden by the <code>-U</code> option.</p>
</dd>
<dt class="hdlist1"><code>diff.interHunkContext</code></dt>
<dd>
<p>Show the context between diff hunks, up to the specified number
of lines, thereby fusing the hunks that are close to each other.
This value serves as the default for the <code>--inter-hunk-context</code>
command line option.</p>
</dd>
<dt class="hdlist1"><code>diff.external</code></dt>
<dd>
<p>If this config variable is set, diff generation is not
performed using the internal diff machinery, but using the
given command.  Can be overridden with the <code>GIT_EXTERNAL_DIFF</code>
environment variable.  The command is called with parameters
as described under "git Diffs" in <a href="git.html">git(1)</a>.  Note: if
you want to use an external diff program only on a subset of
your files, you might want to use <a href="gitattributes.html">gitattributes(5)</a> instead.</p>
</dd>
<dt class="hdlist1"><code>diff.trustExitCode</code></dt>
<dd>
<p>If this boolean value is set to <code>true</code> then the
<code>diff.external</code> command is expected to return exit code
0 if it considers the input files to be equal or 1 if it
considers them to be different, like <code>diff</code>(1).
If it is set to <code>false</code>, which is the default, then the command
is expected to return exit code <code>0</code> regardless of equality.
Any other exit code causes Git to report a fatal error.</p>
</dd>
<dt class="hdlist1"><code>diff.ignoreSubmodules</code></dt>
<dd>
<p>Sets the default value of <code>--ignore-submodules</code>. Note that this
affects only <code>git</code> <code>diff</code> Porcelain, and not lower level <code>diff</code>
commands such as <code>git</code> <code>diff-files</code>. <code>git</code> <code>checkout</code>
and <code>git</code> <code>switch</code> also honor
this setting when reporting uncommitted changes. Setting it to
<code>all</code> disables the submodule summary normally shown by <code>git</code> <code>commit</code>
and <code>git</code> <code>status</code> when <code>status.submoduleSummary</code> is set unless it is
overridden by using the <code>--ignore-submodules</code> command-line option.
The <code>git</code> <code>submodule</code> commands are not affected by this setting.
By default this is set to untracked so that any untracked
submodules are ignored.</p>
</dd>
<dt class="hdlist1"><code>diff.mnemonicPrefix</code></dt>
<dd>
<p>If set, <code>git</code> <code>diff</code> uses a prefix pair that is different from the
standard <code>a/</code> and <code>b/</code> depending on what is being compared.  When
this configuration is in effect, reverse diff output also swaps
the order of the prefixes:</p>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>git</code> <code>diff</code></dt>
<dd>
<p>compares the (i)ndex and the (w)ork tree;</p>
</dd>
<dt class="hdlist1"><code>git</code> <code>diff</code> <code>HEAD</code></dt>
<dd>
<p>compares a (c)ommit and the (w)ork tree;</p>
</dd>
<dt class="hdlist1"><code>git</code> <code>diff</code> <code>--cached</code></dt>
<dd>
<p>compares a (c)ommit and the (i)ndex;</p>
</dd>
<dt class="hdlist1"><code>git</code> <code>diff</code> <code>HEAD:</code><em>&lt;file1&gt;</em> <em>&lt;file2&gt;</em></dt>
<dd>
<p>compares an (o)bject and a (w)ork tree entity;</p>
</dd>
<dt class="hdlist1"><code>git</code> <code>diff</code> <code>--no-index</code> <em>&lt;a&gt;</em> <em>&lt;b&gt;</em></dt>
<dd>
<p>compares two non-git things <em>&lt;a&gt;</em> and <em>&lt;b&gt;</em>.</p>
</dd>
</dl>
</div>
</dd>
<dt class="hdlist1"><code>diff.noPrefix</code></dt>
<dd>
<p>If set, <code>git</code> <code>diff</code> does not show any source or destination prefix.</p>
</dd>
<dt class="hdlist1"><code>diff.srcPrefix</code></dt>
<dd>
<p>If set, <code>git</code> <code>diff</code> uses this source prefix. Defaults to <code>a/</code>.</p>
</dd>
<dt class="hdlist1"><code>diff.dstPrefix</code></dt>
<dd>
<p>If set, <code>git</code> <code>diff</code> uses this destination prefix. Defaults to <code>b/</code>.</p>
</dd>
<dt class="hdlist1"><code>diff.relative</code></dt>
<dd>
<p>If set to <code>true</code>, <code>git</code> <code>diff</code> does not show changes outside of the directory
and show pathnames relative to the current directory.</p>
</dd>
<dt class="hdlist1"><code>diff.orderFile</code></dt>
<dd>
<p>File indicating how to order files within a diff.
See the <code>-O</code> option to <a href="git-diff.html">git-diff(1)</a> for details.
If <code>diff.orderFile</code> is a relative pathname, it is treated as
relative to the top of the working tree.</p>
</dd>
<dt class="hdlist1"><code>diff.renameLimit</code></dt>
<dd>
<p>The number of files to consider in the exhaustive portion of
copy/rename detection; equivalent to the <code>git</code> <code>diff</code> option
<code>-l</code>.  If not set, the default value is currently 1000.  This
setting has no effect if rename detection is turned off.</p>
</dd>
<dt class="hdlist1"><code>diff.renames</code></dt>
<dd>
<p>Whether and how Git detects renames.  If set to <code>false</code>,
rename detection is disabled. If set to <code>true</code>, basic rename
detection is enabled.  If set to <code>copies</code> or <code>copy</code>, Git will
detect copies, as well.  Defaults to <code>true</code>.  Note that this
affects only <code>git</code> <code>diff</code> Porcelain like <a href="git-diff.html">git-diff(1)</a> and
<a href="git-log.html">git-log(1)</a>, and not lower level commands such as
<a href="git-diff-files.html">git-diff-files(1)</a>.</p>
</dd>
<dt class="hdlist1"><code>diff.suppressBlankEmpty</code></dt>
<dd>
<p>A boolean to inhibit the standard behavior of printing a space
before each empty output line. Defaults to <code>false</code>.</p>
</dd>
<dt class="hdlist1"><code>diff.submodule</code></dt>
<dd>
<p>Specify the format in which differences in submodules are
shown.  The <code>short</code> format just shows the names of the commits
at the beginning and end of the range. The <code>log</code> format lists
the commits in the range like <a href="git-submodule.html">git-submodule(1)</a> <code>summary</code>
does. The <code>diff</code> format shows an inline diff of the changed
contents of the submodule. Defaults to <code>short</code>.</p>
</dd>
<dt class="hdlist1"><code>diff.wordRegex</code></dt>
<dd>
<p>A POSIX Extended Regular Expression used to determine what is a "word"
when performing word-by-word difference calculations.  Character
sequences that match the regular expression are "words", all other
characters are <strong>ignorable</strong> whitespace.</p>
</dd>
<dt class="hdlist1"><code>diff.</code><em>&lt;driver&gt;</em><code>.command</code></dt>
<dd>
<p>The custom diff driver command.  See <a href="gitattributes.html">gitattributes(5)</a>
for details.</p>
</dd>
<dt class="hdlist1"><code>diff.</code><em>&lt;driver&gt;</em><code>.trustExitCode</code></dt>
<dd>
<p>If this boolean value is set to <code>true</code> then the
<code>diff.</code><em>&lt;driver&gt;</em><code>.command</code> command is expected to return exit code
0 if it considers the input files to be equal or 1 if it
considers them to be different, like <code>diff</code>(1).
If it is set to <code>false</code>, which is the default, then the command
is expected to return exit code 0 regardless of equality.
Any other exit code causes Git to report a fatal error.</p>
</dd>
<dt class="hdlist1"><code>diff.</code><em>&lt;driver&gt;</em><code>.xfuncname</code></dt>
<dd>
<p>The regular expression that the diff driver should use to
recognize the hunk header.  A built-in pattern may also be used.
See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>
</dd>
<dt class="hdlist1"><code>diff.</code><em>&lt;driver&gt;</em><code>.binary</code></dt>
<dd>
<p>Set this option to <code>true</code> to make the diff driver treat files as
binary.  See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>
</dd>
<dt class="hdlist1"><code>diff.</code><em>&lt;driver&gt;</em><code>.textconv</code></dt>
<dd>
<p>The command that the diff driver should call to generate the
text-converted version of a file.  The result of the
conversion is used to generate a human-readable diff.  See
<a href="gitattributes.html">gitattributes(5)</a> for details.</p>
</dd>
<dt class="hdlist1"><code>diff.</code><em>&lt;driver&gt;</em><code>.wordRegex</code></dt>
<dd>
<p>The regular expression that the diff driver should use to
split words in a line.  See <a href="gitattributes.html">gitattributes(5)</a> for
details.</p>
</dd>
<dt class="hdlist1"><code>diff.</code><em>&lt;driver&gt;</em><code>.cachetextconv</code></dt>
<dd>
<p>Set this option to <code>true</code> to make the diff driver cache the text
conversion outputs.  See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>
</dd>
<dt class="hdlist1"><code>diff.indentHeuristic</code></dt>
<dd>
<p>Set this option to <code>false</code> to disable the default heuristics
that shift diff hunk boundaries to make patches easier to read.</p>
</dd>
<dt class="hdlist1"><code>diff.algorithm</code></dt>
<dd>
<p>Choose a diff algorithm.  The variants are as follows:</p>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1"><code>default</code></dt>
<dt class="hdlist1"><code>myers</code></dt>
<dd>
<p>The basic greedy diff algorithm. Currently, this is the default.</p>
</dd>
<dt class="hdlist1"><code>minimal</code></dt>
<dd>
<p>Spend extra time to make sure the smallest possible diff is
produced.</p>
</dd>
<dt class="hdlist1"><code>patience</code></dt>
<dd>
<p>Use "patience diff" algorithm when generating patches.</p>
</dd>
<dt class="hdlist1"><code>histogram</code></dt>
<dd>
<p>This algorithm extends the patience algorithm to "support
low-occurrence common elements".</p>
</dd>
</dl>
</div>
</div>
</div>
</dd>
<dt class="hdlist1"><code>diff.wsErrorHighlight</code></dt>
<dd>
<p>Highlight whitespace errors in the <code>context</code>, <code>old</code> or <code>new</code>
lines of the diff.  Multiple values are separated by comma,
<code>none</code> resets previous values, <code>default</code> reset the list to
<code>new</code> and <code>all</code> is a shorthand for <code>old,new,context</code>.  The
whitespace errors are colored with <code>color.diff.whitespace</code>.
The command line option <code>--ws-error-highlight=</code><em>&lt;kind&gt;</em>
overrides this setting.</p>
</dd>
<dt class="hdlist1"><code>diff.colorMoved</code></dt>
<dd>
<p>If set to either a valid <em>&lt;mode&gt;</em> or a <code>true</code> value, moved lines
in a diff are colored differently.
For details of valid modes see <code>--color-moved</code> in <a href="git-diff.html">git-diff(1)</a>.
If simply set to <code>true</code> the default color mode will be used. When
set to <code>false</code>, moved lines are not colored.</p>
</dd>
<dt class="hdlist1"><code>diff.colorMovedWS</code></dt>
<dd>
<p>When moved lines are colored using e.g. the <code>diff.colorMoved</code> setting,
this option controls the mode how spaces are treated.
For details of valid modes see <code>--color-moved-ws</code> in <a href="git-diff.html">git-diff(1)</a>.</p>
</dd>
<dt class="hdlist1">diff.tool</dt>
<dd>
<p>Controls which diff tool is used by <a href="git-difftool.html">git-difftool(1)</a>.
This variable overrides the value configured in <code>merge.tool</code>.
The list below shows the valid built-in values.
Any other value is treated as a custom diff tool and requires
that a corresponding difftool.&lt;tool&gt;.cmd variable is defined.</p>
</dd>
<dt class="hdlist1">diff.guitool</dt>
<dd>
<p>Controls which diff tool is used by <a href="git-difftool.html">git-difftool(1)</a> when
the -g/--gui flag is specified. This variable overrides the value
configured in <code>merge.guitool</code>. The list below shows the valid
built-in values. Any other value is treated as a custom diff tool
and requires that a corresponding difftool.&lt;guitool&gt;.cmd variable
is defined.</p>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>araxis</code></dt>
<dd>
<p>Use Araxis Merge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>bc</code></dt>
<dd>
<p>Use Beyond Compare (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>bc3</code></dt>
<dd>
<p>Use Beyond Compare (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>bc4</code></dt>
<dd>
<p>Use Beyond Compare (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>codecompare</code></dt>
<dd>
<p>Use Code Compare (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>deltawalker</code></dt>
<dd>
<p>Use DeltaWalker (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>diffmerge</code></dt>
<dd>
<p>Use DiffMerge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>diffuse</code></dt>
<dd>
<p>Use Diffuse (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>ecmerge</code></dt>
<dd>
<p>Use ECMerge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>emerge</code></dt>
<dd>
<p>Use Emacs' Emerge</p>
</dd>
<dt class="hdlist1"><code>examdiff</code></dt>
<dd>
<p>Use ExamDiff Pro (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>guiffy</code></dt>
<dd>
<p>Use Guiffy&#8217;s Diff Tool (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>gvimdiff</code></dt>
<dd>
<p>Use gVim (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>kdiff3</code></dt>
<dd>
<p>Use KDiff3 (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>kompare</code></dt>
<dd>
<p>Use Kompare (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>meld</code></dt>
<dd>
<p>Use Meld (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>nvimdiff</code></dt>
<dd>
<p>Use Neovim</p>
</dd>
<dt class="hdlist1"><code>opendiff</code></dt>
<dd>
<p>Use FileMerge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>p4merge</code></dt>
<dd>
<p>Use HelixCore P4Merge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>smerge</code></dt>
<dd>
<p>Use Sublime Merge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>tkdiff</code></dt>
<dd>
<p>Use TkDiff (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>vimdiff</code></dt>
<dd>
<p>Use Vim</p>
</dd>
<dt class="hdlist1"><code>vscode</code></dt>
<dd>
<p>Use Visual Studio Code (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>winmerge</code></dt>
<dd>
<p>Use WinMerge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>xxdiff</code></dt>
<dd>
<p>Use xxdiff (requires a graphical session)</p>
</dd>
</dl>
</div>
</dd>
<dt class="hdlist1">difftool.&lt;tool&gt;.cmd</dt>
<dd>
<p>Specify the command to invoke the specified diff tool.
The specified command is evaluated in shell with the following
variables available:  <em>LOCAL</em> is set to the name of the temporary
file containing the contents of the diff pre-image and <em>REMOTE</em>
is set to the name of the temporary file containing the contents
of the diff post-image.</p>
<div class="paragraph">
<p>See the <code>--tool=</code><em>&lt;tool&gt;</em> option in <a href="git-difftool.html">git-difftool(1)</a> for more details.</p>
</div>
</dd>
<dt class="hdlist1">difftool.&lt;tool&gt;.path</dt>
<dd>
<p>Override the path for the given tool.  This is useful in case
your tool is not in the PATH.</p>
</dd>
<dt class="hdlist1">difftool.trustExitCode</dt>
<dd>
<p>Exit difftool if the invoked diff tool returns a non-zero exit status.</p>
<div class="paragraph">
<p>See the <code>--trust-exit-code</code> option in <a href="git-difftool.html">git-difftool(1)</a> for more details.</p>
</div>
</dd>
<dt class="hdlist1">difftool.prompt</dt>
<dd>
<p>Prompt before each invocation of the diff tool.</p>
</dd>
<dt class="hdlist1">difftool.guiDefault</dt>
<dd>
<p>Set <code>true</code> to use the <code>diff.guitool</code> by default (equivalent to specifying
the <code>--gui</code> argument), or <code>auto</code> to select <code>diff.guitool</code> or <code>diff.tool</code>
depending on the presence of a <code>DISPLAY</code> environment variable value. The
default is <code>false</code>, where the <code>--gui</code> argument must be provided
explicitly for the <code>diff.guitool</code> to be used.</p>
</dd>
<dt class="hdlist1">extensions.*</dt>
<dd>
<p>Unless otherwise stated, is an error to specify an extension if
<code>core.repositoryFormatVersion</code> is not <code>1</code>. See
<a href="gitrepository-layout.html">gitrepository-layout(5)</a>.</p>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1">compatObjectFormat</dt>
<dd>
<p>Specify a compatibility hash algorithm to use.  The acceptable values
are <code>sha1</code> and <code>sha256</code>.  The value specified must be different from the
value of <code>extensions.objectFormat</code>.  This allows client level
interoperability between git repositories whose objectFormat matches
this compatObjectFormat.  In particular when fully implemented the
pushes and pulls from a repository in whose objectFormat matches
compatObjectFormat.  As well as being able to use oids encoded in
compatObjectFormat in addition to oids encoded with objectFormat to
locally specify objects.</p>
</dd>
<dt class="hdlist1">noop</dt>
<dd>
<p>This extension does not change git&#8217;s behavior at all. It is useful only
for testing format-1 compatibility.</p>
<div class="paragraph">
<p>For historical reasons, this extension is respected regardless of the
<code>core.repositoryFormatVersion</code> setting.</p>
</div>
</dd>
<dt class="hdlist1">noop-v1</dt>
<dd>
<p>This extension does not change git&#8217;s behavior at all. It is useful only
for testing format-1 compatibility.</p>
</dd>
<dt class="hdlist1">objectFormat</dt>
<dd>
<p>Specify the hash algorithm to use.  The acceptable values are <code>sha1</code> and
<code>sha256</code>.  If not specified, <code>sha1</code> is assumed.</p>
<div class="paragraph">
<p>Note that this setting should only be set by <a href="git-init.html">git-init(1)</a> or
<a href="git-clone.html">git-clone(1)</a>.  Trying to change it after initialization will not
work and will produce hard-to-diagnose issues.</p>
</div>
</dd>
<dt class="hdlist1">partialClone</dt>
<dd>
<p>When enabled, indicates that the repo was created with a partial clone
(or later performed a partial fetch) and that the remote may have
omitted sending certain unwanted objects.  Such a remote is called a
"promisor remote" and it promises that all such omitted objects can
be fetched from it in the future.</p>
<div class="paragraph">
<p>The value of this key is the name of the promisor remote.</p>
</div>
<div class="paragraph">
<p>For historical reasons, this extension is respected regardless of the
<code>core.repositoryFormatVersion</code> setting.</p>
</div>
</dd>
<dt class="hdlist1">preciousObjects</dt>
<dd>
<p>If enabled, indicates that objects in the repository MUST NOT be deleted
(e.g., by <code>git-prune</code> or <code>git</code> <code>repack</code> <code>-d</code>).</p>
<div class="paragraph">
<p>For historical reasons, this extension is respected regardless of the
<code>core.repositoryFormatVersion</code> setting.</p>
</div>
</dd>
<dt class="hdlist1">refStorage</dt>
<dd>
<p>Specify the ref storage format to use. The acceptable values are:</p>
<div class="ulist">
<ul>
<li>
<p><code>files</code> for loose files with packed-refs. This is the default.</p>
</li>
<li>
<p><code>reftable</code> for the reftable format. This format is experimental and its
internals are subject to change.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Note that this setting should only be set by <a href="git-init.html">git-init(1)</a> or
<a href="git-clone.html">git-clone(1)</a>. Trying to change it after initialization will not
work and will produce hard-to-diagnose issues.</p>
</div>
</dd>
<dt class="hdlist1">relativeWorktrees</dt>
<dd>
<p>If enabled, indicates at least one worktree has been linked with
relative paths. Automatically set if a worktree has been created or
repaired with either the <code>--relative-paths</code> option or with the
<code>worktree.useRelativePaths</code> config set to <code>true</code>.</p>
</dd>
<dt class="hdlist1">worktreeConfig</dt>
<dd>
<p>If enabled, then worktrees will load config settings from the
<code>$GIT_DIR/config.worktree</code> file in addition to the
<code>$GIT_COMMON_DIR/config</code> file. Note that <code>$GIT_COMMON_DIR</code> and
<code>$GIT_DIR</code> are the same for the main working tree, while other
working trees have <code>$GIT_DIR</code> equal to
<code>$GIT_COMMON_DIR/worktrees/</code><em>&lt;id&gt;</em><code>/</code>. The settings in the
<code>config.worktree</code> file will override settings from any other
config files.</p>
<div class="paragraph">
<p>When enabling this extension, you must be careful to move
certain values from the common config file to the main working tree&#8217;s
<code>config.worktree</code> file, if present:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>core.worktree</code> must be moved from <code>$GIT_COMMON_DIR/config</code> to
<code>$GIT_COMMON_DIR/config.worktree</code>.</p>
</li>
<li>
<p>If <code>core.bare</code> is true, then it must be moved from <code>$GIT_COMMON_DIR/config</code>
to <code>$GIT_COMMON_DIR/config.worktree</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>It may also be beneficial to adjust the locations of <code>core.sparseCheckout</code>
and <code>core.sparseCheckoutCone</code> depending on your desire for customizable
sparse-checkout settings for each worktree. By default, the <code>git</code>
<code>sparse-checkout</code> builtin enables this extension, assigns
these config values on a per-worktree basis, and uses the
<code>$GIT_DIR/info/sparse-checkout</code> file to specify the sparsity for each
worktree independently. See <a href="git-sparse-checkout.html">git-sparse-checkout(1)</a> for more
details.</p>
</div>
<div class="paragraph">
<p>+
For historical reasons, this extension is respected regardless of the
<code>core.repositoryFormatVersion</code> setting.</p>
</div>
</dd>
</dl>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">fastimport.unpackLimit</dt>
<dd>
<p>If the number of objects imported by <a href="git-fast-import.html">git-fast-import(1)</a>
is below this limit, then the objects will be unpacked into
loose object files.  However, if the number of imported objects
equals or exceeds this limit, then the pack will be stored as a
pack.  Storing the pack from a fast-import can make the import
operation complete faster, especially on slow filesystems.  If
not set, the value of <code>transfer.unpackLimit</code> is used instead.</p>
</dd>
<dt class="hdlist1">feature.*</dt>
<dd>
<p>The config settings that start with <code>feature.</code> modify the defaults of
a group of other config settings. These groups are created by the Git
developer community as recommended defaults and are subject to change.
In particular, new config options may be added with different defaults.</p>
</dd>
<dt class="hdlist1">feature.experimental</dt>
<dd>
<p>Enable config options that are new to Git, and are being considered for
future defaults. Config settings included here may be added or removed
with each release, including minor version updates. These settings may
have unintended interactions since they are so new. Please enable this
setting if you are interested in providing feedback on experimental
features. The new default values are:</p>
<div class="ulist">
<ul>
<li>
<p><code>fetch.negotiationAlgorithm=skipping</code> may improve fetch negotiation times by
skipping more commits at a time, reducing the number of round trips.</p>
</li>
<li>
<p><code>pack.useBitmapBoundaryTraversal=true</code> may improve bitmap traversal times by
walking fewer objects.</p>
</li>
<li>
<p><code>pack.allowPackReuse=multi</code> may improve the time it takes to create a pack by
reusing objects from multiple packs instead of just one.</p>
</li>
<li>
<p><code>pack.usePathWalk</code> may speed up packfile creation and make the packfiles be
significantly smaller in the presence of certain filename collisions with Git&#8217;s
default name-hash.</p>
</li>
<li>
<p><code>init.defaultRefFormat=reftable</code> causes newly initialized repositories to use
the reftable format for storing references. This new format solves issues with
case-insensitive filesystems, compresses better and performs significantly
better with many use cases. Refer to Documentation/technical/reftable.adoc for
more information on this new storage format.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">feature.manyFiles</dt>
<dd>
<p>Enable config options that optimize for repos with many files in the
working directory. With many files, commands such as <code>git</code> <code>status</code> and
<code>git</code> <code>checkout</code> may be slow and these new defaults improve performance:</p>
<div class="ulist">
<ul>
<li>
<p><code>index.skipHash=true</code> speeds up index writes by not computing a trailing
checksum. Note that this will cause Git versions earlier than 2.13.0 to
refuse to parse the index and Git versions earlier than 2.40.0 will report
a corrupted index during <code>git</code> <code>fsck</code>.</p>
</li>
<li>
<p><code>index.version=4</code> enables path-prefix compression in the index.</p>
</li>
<li>
<p><code>core.untrackedCache=true</code> enables the untracked cache. This setting assumes
that mtime is working on your machine.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">fetch.recurseSubmodules</dt>
<dd>
<p>This option controls whether <code>git</code> <code>fetch</code> (and the underlying fetch
in <code>git</code> <code>pull</code>) will recursively fetch into populated submodules.
This option can be set either to a boolean value or to <em>on-demand</em>.
Setting it to a boolean changes the behavior of fetch and pull to
recurse unconditionally into submodules when set to true or to not
recurse at all when set to false. When set to <em>on-demand</em>, fetch and
pull will only recurse into a populated submodule when its
superproject retrieves a commit that updates the submodule&#8217;s
reference.
Defaults to <em>on-demand</em>, or to the value of <em>submodule.recurse</em> if set.</p>
</dd>
<dt class="hdlist1">fetch.fsckObjects</dt>
<dd>
<p>If it is set to true, git-fetch-pack will check all fetched
objects. See <code>transfer.fsckObjects</code> for what&#8217;s
checked. Defaults to false. If not set, the value of
<code>transfer.fsckObjects</code> is used instead.</p>
</dd>
<dt class="hdlist1">fetch.fsck.&lt;msg-id&gt;</dt>
<dd>
<p>Acts like <code>fsck.</code><em>&lt;msg-id&gt;</em>, but is used by
<a href="git-fetch-pack.html">git-fetch-pack(1)</a> instead of <a href="git-fsck.html">git-fsck(1)</a>. See
the <code>fsck.</code><em>&lt;msg-id&gt;</em> documentation for details.</p>
</dd>
<dt class="hdlist1">fetch.fsck.skipList</dt>
<dd>
<p>Acts like <code>fsck.skipList</code>, but is used by
<a href="git-fetch-pack.html">git-fetch-pack(1)</a> instead of <a href="git-fsck.html">git-fsck(1)</a>. See
the <code>fsck.skipList</code> documentation for details.</p>
</dd>
<dt class="hdlist1">fetch.unpackLimit</dt>
<dd>
<p>If the number of objects fetched over the Git native
transfer is below this
limit, then the objects will be unpacked into loose object
files. However if the number of received objects equals or
exceeds this limit then the received pack will be stored as
a pack, after adding any missing delta bases.  Storing the
pack from a push can make the push operation complete faster,
especially on slow filesystems.  If not set, the value of
<code>transfer.unpackLimit</code> is used instead.</p>
</dd>
<dt class="hdlist1">fetch.prune</dt>
<dd>
<p>If true, fetch will automatically behave as if the <code>--prune</code>
option was given on the command line.  See also <code>remote.</code><em>&lt;name&gt;</em><code>.prune</code>
and the PRUNING section of <a href="git-fetch.html">git-fetch(1)</a>.</p>
</dd>
<dt class="hdlist1">fetch.pruneTags</dt>
<dd>
<p>If true, fetch will automatically behave as if the
<code>refs/tags/*:refs/tags/*</code> refspec was provided when pruning,
if not set already. This allows for setting both this option
and <code>fetch.prune</code> to maintain a 1=1 mapping to upstream
refs. See also <code>remote.</code><em>&lt;name&gt;</em><code>.pruneTags</code> and the PRUNING
section of <a href="git-fetch.html">git-fetch(1)</a>.</p>
</dd>
<dt class="hdlist1">fetch.all</dt>
<dd>
<p>If true, fetch will attempt to update all available remotes.
This behavior can be overridden by passing <code>--no-all</code> or by
explicitly specifying one or more remote(s) to fetch from.
Defaults to false.</p>
</dd>
<dt class="hdlist1">fetch.output</dt>
<dd>
<p>Control how ref update status is printed. Valid values are
<code>full</code> and <code>compact</code>. Default value is <code>full</code>. See the
OUTPUT section in <a href="git-fetch.html">git-fetch(1)</a> for details.</p>
</dd>
<dt class="hdlist1">fetch.negotiationAlgorithm</dt>
<dd>
<p>Control how information about the commits in the local repository
is sent when negotiating the contents of the packfile to be sent by
the server.  Set to "consecutive" to use an algorithm that walks
over consecutive commits checking each one.  Set to "skipping" to
use an algorithm that skips commits in an effort to converge
faster, but may result in a larger-than-necessary packfile; or set
to "noop" to not send any information at all, which will almost
certainly result in a larger-than-necessary packfile, but will skip
the negotiation step.  Set to "default" to override settings made
previously and use the default behaviour.  The default is normally
"consecutive", but if <code>feature.experimental</code> is true, then the
default is "skipping".  Unknown values will cause <em>git fetch</em> to
error out.</p>
<div class="paragraph">
<p>See also the <code>--negotiate-only</code> and <code>--negotiation-tip</code> options to
<a href="git-fetch.html">git-fetch(1)</a>.</p>
</div>
</dd>
<dt class="hdlist1">fetch.showForcedUpdates</dt>
<dd>
<p>Set to false to enable <code>--no-show-forced-updates</code> in
<a href="git-fetch.html">git-fetch(1)</a> and <a href="git-pull.html">git-pull(1)</a> commands.
Defaults to true.</p>
</dd>
<dt class="hdlist1">fetch.parallel</dt>
<dd>
<p>Specifies the maximal number of fetch operations to be run in parallel
at a time (submodules, or remotes when the <code>--multiple</code> option of
<a href="git-fetch.html">git-fetch(1)</a> is in effect).</p>
<div class="paragraph">
<p>A value of 0 will give some reasonable default. If unset, it defaults to 1.</p>
</div>
<div class="paragraph">
<p>For submodules, this setting can be overridden using the <code>submodule.fetchJobs</code>
config setting.</p>
</div>
</dd>
<dt class="hdlist1">fetch.writeCommitGraph</dt>
<dd>
<p>Set to true to write a commit-graph after every <code>git</code> <code>fetch</code> command
that downloads a pack-file from a remote. Using the <code>--split</code> option,
most executions will create a very small commit-graph file on top of
the existing commit-graph file(s). Occasionally, these files will
merge and the write may take longer. Having an updated commit-graph
file helps performance of many Git commands, including <code>git</code> <code>merge-base</code>,
<code>git</code> <code>push</code> <code>-f</code>, and <code>git</code> <code>log</code> <code>--graph</code>. Defaults to false.</p>
</dd>
<dt class="hdlist1">fetch.bundleURI</dt>
<dd>
<p>This value stores a URI for downloading Git object data from a bundle
URI before performing an incremental fetch from the origin Git server.
This is similar to how the <code>--bundle-uri</code> option behaves in
<a href="git-clone.html">git-clone(1)</a>. <code>git</code> <code>clone</code> <code>--bundle-uri</code> will set the
<code>fetch.bundleURI</code> value if the supplied bundle URI contains a bundle
list that is organized for incremental fetches.</p>
<div class="paragraph">
<p>If you modify this value and your repository has a <code>fetch.bundleCreationToken</code>
value, then remove that <code>fetch.bundleCreationToken</code> value before fetching from
the new bundle URI.</p>
</div>
</dd>
<dt class="hdlist1">fetch.bundleCreationToken</dt>
<dd>
<p>When using <code>fetch.bundleURI</code> to fetch incrementally from a bundle
list that uses the "creationToken" heuristic, this config value
stores the maximum <code>creationToken</code> value of the downloaded bundles.
This value is used to prevent downloading bundles in the future
if the advertised <code>creationToken</code> is not strictly larger than this
value.</p>
<div class="paragraph">
<p>The creation token values are chosen by the provider serving the specific
bundle URI. If you modify the URI at <code>fetch.bundleURI</code>, then be sure to
remove the value for the <code>fetch.bundleCreationToken</code> value before fetching.</p>
</div>
</dd>
<dt class="hdlist1">filter.&lt;driver&gt;.clean</dt>
<dd>
<p>The command which is used to convert the content of a worktree
file to a blob upon checkin.  See <a href="gitattributes.html">gitattributes(5)</a> for
details.</p>
</dd>
<dt class="hdlist1">filter.&lt;driver&gt;.smudge</dt>
<dd>
<p>The command which is used to convert the content of a blob
object to a worktree file upon checkout.  See
<a href="gitattributes.html">gitattributes(5)</a> for details.</p>
</dd>
<dt class="hdlist1">format.attach</dt>
<dd>
<p>Enable multipart/mixed attachments as the default for
<em>format-patch</em>.  The value can also be a double quoted string
which will enable attachments as the default and set the
value as the boundary.  See the --attach option in
<a href="git-format-patch.html">git-format-patch(1)</a>.  To countermand an earlier
value, set it to an empty string.</p>
</dd>
<dt class="hdlist1">format.from</dt>
<dd>
<p>Provides the default value for the <code>--from</code> option to format-patch.
Accepts a boolean value, or a name and email address.  If false,
format-patch defaults to <code>--no-from</code>, using commit authors directly in
the "From:" field of patch mails.  If true, format-patch defaults to
<code>--from</code>, using your committer identity in the "From:" field of patch
mails and including a "From:" field in the body of the patch mail if
different.  If set to a non-boolean value, format-patch uses that
value instead of your committer identity.  Defaults to false.</p>
</dd>
<dt class="hdlist1">format.forceInBodyFrom</dt>
<dd>
<p>Provides the default value for the <code>--</code>[<code>no-</code>]<code>force-in-body-from</code>
option to format-patch.  Defaults to false.</p>
</dd>
<dt class="hdlist1">format.numbered</dt>
<dd>
<p>A boolean which can enable or disable sequence numbers in patch
subjects.  It defaults to "auto" which enables it only if there
is more than one patch.  It can be enabled or disabled for all
messages by setting it to "true" or "false".  See --numbered
option in <a href="git-format-patch.html">git-format-patch(1)</a>.</p>
</dd>
<dt class="hdlist1">format.headers</dt>
<dd>
<p>Additional email headers to include in a patch to be submitted
by mail.  See <a href="git-format-patch.html">git-format-patch(1)</a>.</p>
</dd>
<dt class="hdlist1">format.to</dt>
<dt class="hdlist1">format.cc</dt>
<dd>
<p>Additional recipients to include in a patch to be submitted
by mail.  See the --to and --cc options in
<a href="git-format-patch.html">git-format-patch(1)</a>.</p>
</dd>
<dt class="hdlist1">format.subjectPrefix</dt>
<dd>
<p>The default for format-patch is to output files with the <em>[PATCH]</em>
subject prefix. Use this variable to change that prefix.</p>
</dd>
<dt class="hdlist1">format.coverFromDescription</dt>
<dd>
<p>The default mode for format-patch to determine which parts of
the cover letter will be populated using the branch&#8217;s
description. See the <code>--cover-from-description</code> option in
<a href="git-format-patch.html">git-format-patch(1)</a>.</p>
</dd>
<dt class="hdlist1">format.signature</dt>
<dd>
<p>The default for format-patch is to output a signature containing
the Git version number. Use this variable to change that default.
Set this variable to the empty string ("") to suppress
signature generation.</p>
</dd>
<dt class="hdlist1">format.signatureFile</dt>
<dd>
<p>Works just like format.signature except the contents of the
file specified by this variable will be used as the signature.</p>
</dd>
<dt class="hdlist1">format.suffix</dt>
<dd>
<p>The default for format-patch is to output files with the suffix
.<code>patch</code>. Use this variable to change that suffix (make sure to
include the dot if you want it).</p>
</dd>
<dt class="hdlist1">format.encodeEmailHeaders</dt>
<dd>
<p>Encode email headers that have non-ASCII characters with
"Q-encoding" (described in RFC 2047) for email transmission.
Defaults to true.</p>
</dd>
<dt class="hdlist1">format.pretty</dt>
<dd>
<p>The default pretty format for log/show/whatchanged command.
See <a href="git-log.html">git-log(1)</a>, <a href="git-show.html">git-show(1)</a>,
<a href="git-whatchanged.html">git-whatchanged(1)</a>.</p>
</dd>
<dt class="hdlist1">format.thread</dt>
<dd>
<p>The default threading style for <em>git format-patch</em>.  Can be
a boolean value, or <code>shallow</code> or <code>deep</code>.  <code>shallow</code> threading
makes every mail a reply to the head of the series,
where the head is chosen from the cover letter, the
<code>--in-reply-to</code>, and the first patch mail, in this order.
<code>deep</code> threading makes every mail a reply to the previous one.
A true boolean value is the same as <code>shallow</code>, and a false
value disables threading.</p>
</dd>
<dt class="hdlist1">format.signOff</dt>
<dd>
<p>A boolean value which lets you enable the <code>-s/--signoff</code> option of
format-patch by default. <strong>Note:</strong> Adding the <code>Signed-off-by</code> trailer to a
patch should be a conscious act and means that you certify you have
the rights to submit this work under the same open source license.
Please see the <em>SubmittingPatches</em> document for further discussion.</p>
</dd>
<dt class="hdlist1">format.coverLetter</dt>
<dd>
<p>A boolean that controls whether to generate a cover-letter when
format-patch is invoked, but in addition can be set to "auto", to
generate a cover-letter only when there&#8217;s more than one patch.
Default is false.</p>
</dd>
<dt class="hdlist1">format.outputDirectory</dt>
<dd>
<p>Set a custom directory to store the resulting files instead of the
current working directory. All directory components will be created.</p>
</dd>
<dt class="hdlist1">format.filenameMaxLength</dt>
<dd>
<p>The maximum length of the output filenames generated by the
<code>format-patch</code> command; defaults to 64.  Can be overridden
by the <code>--filename-max-length=</code><em>&lt;n&gt;</em> command line option.</p>
</dd>
<dt class="hdlist1">format.useAutoBase</dt>
<dd>
<p>A boolean value which lets you enable the <code>--base=auto</code> option of
format-patch by default. Can also be set to "whenAble" to allow
enabling <code>--base=auto</code> if a suitable base is available, but to skip
adding base info otherwise without the format dying.</p>
</dd>
<dt class="hdlist1">format.notes</dt>
<dd>
<p>Provides the default value for the <code>--notes</code> option to
format-patch. Accepts a boolean value, or a ref which specifies
where to get notes. If false, format-patch defaults to
<code>--no-notes</code>. If true, format-patch defaults to <code>--notes</code>. If
set to a non-boolean value, format-patch defaults to
<code>--notes=</code><em>&lt;ref&gt;</em>, where <code>ref</code> is the non-boolean value. Defaults
to false.</p>
<div class="paragraph">
<p>If one wishes to use the ref <code>refs/notes/true</code>, please use that literal
instead.</p>
</div>
<div class="paragraph">
<p>This configuration can be specified multiple times in order to allow
multiple notes refs to be included. In that case, it will behave
similarly to multiple <code>--</code>[<code>no-</code>]<code>notes</code>[<code>=</code>] options passed in. That is, a
value of <code>true</code> will show the default notes, a value of <em>&lt;ref&gt;</em> will
also show notes from that notes ref and a value of <code>false</code> will negate
previous configurations and not show notes.</p>
</div>
<div class="paragraph">
<p>For example,</p>
</div>
<div class="listingblock">
<div class="content">
<pre>[format]
        notes = true
        notes = foo
        notes = false
        notes = bar</pre>
</div>
</div>
<div class="paragraph">
<p>will only show notes from <code>refs/notes/bar</code>.</p>
</div>
</dd>
<dt class="hdlist1">format.mboxrd</dt>
<dd>
<p>A boolean value which enables the robust "mboxrd" format when
<code>--stdout</code> is in use to escape "^&gt;+From " lines.</p>
</dd>
<dt class="hdlist1">format.noprefix</dt>
<dd>
<p>If set, do not show any source or destination prefix in patches.
This is equivalent to the <code>diff.noprefix</code> option used by <code>git</code>
<code>diff</code> (but which is not respected by <code>format-patch</code>). Note that
by setting this, the receiver of any patches you generate will
have to apply them using the <code>-p0</code> option.</p>
</dd>
<dt class="hdlist1">fsck.&lt;msg-id&gt;</dt>
<dd>
<p>During fsck git may find issues with legacy data which
wouldn&#8217;t be generated by current versions of git, and which
wouldn&#8217;t be sent over the wire if <code>transfer.fsckObjects</code> was
set. This feature is intended to support working with legacy
repositories containing such data.</p>
<div class="paragraph">
<p>Setting <code>fsck.</code><em>&lt;msg-id&gt;</em> will be picked up by <a href="git-fsck.html">git-fsck(1)</a>, but
to accept pushes of such data set <code>receive.fsck.</code><em>&lt;msg-id&gt;</em> instead, or
to clone or fetch it set <code>fetch.fsck.</code><em>&lt;msg-id&gt;</em>.</p>
</div>
<div class="paragraph">
<p>The rest of the documentation discusses <code>fsck.*</code> for brevity, but the
same applies for the corresponding <code>receive.fsck.*</code> and
<code>fetch.fsck.*</code>. variables.</p>
</div>
<div class="paragraph">
<p>Unlike variables like <code>color.ui</code> and <code>core.editor</code>, the
<code>receive.fsck.</code><em>&lt;msg-id&gt;</em> and <code>fetch.fsck.</code><em>&lt;msg-id&gt;</em> variables will not
fall back on the <code>fsck.</code><em>&lt;msg-id&gt;</em> configuration if they aren&#8217;t set. To
uniformly configure the same fsck settings in different circumstances,
all three of them must be set to the same values.</p>
</div>
<div class="paragraph">
<p>When <code>fsck.</code><em>&lt;msg-id&gt;</em> is set, errors can be switched to warnings and
vice versa by configuring the <code>fsck.</code><em>&lt;msg-id&gt;</em> setting where the
<em>&lt;msg-id&gt;</em> is the fsck message ID and the value is one of <code>error</code>,
<code>warn</code> or <code>ignore</code>. For convenience, fsck prefixes the error/warning
with the message ID, e.g. "missingEmail: invalid author/committer
line - missing email" means that setting <code>fsck.missingEmail</code> <code>=</code> <code>ignore</code>
will hide that issue.</p>
</div>
<div class="paragraph">
<p>In general, it is better to enumerate existing objects with problems
with <code>fsck.skipList</code>, instead of listing the kind of breakages these
problematic objects share to be ignored, as doing the latter will
allow new instances of the same breakages go unnoticed.</p>
</div>
<div class="paragraph">
<p>Setting an unknown <code>fsck.</code><em>&lt;msg-id&gt;</em> value will cause fsck to die, but
doing the same for <code>receive.fsck.</code><em>&lt;msg-id&gt;</em> and <code>fetch.fsck.</code><em>&lt;msg-id&gt;</em>
will only cause git to warn.</p>
</div>
<div class="paragraph">
<p>See the <code>Fsck</code> <code>Messages</code> section of <a href="git-fsck.html">git-fsck(1)</a> for supported
values of <em>&lt;msg-id&gt;</em>.</p>
</div>
</dd>
<dt class="hdlist1">fsck.skipList</dt>
<dd>
<p>The path to a list of object names (i.e. one unabbreviated SHA-1 per
line) that are known to be broken in a non-fatal way and should
be ignored. On versions of Git 2.20 and later, comments (<em>#</em>), empty
lines, and any leading and trailing whitespace are ignored. Everything
but a SHA-1 per line will error out on older versions.</p>
<div class="paragraph">
<p>This feature is useful when an established project should be accepted
despite early commits containing errors that can be safely ignored,
such as invalid committer email addresses.  Note: corrupt objects
cannot be skipped with this setting.</p>
</div>
<div class="paragraph">
<p>Like <code>fsck.</code><em>&lt;msg-id&gt;</em> this variable has corresponding
<code>receive.fsck.skipList</code> and <code>fetch.fsck.skipList</code> variants.</p>
</div>
<div class="paragraph">
<p>Unlike variables like <code>color.ui</code> and <code>core.editor</code> the
<code>receive.fsck.skipList</code> and <code>fetch.fsck.skipList</code> variables will not
fall back on the <code>fsck.skipList</code> configuration if they aren&#8217;t set. To
uniformly configure the same fsck settings in different circumstances,
all three of them must be set to the same values.</p>
</div>
<div class="paragraph">
<p>Older versions of Git (before 2.20) documented that the object names
list should be sorted. This was never a requirement; the object names
could appear in any order, but when reading the list we tracked whether
the list was sorted for the purposes of an internal binary search
implementation, which could save itself some work with an already sorted
list. Unless you had a humongous list there was no reason to go out of
your way to pre-sort the list. After Git version 2.20 a hash implementation
is used instead, so there&#8217;s now no reason to pre-sort the list.</p>
</div>
</dd>
<dt class="hdlist1">fsmonitor.allowRemote</dt>
<dd>
<p>By default, the fsmonitor daemon refuses to work with network-mounted
repositories. Setting <code>fsmonitor.allowRemote</code> to <code>true</code> overrides this
behavior.  Only respected when <code>core.fsmonitor</code> is set to <code>true</code>.</p>
</dd>
<dt class="hdlist1">fsmonitor.socketDir</dt>
<dd>
<p>This Mac OS-specific option, if set, specifies the directory in
which to create the Unix domain socket used for communication
between the fsmonitor daemon and various Git commands. The directory must
reside on a native Mac OS filesystem.  Only respected when <code>core.fsmonitor</code>
is set to <code>true</code>.</p>
</dd>
<dt class="hdlist1">gc.aggressiveDepth</dt>
<dd>
<p>The depth parameter used in the delta compression
algorithm used by <em>git gc --aggressive</em>.  This defaults
to 50, which is the default for the <code>--depth</code> option when
<code>--aggressive</code> isn&#8217;t in use.</p>
<div class="paragraph">
<p>See the documentation for the <code>--depth</code> option in
<a href="git-repack.html">git-repack(1)</a> for more details.</p>
</div>
</dd>
<dt class="hdlist1">gc.aggressiveWindow</dt>
<dd>
<p>The window size parameter used in the delta compression
algorithm used by <em>git gc --aggressive</em>.  This defaults
to 250, which is a much more aggressive window size than
the default <code>--window</code> of 10.</p>
<div class="paragraph">
<p>See the documentation for the <code>--window</code> option in
<a href="git-repack.html">git-repack(1)</a> for more details.</p>
</div>
</dd>
<dt class="hdlist1">gc.auto</dt>
<dd>
<p>When there are approximately more than this many loose
objects in the repository, <code>git</code> <code>gc</code> <code>--auto</code> will pack them.
Some Porcelain commands use this command to perform a
light-weight garbage collection from time to time.  The
default value is 6700.</p>
<div class="paragraph">
<p>Setting this to 0 disables not only automatic packing based on the
number of loose objects, but also any other heuristic <code>git</code> <code>gc</code> <code>--auto</code> will
otherwise use to determine if there&#8217;s work to do, such as
<code>gc.autoPackLimit</code>.</p>
</div>
</dd>
<dt class="hdlist1">gc.autoPackLimit</dt>
<dd>
<p>When there are more than this many packs that are not
marked with <code>*.keep</code> file in the repository, <code>git</code> <code>gc</code>
<code>--auto</code> consolidates them into one larger pack.  The
default value is 50.  Setting this to 0 disables it.
Setting <code>gc.auto</code> to 0 will also disable this.</p>
<div class="paragraph">
<p>See the <code>gc.bigPackThreshold</code> configuration variable below. When in
use, it&#8217;ll affect how the auto pack limit works.</p>
</div>
</dd>
<dt class="hdlist1">gc.autoDetach</dt>
<dd>
<p>Make <code>git</code> <code>gc</code> <code>--auto</code> return immediately and run in the background
if the system supports it. Default is true. This config variable acts
as a fallback in case <code>maintenance.autoDetach</code> is not set.</p>
</dd>
<dt class="hdlist1">gc.bigPackThreshold</dt>
<dd>
<p>If non-zero, all non-cruft packs larger than this limit are kept
when <code>git</code> <code>gc</code> is run. This is very similar to
<code>--keep-largest-pack</code> except that all non-cruft packs that meet
the threshold are kept, not just the largest pack. Defaults to
zero. Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p>
<div class="paragraph">
<p>Note that if the number of kept packs is more than gc.autoPackLimit,
this configuration variable is ignored, all packs except the base pack
will be repacked. After this the number of packs should go below
gc.autoPackLimit and gc.bigPackThreshold should be respected again.</p>
</div>
<div class="paragraph">
<p>If the amount of memory estimated for <code>git</code> <code>repack</code> to run smoothly is
not available and <code>gc.bigPackThreshold</code> is not set, the largest pack
will also be excluded (this is the equivalent of running <code>git</code> <code>gc</code> with
<code>--keep-largest-pack</code>).</p>
</div>
</dd>
<dt class="hdlist1">gc.writeCommitGraph</dt>
<dd>
<p>If true, then gc will rewrite the commit-graph file when
<a href="git-gc.html">git-gc(1)</a> is run. When using <code>git</code> <code>gc</code> <code>--auto</code>
the commit-graph will be updated if housekeeping is
required. Default is true. See <a href="git-commit-graph.html">git-commit-graph(1)</a>
for details.</p>
</dd>
<dt class="hdlist1">gc.logExpiry</dt>
<dd>
<p>If the file gc.log exists, then <code>git</code> <code>gc</code> <code>--auto</code> will print
its content and exit with status zero instead of running
unless that file is more than <em>gc.logExpiry</em> old.  Default is
"1.day".  See <code>gc.pruneExpire</code> for more ways to specify its
value.</p>
</dd>
<dt class="hdlist1">gc.packRefs</dt>
<dd>
<p>Running <code>git</code> <code>pack-refs</code> in a repository renders it
unclonable by Git versions prior to 1.5.1.2 over dumb
transports such as HTTP.  This variable determines whether
<em>git gc</em> runs <code>git</code> <code>pack-refs</code>. This can be set to <code>notbare</code>
to enable it within all non-bare repos or it can be set to a
boolean value.  The default is <code>true</code>.</p>
</dd>
<dt class="hdlist1">gc.cruftPacks</dt>
<dd>
<p>Store unreachable objects in a cruft pack (see
<a href="git-repack.html">git-repack(1)</a>) instead of as loose objects. The default
is <code>true</code>.</p>
</dd>
<dt class="hdlist1">gc.maxCruftSize</dt>
<dd>
<p>Limit the size of new cruft packs when repacking. When
specified in addition to <code>--max-cruft-size</code>, the command line
option takes priority. See the <code>--max-cruft-size</code> option of
<a href="git-repack.html">git-repack(1)</a>.</p>
</dd>
<dt class="hdlist1">gc.pruneExpire</dt>
<dd>
<p>When <em>git gc</em> is run, it will call <em>prune --expire 2.weeks.ago</em>
(and <em>repack --cruft --cruft-expiration 2.weeks.ago</em> if using
cruft packs via <code>gc.cruftPacks</code> or <code>--cruft</code>).  Override the
grace period with this config variable.  The value "now" may be
used to disable this grace period and always prune unreachable
objects immediately, or "never" may be used to suppress pruning.
This feature helps prevent corruption when <em>git gc</em> runs
concurrently with another process writing to the repository; see
the "NOTES" section of <a href="git-gc.html">git-gc(1)</a>.</p>
</dd>
<dt class="hdlist1">gc.worktreePruneExpire</dt>
<dd>
<p>When <em>git gc</em> is run, it calls
<em>git worktree prune --expire 3.months.ago</em>.
This config variable can be used to set a different grace
period. The value "now" may be used to disable the grace
period and prune <code>$GIT_DIR/worktrees</code> immediately, or "never"
may be used to suppress pruning.</p>
</dd>
<dt class="hdlist1">gc.reflogExpire</dt>
<dt class="hdlist1">gc.&lt;pattern&gt;.reflogExpire</dt>
<dd>
<p><em>git reflog expire</em> removes reflog entries older than
this time; defaults to 90 days. The value "now" expires all
entries immediately, and "never" suppresses expiration
altogether. With "&lt;pattern&gt;" (e.g.
"refs/stash") in the middle the setting applies only to
the refs that match the &lt;pattern&gt;.</p>
</dd>
<dt class="hdlist1">gc.reflogExpireUnreachable</dt>
<dt class="hdlist1">gc.&lt;pattern&gt;.reflogExpireUnreachable</dt>
<dd>
<p><em>git reflog expire</em> removes reflog entries older than
this time and are not reachable from the current tip;
defaults to 30 days. The value "now" expires all entries
immediately, and "never" suppresses expiration altogether.
With "&lt;pattern&gt;" (e.g. "refs/stash")
in the middle, the setting applies only to the refs that
match the &lt;pattern&gt;.</p>
<div class="paragraph">
<p>These types of entries are generally created as a result of using <code>git</code>
<code>commit</code> <code>--amend</code> or <code>git</code> <code>rebase</code> and are the commits prior to the amend
or rebase occurring.  Since these changes are not part of the current
project most users will want to expire them sooner, which is why the
default is more aggressive than <code>gc.reflogExpire</code>.</p>
</div>
</dd>
<dt class="hdlist1">gc.recentObjectsHook</dt>
<dd>
<p>When considering whether or not to remove an object (either when
generating a cruft pack or storing unreachable objects as
loose), use the shell to execute the specified command(s).
Interpret their output as object IDs which Git will consider as
"recent", regardless of their age. By treating their mtimes as
"now", any objects (and their descendants) mentioned in the
output will be kept regardless of their true age.</p>
<div class="paragraph">
<p>Output must contain exactly one hex object ID per line, and nothing
else. Objects which cannot be found in the repository are ignored.
Multiple hooks are supported, but all must exit successfully, else the
operation (either generating a cruft pack or unpacking unreachable
objects) will be halted.</p>
</div>
</dd>
<dt class="hdlist1">gc.repackFilter</dt>
<dd>
<p>When repacking, use the specified filter to move certain
objects into a separate packfile.  See the
<code>--filter=</code><em>&lt;filter-spec&gt;</em> option of <a href="git-repack.html">git-repack(1)</a>.</p>
</dd>
<dt class="hdlist1">gc.repackFilterTo</dt>
<dd>
<p>When repacking and using a filter, see <code>gc.repackFilter</code>, the
specified location will be used to create the packfile
containing the filtered out objects. <strong>WARNING:</strong> The
specified location should be accessible, using for example the
Git alternates mechanism, otherwise the repo could be
considered corrupt by Git as it might not be able to access the
objects in that packfile. See the <code>--filter-to=</code><em>&lt;dir&gt;</em> option
of <a href="git-repack.html">git-repack(1)</a> and the <code>objects/info/alternates</code>
section of <a href="gitrepository-layout.html">gitrepository-layout(5)</a>.</p>
</dd>
<dt class="hdlist1">gc.rerereResolved</dt>
<dd>
<p>Records of conflicted merge you resolved earlier are
kept for this many days when <em>git rerere gc</em> is run.
You can also use more human-readable "1.month.ago", etc.
The default is 60 days.  See <a href="git-rerere.html">git-rerere(1)</a>.</p>
</dd>
<dt class="hdlist1">gc.rerereUnresolved</dt>
<dd>
<p>Records of conflicted merge you have not resolved are
kept for this many days when <em>git rerere gc</em> is run.
You can also use more human-readable "1.month.ago", etc.
The default is 15 days.  See <a href="git-rerere.html">git-rerere(1)</a>.</p>
</dd>
<dt class="hdlist1">gitcvs.commitMsgAnnotation</dt>
<dd>
<p>Append this string to each commit message. Set to empty string
to disable this feature. Defaults to "via git-CVS emulator".</p>
</dd>
<dt class="hdlist1">gitcvs.enabled</dt>
<dd>
<p>Whether the CVS server interface is enabled for this repository.
See <a href="git-cvsserver.html">git-cvsserver(1)</a>.</p>
</dd>
<dt class="hdlist1">gitcvs.logFile</dt>
<dd>
<p>Path to a log file where the CVS server interface well&#8230;&#8203; logs
various stuff. See <a href="git-cvsserver.html">git-cvsserver(1)</a>.</p>
</dd>
<dt class="hdlist1">gitcvs.usecrlfattr</dt>
<dd>
<p>If true, the server will look up the end-of-line conversion
attributes for files to determine the <code>-k</code> modes to use. If
the attributes force Git to treat a file as text,
the <code>-k</code> mode will be left blank so CVS clients will
treat it as text. If they suppress text conversion, the file
will be set with <em>-kb</em> mode, which suppresses any newline munging
the client might otherwise do. If the attributes do not allow
the file type to be determined, then <code>gitcvs.allBinary</code> is
used. See <a href="gitattributes.html">gitattributes(5)</a>.</p>
</dd>
<dt class="hdlist1">gitcvs.allBinary</dt>
<dd>
<p>This is used if <code>gitcvs.usecrlfattr</code> does not resolve
the correct <em>-kb</em> mode to use. If true, all
unresolved files are sent to the client in
mode <em>-kb</em>. This causes the client to treat them
as binary files, which suppresses any newline munging it
otherwise might do. Alternatively, if it is set to "guess",
then the contents of the file are examined to decide if
it is binary, similar to <code>core.autocrlf</code>.</p>
</dd>
<dt class="hdlist1">gitcvs.dbName</dt>
<dd>
<p>Database used by git-cvsserver to cache revision information
derived from the Git repository. The exact meaning depends on the
used database driver, for SQLite (which is the default driver) this
is a filename. Supports variable substitution (see
<a href="git-cvsserver.html">git-cvsserver(1)</a> for details). May not contain semicolons (;).
Default: <em>%Ggitcvs.%m.sqlite</em></p>
</dd>
<dt class="hdlist1">gitcvs.dbDriver</dt>
<dd>
<p>Used Perl DBI driver. You can specify any available driver
for this here, but it might not work. git-cvsserver is tested
with <em>DBD::SQLite</em>, reported to work with <em>DBD::Pg</em>, and
reported <strong>not</strong> to work with <em>DBD::mysql</em>. Experimental feature.
May not contain double colons (<code>:</code>). Default: <em>SQLite</em>.
See <a href="git-cvsserver.html">git-cvsserver(1)</a>.</p>
</dd>
<dt class="hdlist1">gitcvs.dbUser</dt>
<dt class="hdlist1">gitcvs.dbPass</dt>
<dd>
<p>Database user and password. Only useful if setting <code>gitcvs.dbDriver</code>,
since SQLite has no concept of database users and/or passwords.
<em>gitcvs.dbUser</em> supports variable substitution (see
<a href="git-cvsserver.html">git-cvsserver(1)</a> for details).</p>
</dd>
<dt class="hdlist1">gitcvs.dbTableNamePrefix</dt>
<dd>
<p>Database table name prefix.  Prepended to the names of any
database tables used, allowing a single database to be used
for several repositories.  Supports variable substitution (see
<a href="git-cvsserver.html">git-cvsserver(1)</a> for details).  Any non-alphabetic
characters will be replaced with underscores.</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>All gitcvs variables except for <code>gitcvs.usecrlfattr</code> and
<code>gitcvs.allBinary</code> can also be specified as
<em>gitcvs.&lt;access_method&gt;.&lt;varname&gt;</em> (where <em>access_method</em>
is one of "ext" and "pserver") to make them apply only for the given
access method.</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">gitweb.category</dt>
<dt class="hdlist1">gitweb.description</dt>
<dt class="hdlist1">gitweb.owner</dt>
<dt class="hdlist1">gitweb.url</dt>
<dd>
<p>See <a href="gitweb.html">gitweb(1)</a> for description.</p>
</dd>
<dt class="hdlist1">gitweb.avatar</dt>
<dt class="hdlist1">gitweb.blame</dt>
<dt class="hdlist1">gitweb.grep</dt>
<dt class="hdlist1">gitweb.highlight</dt>
<dt class="hdlist1">gitweb.patches</dt>
<dt class="hdlist1">gitweb.pickaxe</dt>
<dt class="hdlist1">gitweb.remote_heads</dt>
<dt class="hdlist1">gitweb.showSizes</dt>
<dt class="hdlist1">gitweb.snapshot</dt>
<dd>
<p>See <a href="gitweb.conf.html">gitweb.conf(5)</a> for description.</p>
</dd>
<dt class="hdlist1">gpg.program</dt>
<dd>
<p>Pathname of the program to use instead of "<code>gpg</code>" when
making or verifying a PGP signature. The program must support the
same command-line interface as GPG, namely, to verify a detached
signature, "<code>gpg</code> <code>--verify</code> <code>$signature</code> <code>-</code> &lt;$file" is run, and the
program is expected to signal a good signature by exiting with
code 0.  To generate an ASCII-armored detached signature, the
standard input of "<code>gpg</code> <code>-bsau</code> <code>$key</code>" is fed with the contents to be
signed, and the program is expected to send the result to its
standard output.</p>
</dd>
<dt class="hdlist1">gpg.format</dt>
<dd>
<p>Specifies which key format to use when signing with <code>--gpg-sign</code>.
Default is "openpgp". Other possible values are "x509", "ssh".</p>
<div class="paragraph">
<p>See <a href="gitformat-signature.html">gitformat-signature(5)</a> for the signature format, which differs
based on the selected <code>gpg.format</code>.</p>
</div>
</dd>
<dt class="hdlist1">gpg.&lt;format&gt;.program</dt>
<dd>
<p>Use this to customize the program used for the signing format you
chose. (see <code>gpg.program</code> and <code>gpg.format</code>) <code>gpg.program</code> can still
be used as a legacy synonym for <code>gpg.openpgp.program</code>. The default
value for <code>gpg.x509.program</code> is "gpgsm" and <code>gpg.ssh.program</code> is "ssh-keygen".</p>
</dd>
<dt class="hdlist1">gpg.minTrustLevel</dt>
<dd>
<p>Specifies a minimum trust level for signature verification.  If
this option is unset, then signature verification for merge
operations requires a key with at least <code>marginal</code> trust.  Other
operations that perform signature verification require a key
with at least <code>undefined</code> trust.  Setting this option overrides
the required trust-level for all operations.  Supported values,
in increasing order of significance:</p>
<div class="ulist">
<ul>
<li>
<p><code>undefined</code></p>
</li>
<li>
<p><code>never</code></p>
</li>
<li>
<p><code>marginal</code></p>
</li>
<li>
<p><code>fully</code></p>
</li>
<li>
<p><code>ultimate</code></p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">gpg.ssh.defaultKeyCommand</dt>
<dd>
<p>This command will be run when user.signingkey is not set and a ssh
signature is requested. On successful exit a valid ssh public key
prefixed with <code>key::</code> is expected in the first line of its output.
This allows for a script doing a dynamic lookup of the correct public
key when it is impractical to statically configure <code>user.signingKey</code>.
For example when keys or SSH Certificates are rotated frequently or
selection of the right key depends on external factors unknown to git.</p>
</dd>
<dt class="hdlist1">gpg.ssh.allowedSignersFile</dt>
<dd>
<p>A file containing ssh public keys which you are willing to trust.
The file consists of one or more lines of principals followed by an ssh
public key.
e.g.: <code>user1@example.com,user2@example.com</code> <code>ssh-rsa</code> <code>AAAAX1..</code>.
See ssh-keygen(1) "ALLOWED SIGNERS" for details.
The principal is only used to identify the key and is available when
verifying a signature.</p>
<div class="paragraph">
<p>SSH has no concept of trust levels like gpg does. To be able to differentiate
between valid signatures and trusted signatures the trust level of a signature
verification is set to <code>fully</code> when the public key is present in the allowedSignersFile.
Otherwise the trust level is <code>undefined</code> and git verify-commit/tag will fail.</p>
</div>
<div class="paragraph">
<p>This file can be set to a location outside of the repository and every developer
maintains their own trust store. A central repository server could generate this
file automatically from ssh keys with push access to verify the code against.
In a corporate setting this file is probably generated at a global location
from automation that already handles developer ssh keys.</p>
</div>
<div class="paragraph">
<p>A repository that only allows signed commits can store the file
in the repository itself using a path relative to the top-level of the working tree.
This way only committers with an already valid key can add or change keys in the keyring.</p>
</div>
<div class="paragraph">
<p>Since OpensSSH 8.8 this file allows specifying a key lifetime using valid-after &amp;
valid-before options. Git will mark signatures as valid if the signing key was
valid at the time of the signature&#8217;s creation. This allows users to change a
signing key without invalidating all previously made signatures.</p>
</div>
<div class="paragraph">
<p>Using a SSH CA key with the cert-authority option
(see ssh-keygen(1) "CERTIFICATES") is also valid.</p>
</div>
</dd>
<dt class="hdlist1">gpg.ssh.revocationFile</dt>
<dd>
<p>Either a SSH KRL or a list of revoked public keys (without the principal prefix).
See ssh-keygen(1) for details.
If a public key is found in this file then it will always be treated
as having trust level "never" and signatures will show as invalid.</p>
</dd>
<dt class="hdlist1">grep.lineNumber</dt>
<dd>
<p>If set to true, enable <code>-n</code> option by default.</p>
</dd>
<dt class="hdlist1">grep.column</dt>
<dd>
<p>If set to true, enable the <code>--column</code> option by default.</p>
</dd>
<dt class="hdlist1">grep.patternType</dt>
<dd>
<p>Set the default matching behavior. Using a value of <em>basic</em>, <em>extended</em>,
<em>fixed</em>, or <em>perl</em> will enable the <code>--basic-regexp</code>, <code>--extended-regexp</code>,
<code>--fixed-strings</code>, or <code>--perl-regexp</code> option accordingly, while the
value <em>default</em> will use the <code>grep.extendedRegexp</code> option to choose
between <em>basic</em> and <em>extended</em>.</p>
</dd>
<dt class="hdlist1">grep.extendedRegexp</dt>
<dd>
<p>If set to true, enable <code>--extended-regexp</code> option by default. This
option is ignored when the <code>grep.patternType</code> option is set to a value
other than <em>default</em>.</p>
</dd>
<dt class="hdlist1">grep.threads</dt>
<dd>
<p>Number of grep worker threads to use. If unset (or set to 0), Git will
use as many threads as the number of logical cores available.</p>
</dd>
<dt class="hdlist1">grep.fullName</dt>
<dd>
<p>If set to true, enable <code>--full-name</code> option by default.</p>
</dd>
<dt class="hdlist1">grep.fallbackToNoIndex</dt>
<dd>
<p>If set to true, fall back to <code>git</code> <code>grep</code> <code>--no-index</code> if <code>git</code> <code>grep</code>
is executed outside of a git repository.  Defaults to false.</p>
</dd>
<dt class="hdlist1">gui.commitMsgWidth</dt>
<dd>
<p>Defines how wide the commit message window is in the
<a href="git-gui.html">git-gui(1)</a>. "75" is the default.</p>
</dd>
<dt class="hdlist1">gui.diffContext</dt>
<dd>
<p>Specifies how many context lines should be used in calls to diff
made by the <a href="git-gui.html">git-gui(1)</a>. The default is "5".</p>
</dd>
<dt class="hdlist1">gui.displayUntracked</dt>
<dd>
<p>Determines if <a href="git-gui.html">git-gui(1)</a> shows untracked files
in the file list. The default is "true".</p>
</dd>
<dt class="hdlist1">gui.encoding</dt>
<dd>
<p>Specifies the default character encoding to use for displaying of
file contents in <a href="git-gui.html">git-gui(1)</a> and <a href="gitk.html">gitk(1)</a>.
It can be overridden by setting the <em>encoding</em> attribute
for relevant files (see <a href="gitattributes.html">gitattributes(5)</a>).
If this option is not set, the tools default to the
locale encoding.</p>
</dd>
<dt class="hdlist1">gui.matchTrackingBranch</dt>
<dd>
<p>Determines if new branches created with <a href="git-gui.html">git-gui(1)</a> should
default to tracking remote branches with matching names or
not. Default: "false".</p>
</dd>
<dt class="hdlist1">gui.newBranchTemplate</dt>
<dd>
<p>Is used as a suggested name when creating new branches using the
<a href="git-gui.html">git-gui(1)</a>.</p>
</dd>
<dt class="hdlist1">gui.pruneDuringFetch</dt>
<dd>
<p>"true" if <a href="git-gui.html">git-gui(1)</a> should prune remote-tracking branches when
performing a fetch. The default value is "false".</p>
</dd>
<dt class="hdlist1">gui.trustmtime</dt>
<dd>
<p>Determines if <a href="git-gui.html">git-gui(1)</a> should trust the file modification
timestamp or not. By default the timestamps are not trusted.</p>
</dd>
<dt class="hdlist1">gui.spellingDictionary</dt>
<dd>
<p>Specifies the dictionary used for spell checking commit messages in
the <a href="git-gui.html">git-gui(1)</a>. When set to "none" spell checking is turned
off.</p>
</dd>
<dt class="hdlist1">gui.fastCopyBlame</dt>
<dd>
<p>If true, <em>git gui blame</em> uses <code>-C</code> instead of <code>-C</code> <code>-C</code> for original
location detection. It makes blame significantly faster on huge
repositories at the expense of less thorough copy detection.</p>
</dd>
<dt class="hdlist1">gui.copyBlameThreshold</dt>
<dd>
<p>Specifies the threshold to use in <em>git gui blame</em> original location
detection, measured in alphanumeric characters. See the
<a href="git-blame.html">git-blame(1)</a> manual for more information on copy detection.</p>
</dd>
<dt class="hdlist1">gui.blamehistoryctx</dt>
<dd>
<p>Specifies the radius of history context in days to show in
<a href="gitk.html">gitk(1)</a> for the selected commit, when the <code>Show</code> <code>History</code>
<code>Context</code> menu item is invoked from <em>git gui blame</em>. If this
variable is set to zero, the whole history is shown.</p>
</dd>
<dt class="hdlist1">guitool.&lt;name&gt;.cmd</dt>
<dd>
<p>Specifies the shell command line to execute when the corresponding item
of the <a href="git-gui.html">git-gui(1)</a> <code>Tools</code> menu is invoked. This option is
mandatory for every tool. The command is executed from the root of
the working directory, and in the environment it receives the name of
the tool as <code>GIT_GUITOOL</code>, the name of the currently selected file as
<em>FILENAME</em>, and the name of the current branch as <em>CUR_BRANCH</em> (if
the head is detached, <em>CUR_BRANCH</em> is empty).</p>
</dd>
<dt class="hdlist1">guitool.&lt;name&gt;.needsFile</dt>
<dd>
<p>Run the tool only if a diff is selected in the GUI. It guarantees
that <em>FILENAME</em> is not empty.</p>
</dd>
<dt class="hdlist1">guitool.&lt;name&gt;.noConsole</dt>
<dd>
<p>Run the command silently, without creating a window to display its
output.</p>
</dd>
<dt class="hdlist1">guitool.&lt;name&gt;.noRescan</dt>
<dd>
<p>Don&#8217;t rescan the working directory for changes after the tool
finishes execution.</p>
</dd>
<dt class="hdlist1">guitool.&lt;name&gt;.confirm</dt>
<dd>
<p>Show a confirmation dialog before actually running the tool.</p>
</dd>
<dt class="hdlist1">guitool.&lt;name&gt;.argPrompt</dt>
<dd>
<p>Request a string argument from the user, and pass it to the tool
through the <code>ARGS</code> environment variable. Since requesting an
argument implies confirmation, the <em>confirm</em> option has no effect
if this is enabled. If the option is set to <em>true</em>, <em>yes</em>, or <em>1</em>,
the dialog uses a built-in generic prompt; otherwise the exact
value of the variable is used.</p>
</dd>
<dt class="hdlist1">guitool.&lt;name&gt;.revPrompt</dt>
<dd>
<p>Request a single valid revision from the user, and set the
<code>REVISION</code> environment variable. In other aspects this option
is similar to <em>argPrompt</em>, and can be used together with it.</p>
</dd>
<dt class="hdlist1">guitool.&lt;name&gt;.revUnmerged</dt>
<dd>
<p>Show only unmerged branches in the <em>revPrompt</em> subdialog.
This is useful for tools similar to merge or rebase, but not
for things like checkout or reset.</p>
</dd>
<dt class="hdlist1">guitool.&lt;name&gt;.title</dt>
<dd>
<p>Specifies the title to use for the prompt dialog. The default
is the tool name.</p>
</dd>
<dt class="hdlist1">guitool.&lt;name&gt;.prompt</dt>
<dd>
<p>Specifies the general prompt string to display at the top of
the dialog, before subsections for <em>argPrompt</em> and <em>revPrompt</em>.
The default value includes the actual command.</p>
</dd>
<dt class="hdlist1">help.browser</dt>
<dd>
<p>Specify the browser that will be used to display help in the
<em>web</em> format. See <a href="git-help.html">git-help(1)</a>.</p>
</dd>
<dt class="hdlist1">help.format</dt>
<dd>
<p>Override the default help format used by <a href="git-help.html">git-help(1)</a>.
Values <em>man</em>, <em>info</em>, <em>web</em> and <em>html</em> are supported. <em>man</em> is
the default. <em>web</em> and <em>html</em> are the same.</p>
</dd>
<dt class="hdlist1">help.autoCorrect</dt>
<dd>
<p>If git detects typos and can identify exactly one valid command similar
to the error, git will try to suggest the correct command or even
run the suggestion automatically. Possible config values are:</p>
<div class="ulist">
<ul>
<li>
<p>0, "false", "off", "no", "show": show the suggested command (default).</p>
</li>
<li>
<p>1, "true", "on", "yes", "immediate": run the suggested command
immediately.</p>
</li>
<li>
<p>positive number &gt; 1: run the suggested command after specified
deciseconds (0.1 sec).</p>
</li>
<li>
<p>"never": don&#8217;t run or show any suggested command.</p>
</li>
<li>
<p>"prompt": show the suggestion and prompt for confirmation to run
the command.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">help.htmlPath</dt>
<dd>
<p>Specify the path where the HTML documentation resides. File system paths
and URLs are supported. HTML pages will be prefixed with this path when
help is displayed in the <em>web</em> format. This defaults to the documentation
path of your Git installation.</p>
</dd>
<dt class="hdlist1">http.proxy</dt>
<dd>
<p>Override the HTTP proxy, normally configured using the <em>http_proxy</em>,
<em>https_proxy</em>, and <em>all_proxy</em> environment variables (see <code>curl</code>(<code>1</code>)). In
addition to the syntax understood by curl, it is possible to specify a
proxy string with a user name but no password, in which case git will
attempt to acquire one in the same way it does for other credentials. See
<a href="gitcredentials.html">gitcredentials(7)</a> for more information. The syntax thus is
<em>[protocol://][user[:password]@]proxyhost[:port][/path]</em>. This can be
overridden on a per-remote basis; see remote.&lt;name&gt;.proxy</p>
<div class="paragraph">
<p>Any proxy, however configured, must be completely transparent and must not
modify, transform, or buffer the request or response in any way.  Proxies which
are not completely transparent are known to cause various forms of breakage
with Git.</p>
</div>
</dd>
<dt class="hdlist1">http.proxyAuthMethod</dt>
<dd>
<p>Set the method with which to authenticate against the HTTP proxy. This
only takes effect if the configured proxy string contains a user name part
(i.e. is of the form <em>user@host</em> or <em>user@host:port</em>). This can be
overridden on a per-remote basis; see <code>remote.</code><em>&lt;name&gt;</em><code>.proxyAuthMethod</code>.
Both can be overridden by the <code>GIT_HTTP_PROXY_AUTHMETHOD</code> environment
variable.  Possible values are:</p>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>anyauth</code> - Automatically pick a suitable authentication method. It is
assumed that the proxy answers an unauthenticated request with a 407
status code and one or more Proxy-authenticate headers with supported
authentication methods. This is the default.</p>
</li>
<li>
<p><code>basic</code> - HTTP Basic authentication</p>
</li>
<li>
<p><code>digest</code> - HTTP Digest authentication; this prevents the password from being
transmitted to the proxy in clear text</p>
</li>
<li>
<p><code>negotiate</code> - GSS-Negotiate authentication (compare the --negotiate option
of <code>curl</code>(<code>1</code>))</p>
</li>
<li>
<p><code>ntlm</code> - NTLM authentication (compare the --ntlm option of <code>curl</code>(<code>1</code>))</p>
</li>
</ul>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">http.proxySSLCert</dt>
<dd>
<p>The pathname of a file that stores a client certificate to use to authenticate
with an HTTPS proxy. Can be overridden by the <code>GIT_PROXY_SSL_CERT</code> environment
variable.</p>
</dd>
<dt class="hdlist1">http.proxySSLKey</dt>
<dd>
<p>The pathname of a file that stores a private key to use to authenticate with
an HTTPS proxy. Can be overridden by the <code>GIT_PROXY_SSL_KEY</code> environment
variable.</p>
</dd>
<dt class="hdlist1">http.proxySSLCertPasswordProtected</dt>
<dd>
<p>Enable Git&#8217;s password prompt for the proxy SSL certificate.  Otherwise OpenSSL
will prompt the user, possibly many times, if the certificate or private key
is encrypted. Can be overridden by the <code>GIT_PROXY_SSL_CERT_PASSWORD_PROTECTED</code>
environment variable.</p>
</dd>
<dt class="hdlist1">http.proxySSLCAInfo</dt>
<dd>
<p>Pathname to the file containing the certificate bundle that should be used to
verify the proxy with when using an HTTPS proxy. Can be overridden by the
<code>GIT_PROXY_SSL_CAINFO</code> environment variable.</p>
</dd>
<dt class="hdlist1">http.emptyAuth</dt>
<dd>
<p>Attempt authentication without seeking a username or password.  This
can be used to attempt GSS-Negotiate authentication without specifying
a username in the URL, as libcurl normally requires a username for
authentication.</p>
</dd>
<dt class="hdlist1">http.proactiveAuth</dt>
<dd>
<p>Attempt authentication without first making an unauthenticated attempt and
receiving a 401 response. This can be used to ensure that all requests are
authenticated. If <code>http.emptyAuth</code> is set to true, this value has no effect.</p>
<div class="paragraph">
<p>If the credential helper used specifies an authentication scheme (i.e., via the
<code>authtype</code> field), that value will be used; if a username and password is
provided without a scheme, then Basic authentication is used.  The value of the
option determines the scheme requested from the helper. Possible values are:</p>
</div>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>basic</code> - Request Basic authentication from the helper.</p>
</li>
<li>
<p><code>auto</code> - Allow the helper to pick an appropriate scheme.</p>
</li>
<li>
<p><code>none</code> - Disable proactive authentication.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="paragraph">
<p>Note that TLS should always be used with this configuration, since otherwise it
is easy to accidentally expose plaintext credentials if Basic authentication
is selected.</p>
</div>
</dd>
<dt class="hdlist1">http.delegation</dt>
<dd>
<p>Control GSSAPI credential delegation. The delegation is disabled
by default in libcurl since version 7.21.7. Set parameter to tell
the server what it is allowed to delegate when it comes to user
credentials. Used with GSS/kerberos. Possible values are:</p>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>none</code> - Don&#8217;t allow any delegation.</p>
</li>
<li>
<p><code>policy</code> - Delegates if and only if the OK-AS-DELEGATE flag is set in the
Kerberos service ticket, which is a matter of realm policy.</p>
</li>
<li>
<p><code>always</code> - Unconditionally allow the server to delegate.</p>
</li>
</ul>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">http.extraHeader</dt>
<dd>
<p>Pass an additional HTTP header when communicating with a server.  If
more than one such entry exists, all of them are added as extra
headers.  To allow overriding the settings inherited from the system
config, an empty value will reset the extra headers to the empty list.</p>
</dd>
<dt class="hdlist1">http.cookieFile</dt>
<dd>
<p>The pathname of a file containing previously stored cookie lines,
which should be used
in the Git http session, if they match the server. The file format
of the file to read cookies from should be plain HTTP headers or
the Netscape/Mozilla cookie file format (see <code>curl</code>(<code>1</code>)).
Set it to an empty string, to accept only new cookies from
the server and send them back in successive requests within same
connection.
NOTE that the file specified with http.cookieFile is used only as
input unless http.saveCookies is set.</p>
</dd>
<dt class="hdlist1">http.saveCookies</dt>
<dd>
<p>If set, store cookies received during requests to the file specified by
http.cookieFile. Has no effect if http.cookieFile is unset, or set to
an empty string.</p>
</dd>
<dt class="hdlist1">http.version</dt>
<dd>
<p>Use the specified HTTP protocol version when communicating with a server.
If you want to force the default. The available and default version depend
on libcurl. Currently the possible values of
this option are:</p>
<div class="ulist">
<ul>
<li>
<p>HTTP/2</p>
</li>
<li>
<p>HTTP/1.1</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">http.curloptResolve</dt>
<dd>
<p>Hostname resolution information that will be used first by
libcurl when sending HTTP requests.  This information should
be in one of the following formats:</p>
<div class="ulist">
<ul>
<li>
<p>[+]HOST:PORT:ADDRESS[,ADDRESS]</p>
</li>
<li>
<p>-HOST:PORT</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The first format redirects all requests to the given <code>HOST:PORT</code>
to the provided <code>ADDRESS</code>(s). The second format clears all
previous config values for that <code>HOST:PORT</code> combination.  To
allow easy overriding of all the settings inherited from the
system config, an empty value will reset all resolution
information to the empty list.</p>
</div>
</dd>
<dt class="hdlist1">http.sslVersion</dt>
<dd>
<p>The SSL version to use when negotiating an SSL connection, if you
want to force the default.  The available and default version
depend on whether libcurl was built against NSS or OpenSSL and the
particular configuration of the crypto library in use. Internally
this sets the <em>CURLOPT_SSL_VERSION</em> option; see the libcurl
documentation for more details on the format of this option and
for the ssl version supported. Currently the possible values of
this option are:</p>
<div class="ulist">
<ul>
<li>
<p>sslv2</p>
</li>
<li>
<p>sslv3</p>
</li>
<li>
<p>tlsv1</p>
</li>
<li>
<p>tlsv1.0</p>
</li>
<li>
<p>tlsv1.1</p>
</li>
<li>
<p>tlsv1.2</p>
</li>
<li>
<p>tlsv1.3</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Can be overridden by the <code>GIT_SSL_VERSION</code> environment variable.
To force git to use libcurl&#8217;s default ssl version and ignore any
explicit http.sslversion option, set <code>GIT_SSL_VERSION</code> to the
empty string.</p>
</div>
</dd>
<dt class="hdlist1">http.sslCipherList</dt>
<dd>
<p>A list of SSL ciphers to use when negotiating an SSL connection.
The available ciphers depend on whether libcurl was built against
NSS or OpenSSL and the particular configuration of the crypto
library in use.  Internally this sets the <em>CURLOPT_SSL_CIPHER_LIST</em>
option; see the libcurl documentation for more details on the format
of this list.</p>
<div class="paragraph">
<p>Can be overridden by the <code>GIT_SSL_CIPHER_LIST</code> environment variable.
To force git to use libcurl&#8217;s default cipher list and ignore any
explicit http.sslCipherList option, set <code>GIT_SSL_CIPHER_LIST</code> to the
empty string.</p>
</div>
</dd>
<dt class="hdlist1">http.sslVerify</dt>
<dd>
<p>Whether to verify the SSL certificate when fetching or pushing
over HTTPS. Defaults to true. Can be overridden by the
<code>GIT_SSL_NO_VERIFY</code> environment variable.</p>
</dd>
<dt class="hdlist1">http.sslCert</dt>
<dd>
<p>File containing the SSL certificate when fetching or pushing
over HTTPS. Can be overridden by the <code>GIT_SSL_CERT</code> environment
variable.</p>
</dd>
<dt class="hdlist1">http.sslKey</dt>
<dd>
<p>File containing the SSL private key when fetching or pushing
over HTTPS. Can be overridden by the <code>GIT_SSL_KEY</code> environment
variable.</p>
</dd>
<dt class="hdlist1">http.sslCertPasswordProtected</dt>
<dd>
<p>Enable Git&#8217;s password prompt for the SSL certificate.  Otherwise
OpenSSL will prompt the user, possibly many times, if the
certificate or private key is encrypted.  Can be overridden by the
<code>GIT_SSL_CERT_PASSWORD_PROTECTED</code> environment variable.</p>
</dd>
<dt class="hdlist1">http.sslCAInfo</dt>
<dd>
<p>File containing the certificates to verify the peer with when
fetching or pushing over HTTPS. Can be overridden by the
<code>GIT_SSL_CAINFO</code> environment variable.</p>
</dd>
<dt class="hdlist1">http.sslCAPath</dt>
<dd>
<p>Path containing files with the CA certificates to verify the peer
with when fetching or pushing over HTTPS. Can be overridden
by the <code>GIT_SSL_CAPATH</code> environment variable.</p>
</dd>
<dt class="hdlist1">http.sslBackend</dt>
<dd>
<p>Name of the SSL backend to use (e.g. "openssl" or "schannel").
This option is ignored if cURL lacks support for choosing the SSL
backend at runtime.</p>
</dd>
<dt class="hdlist1">http.sslCertType</dt>
<dd>
<p>Type of client certificate used when fetching or pushing over HTTPS.
"PEM", "DER" are supported when using openssl or gnutls backends. "P12"
is supported on "openssl", "schannel", "securetransport", and gnutls 8.11+.
See also libcurl <code>CURLOPT_SSLCERTTYPE</code>. Can be overridden by the
<code>GIT_SSL_CERT_TYPE</code> environment variable.</p>
</dd>
<dt class="hdlist1">http.sslKeyType</dt>
<dd>
<p>Type of client private key used when fetching or pushing over HTTPS. (e.g.
"PEM", "DER", or "ENG"). Only applicable when using "openssl" backend. "DER"
is not supported with openssl. Particularly useful when set to "ENG" for
authenticating with PKCS#11 tokens, with a PKCS#11 URL in sslCert option.
See also libcurl <code>CURLOPT_SSLKEYTYPE</code>. Can be overridden by the
<code>GIT_SSL_KEY_TYPE</code> environment variable.</p>
</dd>
<dt class="hdlist1">http.schannelCheckRevoke</dt>
<dd>
<p>Used to enforce or disable certificate revocation checks in cURL
when http.sslBackend is set to "schannel". Defaults to <code>true</code> if
unset. Only necessary to disable this if Git consistently errors
and the message is about checking the revocation status of a
certificate. This option is ignored if cURL lacks support for
setting the relevant SSL option at runtime.</p>
</dd>
<dt class="hdlist1">http.schannelUseSSLCAInfo</dt>
<dd>
<p>As of cURL v7.60.0, the Secure Channel backend can use the
certificate bundle provided via <code>http.sslCAInfo</code>, but that would
override the Windows Certificate Store. Since this is not desirable
by default, Git will tell cURL not to use that bundle by default
when the <code>schannel</code> backend was configured via <code>http.sslBackend</code>,
unless <code>http.schannelUseSSLCAInfo</code> overrides this behavior.</p>
</dd>
<dt class="hdlist1">http.pinnedPubkey</dt>
<dd>
<p>Public key of the https service. It may either be the filename of
a PEM or DER encoded public key file or a string starting with
<em>sha256//</em> followed by the base64 encoded sha256 hash of the
public key. See also libcurl <em>CURLOPT_PINNEDPUBLICKEY</em>. git will
exit with an error if this option is set but not supported by
cURL.</p>
</dd>
<dt class="hdlist1">http.sslTry</dt>
<dd>
<p>Attempt to use AUTH SSL/TLS and encrypted data transfers
when connecting via regular FTP protocol. This might be needed
if the FTP server requires it for security reasons or you wish
to connect securely whenever remote FTP server supports it.
Default is false since it might trigger certificate verification
errors on misconfigured servers.</p>
</dd>
<dt class="hdlist1">http.maxRequests</dt>
<dd>
<p>How many HTTP requests to launch in parallel. Can be overridden
by the <code>GIT_HTTP_MAX_REQUESTS</code> environment variable. Default is 5.</p>
</dd>
<dt class="hdlist1">http.minSessions</dt>
<dd>
<p>The number of curl sessions (counted across slots) to be kept across
requests. They will not be ended with curl_easy_cleanup() until
http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this
value will be capped at 1. Defaults to 1.</p>
</dd>
<dt class="hdlist1">http.postBuffer</dt>
<dd>
<p>Maximum size in bytes of the buffer used by smart HTTP
transports when POSTing data to the remote system.
For requests larger than this buffer size, HTTP/1.1 and
Transfer-Encoding: chunked is used to avoid creating a
massive pack file locally.  Default is 1 MiB, which is
sufficient for most requests.</p>
<div class="paragraph">
<p>Note that raising this limit is only effective for disabling chunked
transfer encoding and therefore should be used only where the remote
server or a proxy only supports HTTP/1.0 or is noncompliant with the
HTTP standard.  Raising this is not, in general, an effective solution
for most push problems, but can increase memory consumption
significantly since the entire buffer is allocated even for small
pushes.</p>
</div>
</dd>
<dt class="hdlist1">http.lowSpeedLimit</dt>
<dt class="hdlist1">http.lowSpeedTime</dt>
<dd>
<p>If the HTTP transfer speed, in bytes per second, is less than
<em>http.lowSpeedLimit</em> for longer than <em>http.lowSpeedTime</em> seconds,
the transfer is aborted.
Can be overridden by the <code>GIT_HTTP_LOW_SPEED_LIMIT</code> and
<code>GIT_HTTP_LOW_SPEED_TIME</code> environment variables.</p>
</dd>
<dt class="hdlist1">http.keepAliveIdle</dt>
<dd>
<p>Specifies how long in seconds to wait on an idle connection
before sending TCP keepalive probes (if supported by the OS). If
unset, curl&#8217;s default value is used. Can be overridden by the
<code>GIT_HTTP_KEEPALIVE_IDLE</code> environment variable.</p>
</dd>
<dt class="hdlist1">http.keepAliveInterval</dt>
<dd>
<p>Specifies how long in seconds to wait between TCP keepalive
probes (if supported by the OS). If unset, curl&#8217;s default value
is used. Can be overridden by the <code>GIT_HTTP_KEEPALIVE_INTERVAL</code>
environment variable.</p>
</dd>
<dt class="hdlist1">http.keepAliveCount</dt>
<dd>
<p>Specifies how many TCP keepalive probes to send before giving up
and terminating the connection (if supported by the OS). If
unset, curl&#8217;s default value is used. Can be overridden by the
<code>GIT_HTTP_KEEPALIVE_COUNT</code> environment variable.</p>
</dd>
<dt class="hdlist1">http.noEPSV</dt>
<dd>
<p>A boolean which disables using of EPSV ftp command by curl.
This can be helpful with some "poor" ftp servers which don&#8217;t
support EPSV mode. Can be overridden by the <code>GIT_CURL_FTP_NO_EPSV</code>
environment variable. Default is false (curl will use EPSV).</p>
</dd>
<dt class="hdlist1">http.userAgent</dt>
<dd>
<p>The HTTP USER_AGENT string presented to an HTTP server.  The default
value represents the version of the Git client such as git/1.7.1.
This option allows you to override this value to a more common value
such as Mozilla/4.0.  This may be necessary, for instance, if
connecting through a firewall that restricts HTTP connections to a set
of common USER_AGENT strings (but not including those like git/1.7.1).
Can be overridden by the <code>GIT_HTTP_USER_AGENT</code> environment variable.</p>
</dd>
<dt class="hdlist1">http.followRedirects</dt>
<dd>
<p>Whether git should follow HTTP redirects. If set to <code>true</code>, git
will transparently follow any redirect issued by a server it
encounters. If set to <code>false</code>, git will treat all redirects as
errors. If set to <code>initial</code>, git will follow redirects only for
the initial request to a remote, but not for subsequent
follow-up HTTP requests. Since git uses the redirected URL as
the base for the follow-up requests, this is generally
sufficient. The default is <code>initial</code>.</p>
</dd>
<dt class="hdlist1">http.&lt;url&gt;.*</dt>
<dd>
<p>Any of the http.* options above can be applied selectively to some URLs.
For a config key to match a URL, each element of the config key is
compared to that of the URL, in the following order:</p>
<div class="openblock">
<div class="content">
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Scheme (e.g., <code>https</code> in <code>https://example.com/</code>). This field
must match exactly between the config key and the URL.</p>
</li>
<li>
<p>Host/domain name (e.g., <code>example.com</code> in <code>https://example.com/</code>).
This field must match between the config key and the URL. It is
possible to specify a <code>*</code> as part of the host name to match all subdomains
at this level. <code>https://*.example.com/</code> for example would match
<code>https://foo.example.com/</code>, but not <code>https://foo.bar.example.com/</code>.</p>
</li>
<li>
<p>Port number (e.g., <code>8080</code> in <code>http://example.com:8080/</code>).
This field must match exactly between the config key and the URL.
Omitted port numbers are automatically converted to the correct
default for the scheme before matching.</p>
</li>
<li>
<p>Path (e.g., <code>repo.git</code> in <code>https://example.com/repo.git</code>). The
path field of the config key must match the path field of the URL
either exactly or as a prefix of slash-delimited path elements.  This means
a config key with path <code>foo/</code> matches URL path <code>foo/bar</code>.  A prefix can only
match on a slash (<code>/</code>) boundary.  Longer matches take precedence (so a config
key with path <code>foo/bar</code> is a better match to URL path <code>foo/bar</code> than a config
key with just path <code>foo/</code>).</p>
</li>
<li>
<p>User name (e.g., <code>user</code> in <code>https://user@example.com/repo.git</code>). If
the config key has a user name it must match the user name in the
URL exactly. If the config key does not have a user name, that
config key will match a URL with any user name (including none),
but at a lower precedence than a config key with a user name.</p>
</li>
</ol>
</div>
</div>
</div>
<div class="paragraph">
<p>The list above is ordered by decreasing precedence; a URL that matches
a config key&#8217;s path is preferred to one that matches its user name. For example,
if the URL is <code>https://user@example.com/foo/bar</code> a config key match of
<code>https://example.com/foo</code> will be preferred over a config key match of
<code>https://user@example.com</code>.</p>
</div>
<div class="paragraph">
<p>All URLs are normalized before attempting any matching (the password part,
if embedded in the URL, is always ignored for matching purposes) so that
equivalent URLs that are simply spelled differently will match properly.
Environment variable settings always override any matches.  The URLs that are
matched against are those given directly to Git commands.  This means any URLs
visited as a result of a redirection do not participate in matching.</p>
</div>
</dd>
<dt class="hdlist1">i18n.commitEncoding</dt>
<dd>
<p>Character encoding the commit messages are stored in; Git itself
does not care per se, but this information is necessary e.g. when
importing commits from emails or in the gitk graphical history
browser (and possibly in other places in the future or in other
porcelains). See e.g. <a href="git-mailinfo.html">git-mailinfo(1)</a>. Defaults to <em>utf-8</em>.</p>
</dd>
<dt class="hdlist1">i18n.logOutputEncoding</dt>
<dd>
<p>Character encoding the commit messages are converted to when
running <em>git log</em> and friends.</p>
</dd>
<dt class="hdlist1">imap.folder</dt>
<dd>
<p>The folder to drop the mails into, which is typically the Drafts
folder. For example: <code>INBOX.Drafts</code>, <code>INBOX/Drafts</code> or
[<code>Gmail</code>]<code>/Drafts</code>. The IMAP folder to interact with MUST be specified;
the value of this configuration variable is used as the fallback
default value when the <code>--folder</code> option is not given.</p>
</dd>
<dt class="hdlist1">imap.tunnel</dt>
<dd>
<p>Command used to set up a tunnel to the IMAP server through which
commands will be piped instead of using a direct network connection
to the server. Required when imap.host is not set.</p>
</dd>
<dt class="hdlist1">imap.host</dt>
<dd>
<p>A URL identifying the server. Use an <code>imap://</code> prefix for non-secure
connections and an <code>imaps://</code> prefix for secure connections.
Ignored when imap.tunnel is set, but required otherwise.</p>
</dd>
<dt class="hdlist1">imap.user</dt>
<dd>
<p>The username to use when logging in to the server.</p>
</dd>
<dt class="hdlist1">imap.pass</dt>
<dd>
<p>The password to use when logging in to the server.</p>
</dd>
<dt class="hdlist1">imap.port</dt>
<dd>
<p>An integer port number to connect to on the server.
Defaults to 143 for imap:// hosts and 993 for imaps:// hosts.
Ignored when imap.tunnel is set.</p>
</dd>
<dt class="hdlist1">imap.sslverify</dt>
<dd>
<p>A boolean to enable/disable verification of the server certificate
used by the SSL/TLS connection. Default is <code>true</code>. Ignored when
imap.tunnel is set.</p>
</dd>
<dt class="hdlist1">imap.preformattedHTML</dt>
<dd>
<p>A boolean to enable/disable the use of html encoding when sending
a patch.  An html encoded patch will be bracketed with &lt;pre&gt;
and have a content type of text/html.  Ironically, enabling this
option causes Thunderbird to send the patch as a plain/text,
format=fixed email.  Default is <code>false</code>.</p>
</dd>
<dt class="hdlist1">imap.authMethod</dt>
<dd>
<p>Specify the authentication method for authenticating with the IMAP server.
If Git was built with the NO_CURL option, or if your curl version is older
than 7.34.0, or if you&#8217;re running git-imap-send with the <code>--no-curl</code>
option, the only supported methods are <code>PLAIN</code>, <code>CRAM-MD5</code>, <code>OAUTHBEARER</code>
and <code>XOAUTH2</code>. If this is not set then <code>git</code> <code>imap-send</code> uses the basic IMAP
plaintext <code>LOGIN</code> command.</p>
</dd>
<dt class="hdlist1">include.path</dt>
<dt class="hdlist1">includeIf.&lt;condition&gt;.path</dt>
<dd>
<p>Special variables to include other configuration files. See
the "CONFIGURATION FILE" section in the main
<a href="git-config.html">git-config(1)</a> documentation,
specifically the "Includes" and "Conditional Includes" subsections.</p>
</dd>
<dt class="hdlist1">index.recordEndOfIndexEntries</dt>
<dd>
<p>Specifies whether the index file should include an "End Of Index
Entry" section. This reduces index load time on multiprocessor
machines but produces a message "ignoring EOIE extension" when
reading the index using Git versions before 2.20. Defaults to
<em>true</em> if index.threads has been explicitly enabled, <em>false</em>
otherwise.</p>
</dd>
<dt class="hdlist1">index.recordOffsetTable</dt>
<dd>
<p>Specifies whether the index file should include an "Index Entry
Offset Table" section. This reduces index load time on
multiprocessor machines but produces a message "ignoring IEOT
extension" when reading the index using Git versions before 2.20.
Defaults to <em>true</em> if index.threads has been explicitly enabled,
<em>false</em> otherwise.</p>
</dd>
<dt class="hdlist1">index.sparse</dt>
<dd>
<p>When enabled, write the index using sparse-directory entries. This
has no effect unless <code>core.sparseCheckout</code> and
<code>core.sparseCheckoutCone</code> are both enabled. Defaults to <em>false</em>.</p>
</dd>
<dt class="hdlist1">index.threads</dt>
<dd>
<p>Specifies the number of threads to spawn when loading the index.
This is meant to reduce index load time on multiprocessor machines.
Specifying 0 or <em>true</em> will cause Git to auto-detect the number of
CPUs and set the number of threads accordingly. Specifying 1 or
<em>false</em> will disable multithreading. Defaults to <em>true</em>.</p>
</dd>
<dt class="hdlist1">index.version</dt>
<dd>
<p>Specify the version with which new index files should be
initialized.  This does not affect existing repositories.
If <code>feature.manyFiles</code> is enabled, then the default is 4.</p>
</dd>
<dt class="hdlist1">index.skipHash</dt>
<dd>
<p>When enabled, do not compute the trailing hash for the index file.
This accelerates Git commands that manipulate the index, such as
<code>git</code> <code>add</code>, <code>git</code> <code>commit</code>, or <code>git</code> <code>status</code>. Instead of storing the
checksum, write a trailing set of bytes with value zero, indicating
that the computation was skipped.</p>
<div class="paragraph">
<p>If you enable <code>index.skipHash</code>, then Git clients older than 2.13.0 will
refuse to parse the index and Git clients older than 2.40.0 will report an
error during <code>git</code> <code>fsck</code>.</p>
</div>
</dd>
</dl>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>init.templateDir</code></dt>
<dd>
<p>Specify the directory from which templates will be copied. (See the "TEMPLATE DIRECTORY" section of <a href="git-init.html">git-init(1)</a>.)</p>
</dd>
<dt class="hdlist1"><code>init.defaultBranch</code></dt>
<dd>
<p>Allows overriding the default branch name e.g. when initializing
a new repository.</p>
</dd>
<dt class="hdlist1"><code>init.defaultObjectFormat</code></dt>
<dd>
<p>Allows overriding the default object format for new repositories. See
<code>--object-format=</code> in <a href="git-init.html">git-init(1)</a>. Both the command line option
and the <code>GIT_DEFAULT_HASH</code> environment variable take precedence over
this config.</p>
</dd>
<dt class="hdlist1"><code>init.defaultRefFormat</code></dt>
<dd>
<p>Allows overriding the default ref storage format for new repositories.
See <code>--ref-format=</code> in <a href="git-init.html">git-init(1)</a>. Both the command line
option and the <code>GIT_DEFAULT_REF_FORMAT</code> environment variable take
precedence over this config.</p>
</dd>
<dt class="hdlist1">instaweb.browser</dt>
<dd>
<p>Specify the program that will be used to browse your working
repository in gitweb. See <a href="git-instaweb.html">git-instaweb(1)</a>.</p>
</dd>
<dt class="hdlist1">instaweb.httpd</dt>
<dd>
<p>The HTTP daemon command-line to start gitweb on your working
repository. See <a href="git-instaweb.html">git-instaweb(1)</a>.</p>
</dd>
<dt class="hdlist1">instaweb.local</dt>
<dd>
<p>If true the web server started by <a href="git-instaweb.html">git-instaweb(1)</a> will
be bound to the local IP (127.0.0.1).</p>
</dd>
<dt class="hdlist1">instaweb.modulePath</dt>
<dd>
<p>The default module path for <a href="git-instaweb.html">git-instaweb(1)</a> to use
instead of /usr/lib/apache2/modules.  Only used if httpd
is Apache.</p>
</dd>
<dt class="hdlist1">instaweb.port</dt>
<dd>
<p>The port number to bind the gitweb httpd to. See
<a href="git-instaweb.html">git-instaweb(1)</a>.</p>
</dd>
<dt class="hdlist1">interactive.singleKey</dt>
<dd>
<p>When set to true, allow the user to provide one-letter input
with a single key (i.e., without hitting the Enter key) in
interactive commands.  This is currently used by the <code>--patch</code>
mode of <a href="git-add.html">git-add(1)</a>, <a href="git-checkout.html">git-checkout(1)</a>,
<a href="git-restore.html">git-restore(1)</a>, <a href="git-commit.html">git-commit(1)</a>,
<a href="git-reset.html">git-reset(1)</a>, and <a href="git-stash.html">git-stash(1)</a>.</p>
</dd>
<dt class="hdlist1">interactive.diffFilter</dt>
<dd>
<p>When an interactive command (such as <code>git</code> <code>add</code> <code>--patch</code>) shows
a colorized diff, git will pipe the diff through the shell
command defined by this configuration variable. The command may
mark up the diff further for human consumption, provided that it
retains a one-to-one correspondence with the lines in the
original diff. Defaults to disabled (no filtering).</p>
</dd>
<dt class="hdlist1"><code>log.abbrevCommit</code></dt>
<dd>
<p>If <code>true</code>, make
<a href="git-log.html">git-log(1)</a>, <a href="git-show.html">git-show(1)</a>, and
<a href="git-whatchanged.html">git-whatchanged(1)</a>
assume <code>--abbrev-commit</code>. You may
override this option with <code>--no-abbrev-commit</code>.</p>
</dd>
<dt class="hdlist1"><code>log.date</code></dt>
<dd>
<p>Set the default date-time mode for the <code>log</code> command.
Setting a value for log.date is similar to using <code>git</code> <code>log</code>'s
<code>--date</code> option.  See <a href="git-log.html">git-log(1)</a> for details.</p>
<div class="paragraph">
<p>If the format is set to "auto:foo" and the pager is in use, format
"foo" will be used for the date format. Otherwise, "default" will
be used.</p>
</div>
</dd>
<dt class="hdlist1"><code>log.decorate</code></dt>
<dd>
<p>Print out the ref names of any commits that are shown by the log
command. Possible values are:</p>
<div class="listingblock">
<div class="content">
<pre>`short`;; the ref name prefixes `refs/heads/`, `refs/tags/` and
        `refs/remotes/` are not printed.
`full`;; the full ref name (including prefix) are printed.
`auto`;; if the output is going to a terminal,
        the ref names are shown as if `short` were given, otherwise no ref
        names are shown.</pre>
</div>
</div>
<div class="paragraph">
<p>This is the same as the <code>--decorate</code> option of the <code>git</code> <code>log</code>.</p>
</div>
</dd>
<dt class="hdlist1"><code>log.initialDecorationSet</code></dt>
<dd>
<p>By default, <code>git</code> <code>log</code> only shows decorations for certain known ref
namespaces. If <em>all</em> is specified, then show all refs as
decorations.</p>
</dd>
<dt class="hdlist1"><code>log.excludeDecoration</code></dt>
<dd>
<p>Exclude the specified patterns from the log decorations. This is
similar to the <code>--decorate-refs-exclude</code> command-line option, but
the config option can be overridden by the <code>--decorate-refs</code>
option.</p>
</dd>
<dt class="hdlist1"><code>log.diffMerges</code></dt>
<dd>
<p>Set diff format to be used when <code>--diff-merges=on</code> is
specified, see <code>--diff-merges</code> in <a href="git-log.html">git-log(1)</a> for
details. Defaults to <code>separate</code>.</p>
</dd>
<dt class="hdlist1"><code>log.follow</code></dt>
<dd>
<p>If <code>true</code>, <code>git</code> <code>log</code> will act as if the <code>--follow</code> option was used when
a single &lt;path&gt; is given.  This has the same limitations as <code>--follow</code>,
i.e. it cannot be used to follow multiple files and does not work well
on non-linear history.</p>
</dd>
<dt class="hdlist1"><code>log.graphColors</code></dt>
<dd>
<p>A list of colors, separated by commas, that can be used to draw
history lines in <code>git</code> <code>log</code> <code>--graph</code>.</p>
</dd>
<dt class="hdlist1"><code>log.showRoot</code></dt>
<dd>
<p>If true, the initial commit will be shown as a big creation event.
This is equivalent to a diff against an empty tree.
Tools like <a href="git-log.html">git-log(1)</a> or <a href="git-whatchanged.html">git-whatchanged(1)</a>, which
normally hide the root commit will now show it. True by default.</p>
</dd>
<dt class="hdlist1"><code>log.showSignature</code></dt>
<dd>
<p>If true, makes <a href="git-log.html">git-log(1)</a>, <a href="git-show.html">git-show(1)</a>, and
<a href="git-whatchanged.html">git-whatchanged(1)</a> assume <code>--show-signature</code>.</p>
</dd>
<dt class="hdlist1"><code>log.mailmap</code></dt>
<dd>
<p>If true, makes <a href="git-log.html">git-log(1)</a>, <a href="git-show.html">git-show(1)</a>, and
<a href="git-whatchanged.html">git-whatchanged(1)</a> assume <code>--use-mailmap</code>, otherwise
assume <code>--no-use-mailmap</code>. True by default.</p>
</dd>
<dt class="hdlist1">lsrefs.unborn</dt>
<dd>
<p>May be "advertise" (the default), "allow", or "ignore". If "advertise",
the server will respond to the client sending "unborn" (as described in
<a href="gitprotocol-v2.html">gitprotocol-v2(5)</a>) and will advertise support for this feature during the
protocol v2 capability advertisement. "allow" is the same as
"advertise" except that the server will not advertise support for this
feature; this is useful for load-balanced servers that cannot be
updated atomically (for example), since the administrator could
configure "allow", then after a delay, configure "advertise".</p>
</dd>
<dt class="hdlist1">mailinfo.scissors</dt>
<dd>
<p>If true, makes <a href="git-mailinfo.html">git-mailinfo(1)</a> (and therefore
<a href="git-am.html">git-am(1)</a>) act by default as if the --scissors option
was provided on the command-line. When active, this feature
removes everything from the message body before a scissors
line (i.e. consisting mainly of "&gt;8", "8&lt;" and "-").</p>
</dd>
<dt class="hdlist1">mailmap.file</dt>
<dd>
<p>The location of an augmenting mailmap file. The default
mailmap, located in the root of the repository, is loaded
first, then the mailmap file pointed to by this variable.
The location of the mailmap file may be in a repository
subdirectory, or somewhere outside of the repository itself.
See <a href="git-shortlog.html">git-shortlog(1)</a> and <a href="git-blame.html">git-blame(1)</a>.</p>
</dd>
<dt class="hdlist1">mailmap.blob</dt>
<dd>
<p>Like <code>mailmap.file</code>, but consider the value as a reference to a
blob in the repository. If both <code>mailmap.file</code> and
<code>mailmap.blob</code> are given, both are parsed, with entries from
<code>mailmap.file</code> taking precedence. In a bare repository, this
defaults to <code>HEAD:.mailmap</code>. In a non-bare repository, it
defaults to empty.</p>
</dd>
<dt class="hdlist1">maintenance.auto</dt>
<dd>
<p>This boolean config option controls whether some commands run
<code>git</code> <code>maintenance</code> <code>run</code> <code>--auto</code> after doing their normal work. Defaults
to true.</p>
</dd>
<dt class="hdlist1">maintenance.autoDetach</dt>
<dd>
<p>Many Git commands trigger automatic maintenance after they have
written data into the repository. This boolean config option
controls whether this automatic maintenance shall happen in the
foreground or whether the maintenance process shall detach and
continue to run in the background.</p>
<div class="paragraph">
<p>If unset, the value of <code>gc.autoDetach</code> is used as a fallback. Defaults
to true if both are unset, meaning that the maintenance process will
detach.</p>
</div>
</dd>
<dt class="hdlist1">maintenance.strategy</dt>
<dd>
<p>This string config option provides a way to specify one of a few
recommended schedules for background maintenance. This only affects
which tasks are run during <code>git</code> <code>maintenance</code> <code>run</code> <code>--schedule=X</code>
commands, provided no <code>--task=</code><em>&lt;task&gt;</em> arguments are provided.
Further, if a <code>maintenance.</code><em>&lt;task&gt;</em><code>.schedule</code> config value is set,
then that value is used instead of the one provided by
<code>maintenance.strategy</code>. The possible strategy strings are:</p>
<div class="ulist">
<ul>
<li>
<p><code>none</code>: This default setting implies no tasks are run at any schedule.</p>
</li>
<li>
<p><code>incremental</code>: This setting optimizes for performing small maintenance
activities that do not delete any data. This does not schedule the <code>gc</code>
task, but runs the <code>prefetch</code> and <code>commit-graph</code> tasks hourly, the
<code>loose-objects</code> and <code>incremental-repack</code> tasks daily, and the <code>pack-refs</code>
task weekly.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">maintenance.&lt;task&gt;.enabled</dt>
<dd>
<p>This boolean config option controls whether the maintenance task
with name <em>&lt;task&gt;</em> is run when no <code>--task</code> option is specified to
<code>git</code> <code>maintenance</code> <code>run</code>. These config values are ignored if a
<code>--task</code> option exists. By default, only <code>maintenance.gc.enabled</code>
is true.</p>
</dd>
<dt class="hdlist1">maintenance.&lt;task&gt;.schedule</dt>
<dd>
<p>This config option controls whether or not the given <em>&lt;task&gt;</em> runs
during a <code>git</code> <code>maintenance</code> <code>run</code> <code>--schedule=</code><em>&lt;frequency&gt;</em> command. The
value must be one of "hourly", "daily", or "weekly".</p>
</dd>
<dt class="hdlist1">maintenance.commit-graph.auto</dt>
<dd>
<p>This integer config option controls how often the <code>commit-graph</code> task
should be run as part of <code>git</code> <code>maintenance</code> <code>run</code> <code>--auto</code>. If zero, then
the <code>commit-graph</code> task will not run with the <code>--auto</code> option. A
negative value will force the task to run every time. Otherwise, a
positive value implies the command should run when the number of
reachable commits that are not in the commit-graph file is at least
the value of <code>maintenance.commit-graph.auto</code>. The default value is
100.</p>
</dd>
<dt class="hdlist1">maintenance.loose-objects.auto</dt>
<dd>
<p>This integer config option controls how often the <code>loose-objects</code> task
should be run as part of <code>git</code> <code>maintenance</code> <code>run</code> <code>--auto</code>. If zero, then
the <code>loose-objects</code> task will not run with the <code>--auto</code> option. A
negative value will force the task to run every time. Otherwise, a
positive value implies the command should run when the number of
loose objects is at least the value of <code>maintenance.loose-objects.auto</code>.
The default value is 100.</p>
</dd>
<dt class="hdlist1">maintenance.loose-objects.batchSize</dt>
<dd>
<p>This integer config option controls the maximum number of loose objects
written into a packfile during the <code>loose-objects</code> task. The default is
fifty thousand. Use value <code>0</code> to indicate no limit.</p>
</dd>
<dt class="hdlist1">maintenance.incremental-repack.auto</dt>
<dd>
<p>This integer config option controls how often the <code>incremental-repack</code>
task should be run as part of <code>git</code> <code>maintenance</code> <code>run</code> <code>--auto</code>. If zero,
then the <code>incremental-repack</code> task will not run with the <code>--auto</code>
option. A negative value will force the task to run every time.
Otherwise, a positive value implies the command should run when the
number of pack-files not in the multi-pack-index is at least the value
of <code>maintenance.incremental-repack.auto</code>. The default value is 10.</p>
</dd>
<dt class="hdlist1">maintenance.reflog-expire.auto</dt>
<dd>
<p>This integer config option controls how often the <code>reflog-expire</code> task
should be run as part of <code>git</code> <code>maintenance</code> <code>run</code> <code>--auto</code>. If zero, then
the <code>reflog-expire</code> task will not run with the <code>--auto</code> option. A
negative value will force the task to run every time. Otherwise, a
positive value implies the command should run when the number of
expired reflog entries in the "HEAD" reflog is at least the value of
<code>maintenance.loose-objects.auto</code>. The default value is 100.</p>
</dd>
<dt class="hdlist1">maintenance.rerere-gc.auto</dt>
<dd>
<p>This integer config option controls how often the <code>rerere-gc</code> task
should be run as part of <code>git</code> <code>maintenance</code> <code>run</code> <code>--auto</code>. If zero, then
the <code>rerere-gc</code> task will not run with the <code>--auto</code> option. A negative
value will force the task to run every time. Otherwise, any positive
value implies the command will run when the "rr-cache" directory exists
and has at least one entry, regardless of whether it is stale or not.
This heuristic may be refined in the future. The default value is 1.</p>
</dd>
<dt class="hdlist1">maintenance.worktree-prune.auto</dt>
<dd>
<p>This integer config option controls how often the <code>worktree-prune</code> task
should be run as part of <code>git</code> <code>maintenance</code> <code>run</code> <code>--auto</code>. If zero, then
the <code>worktree-prune</code> task will not run with the <code>--auto</code> option. A
negative value will force the task to run every time. Otherwise, a
positive value implies the command should run when the number of
prunable worktrees exceeds the value. The default value is 1.</p>
</dd>
<dt class="hdlist1">man.viewer</dt>
<dd>
<p>Specify the programs that may be used to display help in the
<em>man</em> format. See <a href="git-help.html">git-help(1)</a>.</p>
</dd>
<dt class="hdlist1">man.&lt;tool&gt;.cmd</dt>
<dd>
<p>Specify the command to invoke the specified man viewer. The
specified command is evaluated in shell with the man page
passed as an argument. (See <a href="git-help.html">git-help(1)</a>.)</p>
</dd>
<dt class="hdlist1">man.&lt;tool&gt;.path</dt>
<dd>
<p>Override the path for the given tool that may be used to
display help in the <em>man</em> format. See <a href="git-help.html">git-help(1)</a>.</p>
</dd>
<dt class="hdlist1"><code>merge.conflictStyle</code></dt>
<dd>
<p>Specify the style in which conflicted hunks are written out to
working tree files upon merge.  The default is "merge", which
shows a &lt;&lt;&lt;&lt;&lt;&lt;&lt; conflict marker, changes made by one side,
a <code>=======</code> marker, changes made by the other side, and then
a &gt;&gt;&gt;&gt;&gt;&gt;&gt; marker.  An alternate style, "diff3", adds a |||||||
marker and the original text before the <code>=======</code> marker.  The
"merge" style tends to produce smaller conflict regions than diff3,
both because of the exclusion of the original text, and because
when a subset of lines match on the two sides, they are just pulled
out of the conflict region.  Another alternate style, "zdiff3", is
similar to diff3 but removes matching lines on the two sides from
the conflict region when those matching lines appear near either
the beginning or end of a conflict region.</p>
</dd>
<dt class="hdlist1"><code>merge.defaultToUpstream</code></dt>
<dd>
<p>If merge is called without any commit argument, merge the upstream
branches configured for the current branch by using their last
observed values stored in their remote-tracking branches.
The values of the <code>branch.</code>&lt;current <code>branch</code>&gt;<code>.merge</code> that name the
branches at the remote named by <code>branch.</code><em>&lt;current-branch&gt;</em><code>.remote</code>
are consulted, and then they are mapped via <code>remote.</code><em>&lt;remote&gt;</em><code>.fetch</code>
to their corresponding remote-tracking branches, and the tips of
these tracking branches are merged. Defaults to true.</p>
</dd>
<dt class="hdlist1"><code>merge.ff</code></dt>
<dd>
<p>By default, Git does not create an extra merge commit when merging
a commit that is a descendant of the current commit. Instead, the
tip of the current branch is fast-forwarded. When set to <code>false</code>,
this variable tells Git to create an extra merge commit in such
a case (equivalent to giving the <code>--no-ff</code> option from the command
line). When set to <code>only</code>, only such fast-forward merges are
allowed (equivalent to giving the <code>--ff-only</code> option from the
command line).</p>
</dd>
<dt class="hdlist1"><code>merge.verifySignatures</code></dt>
<dd>
<p>If true, this is equivalent to the <code>--verify-signatures</code> command
line option. See <a href="git-merge.html">git-merge(1)</a> for details.</p>
</dd>
<dt class="hdlist1"><code>merge.branchdesc</code></dt>
<dd>
<p>In addition to branch names, populate the log message with
the branch description text associated with them.  Defaults
to false.</p>
</dd>
<dt class="hdlist1"><code>merge.log</code></dt>
<dd>
<p>In addition to branch names, populate the log message with at
most the specified number of one-line descriptions from the
actual commits that are being merged.  Defaults to false, and
true is a synonym for 20.</p>
</dd>
<dt class="hdlist1"><code>merge.suppressDest</code></dt>
<dd>
<p>By adding a glob that matches the names of integration
branches to this multi-valued configuration variable, the
default merge message computed for merges into these
integration branches will omit "into <em>&lt;branch-name&gt;</em>" from
its title.</p>
<div class="paragraph">
<p>An element with an empty value can be used to clear the list
of globs accumulated from previous configuration entries.
When there is no <code>merge.suppressDest</code> variable defined, the
default value of <code>master</code> is used for backward compatibility.</p>
</div>
</dd>
<dt class="hdlist1"><code>merge.renameLimit</code></dt>
<dd>
<p>The number of files to consider in the exhaustive portion of
rename detection during a merge.  If not specified, defaults
to the value of <code>diff.renameLimit</code>.  If neither
<code>merge.renameLimit</code> nor <code>diff.renameLimit</code> are specified,
currently defaults to 7000.  This setting has no effect if
rename detection is turned off.</p>
</dd>
<dt class="hdlist1"><code>merge.renames</code></dt>
<dd>
<p>Whether Git detects renames.  If set to <code>false</code>, rename detection
is disabled. If set to <code>true</code>, basic rename detection is enabled.
Defaults to the value of diff.renames.</p>
</dd>
<dt class="hdlist1"><code>merge.directoryRenames</code></dt>
<dd>
<p>Whether Git detects directory renames, affecting what happens at
merge time to new files added to a directory on one side of
history when that directory was renamed on the other side of
history. Possible values are:</p>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1"><code>false</code></dt>
<dd>
<p>Directory rename detection is disabled, meaning that such new files will be
left behind in the old directory.</p>
</dd>
<dt class="hdlist1"><code>true</code></dt>
<dd>
<p>Directory rename detection is enabled, meaning that such new files will be
moved into the new directory.</p>
</dd>
<dt class="hdlist1"><code>conflict</code></dt>
<dd>
<p>A conflict will be reported for such paths.</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="paragraph">
<p>If <code>merge.renames</code> is <code>false</code>, <code>merge.directoryRenames</code> is ignored and treated
as <code>false</code>. Defaults to <code>conflict</code>.</p>
</div>
</dd>
<dt class="hdlist1"><code>merge.renormalize</code></dt>
<dd>
<p>Tell Git that canonical representation of files in the
repository has changed over time (e.g. earlier commits record
text files with <em>CRLF</em> line endings, but recent ones use <em>LF</em> line
endings).  In such a repository, for each file where a
three-way content merge is needed, Git can convert the data
recorded in commits to a canonical form before performing a
merge to reduce unnecessary conflicts.  For more information,
see section "Merging branches with differing checkin/checkout
attributes" in <a href="gitattributes.html">gitattributes(5)</a>.</p>
</dd>
<dt class="hdlist1"><code>merge.stat</code></dt>
<dd>
<p>What, if anything, to print between <code>ORIG_HEAD</code> and the merge result
at the end of the merge.  Possible values are:</p>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1"><code>false</code></dt>
<dd>
<p>Show nothing.</p>
</dd>
<dt class="hdlist1"><code>true</code></dt>
<dd>
<p>Show <code>git</code> <code>diff</code> <code>--diffstat</code> <code>--summary</code> <code>ORIG_HEAD</code>.</p>
</dd>
<dt class="hdlist1"><code>compact</code></dt>
<dd>
<p>Show <code>git</code> <code>diff</code> <code>--compact-summary</code> <code>ORIG_HEAD</code>.</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="paragraph">
<p>but any unrecognised value (e.g., a value added by a future version of
Git) is taken as <code>true</code> instead of triggering an error.  Defaults to
<code>true</code>.</p>
</div>
</dd>
<dt class="hdlist1"><code>merge.autoStash</code></dt>
<dd>
<p>When set to <code>true</code>, automatically create a temporary stash entry
before the operation begins, and apply it after the operation
ends.  This means that you can run merge on a dirty worktree.
However, use with care: the final stash application after a
successful merge might result in non-trivial conflicts.
This option can be overridden by the <code>--no-autostash</code> and
<code>--autostash</code> options of <a href="git-merge.html">git-merge(1)</a>.
Defaults to <code>false</code>.</p>
</dd>
<dt class="hdlist1"><code>merge.tool</code></dt>
<dd>
<p>Controls which merge tool is used by <a href="git-mergetool.html">git-mergetool(1)</a>.
The list below shows the valid built-in values.
Any other value is treated as a custom merge tool and requires
that a corresponding <code>mergetool.</code><em>&lt;tool&gt;</em><code>.cmd</code> variable is defined.</p>
</dd>
<dt class="hdlist1"><code>merge.guitool</code></dt>
<dd>
<p>Controls which merge tool is used by <a href="git-mergetool.html">git-mergetool(1)</a> when the
<code>-g</code>/<code>--gui</code> flag is specified. The list below shows the valid built-in values.
Any other value is treated as a custom merge tool and requires that a
corresponding <code>mergetool.</code><em>&lt;guitool&gt;</em><code>.cmd</code> variable is defined.</p>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>araxis</code></dt>
<dd>
<p>Use Araxis Merge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>bc</code></dt>
<dd>
<p>Use Beyond Compare (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>bc3</code></dt>
<dd>
<p>Use Beyond Compare (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>bc4</code></dt>
<dd>
<p>Use Beyond Compare (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>codecompare</code></dt>
<dd>
<p>Use Code Compare (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>deltawalker</code></dt>
<dd>
<p>Use DeltaWalker (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>diffmerge</code></dt>
<dd>
<p>Use DiffMerge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>diffuse</code></dt>
<dd>
<p>Use Diffuse (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>ecmerge</code></dt>
<dd>
<p>Use ECMerge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>emerge</code></dt>
<dd>
<p>Use Emacs' Emerge</p>
</dd>
<dt class="hdlist1"><code>examdiff</code></dt>
<dd>
<p>Use ExamDiff Pro (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>guiffy</code></dt>
<dd>
<p>Use Guiffy&#8217;s Diff Tool (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>gvimdiff</code></dt>
<dd>
<p>Use gVim (requires a graphical session) with a custom layout (see <code>git</code> <code>help</code> <code>mergetool</code>'s <code>BACKEND</code> <code>SPECIFIC</code> <code>HINTS</code> section)</p>
</dd>
<dt class="hdlist1"><code>gvimdiff1</code></dt>
<dd>
<p>Use gVim (requires a graphical session) with a 2 panes layout (LOCAL and REMOTE)</p>
</dd>
<dt class="hdlist1"><code>gvimdiff2</code></dt>
<dd>
<p>Use gVim (requires a graphical session) with a 3 panes layout (LOCAL, MERGED and REMOTE)</p>
</dd>
<dt class="hdlist1"><code>gvimdiff3</code></dt>
<dd>
<p>Use gVim (requires a graphical session) where only the MERGED file is shown</p>
</dd>
<dt class="hdlist1"><code>kdiff3</code></dt>
<dd>
<p>Use KDiff3 (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>meld</code></dt>
<dd>
<p>Use Meld (requires a graphical session) with optional <code>auto</code> <code>merge</code> (see <code>git</code> <code>help</code> <code>mergetool</code>'s <code>CONFIGURATION</code> section)</p>
</dd>
<dt class="hdlist1"><code>nvimdiff</code></dt>
<dd>
<p>Use Neovim with a custom layout (see <code>git</code> <code>help</code> <code>mergetool</code>'s <code>BACKEND</code> <code>SPECIFIC</code> <code>HINTS</code> section)</p>
</dd>
<dt class="hdlist1"><code>nvimdiff1</code></dt>
<dd>
<p>Use Neovim with a 2 panes layout (LOCAL and REMOTE)</p>
</dd>
<dt class="hdlist1"><code>nvimdiff2</code></dt>
<dd>
<p>Use Neovim with a 3 panes layout (LOCAL, MERGED and REMOTE)</p>
</dd>
<dt class="hdlist1"><code>nvimdiff3</code></dt>
<dd>
<p>Use Neovim where only the MERGED file is shown</p>
</dd>
<dt class="hdlist1"><code>opendiff</code></dt>
<dd>
<p>Use FileMerge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>p4merge</code></dt>
<dd>
<p>Use HelixCore P4Merge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>smerge</code></dt>
<dd>
<p>Use Sublime Merge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>tkdiff</code></dt>
<dd>
<p>Use TkDiff (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>tortoisemerge</code></dt>
<dd>
<p>Use TortoiseMerge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>vimdiff</code></dt>
<dd>
<p>Use Vim with a custom layout (see <code>git</code> <code>help</code> <code>mergetool</code>'s <code>BACKEND</code> <code>SPECIFIC</code> <code>HINTS</code> section)</p>
</dd>
<dt class="hdlist1"><code>vimdiff1</code></dt>
<dd>
<p>Use Vim with a 2 panes layout (LOCAL and REMOTE)</p>
</dd>
<dt class="hdlist1"><code>vimdiff2</code></dt>
<dd>
<p>Use Vim with a 3 panes layout (LOCAL, MERGED and REMOTE)</p>
</dd>
<dt class="hdlist1"><code>vimdiff3</code></dt>
<dd>
<p>Use Vim where only the MERGED file is shown</p>
</dd>
<dt class="hdlist1"><code>vscode</code></dt>
<dd>
<p>Use Visual Studio Code (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>winmerge</code></dt>
<dd>
<p>Use WinMerge (requires a graphical session)</p>
</dd>
<dt class="hdlist1"><code>xxdiff</code></dt>
<dd>
<p>Use xxdiff (requires a graphical session)</p>
</dd>
</dl>
</div>
</dd>
<dt class="hdlist1"><code>merge.verbosity</code></dt>
<dd>
<p>Controls the amount of output shown by the recursive merge
strategy.  Level 0 outputs nothing except a final error
message if conflicts were detected. Level 1 outputs only
conflicts, 2 outputs conflicts and file changes.  Level 5 and
above outputs debugging information.  The default is level 2.
Can be overridden by the <code>GIT_MERGE_VERBOSITY</code> environment variable.</p>
</dd>
<dt class="hdlist1"><code>merge.</code><em>&lt;driver&gt;</em><code>.name</code></dt>
<dd>
<p>Defines a human-readable name for a custom low-level
merge driver.  See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>
</dd>
<dt class="hdlist1"><code>merge.</code><em>&lt;driver&gt;</em><code>.driver</code></dt>
<dd>
<p>Defines the command that implements a custom low-level
merge driver.  See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>
</dd>
<dt class="hdlist1"><code>merge.</code><em>&lt;driver&gt;</em><code>.recursive</code></dt>
<dd>
<p>Names a low-level merge driver to be used when
performing an internal merge between common ancestors.
See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>
</dd>
<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.path</code></dt>
<dd>
<p>Override the path for the given tool.  This is useful in case
your tool is not in the <code>$PATH</code>.</p>
</dd>
<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.cmd</code></dt>
<dd>
<p>Specify the command to invoke the specified merge tool.  The
specified command is evaluated in shell with the following
variables available: <code>BASE</code> is the name of a temporary file
containing the common base of the files to be merged, if available;
<code>LOCAL</code> is the name of a temporary file containing the contents of
the file on the current branch; <code>REMOTE</code> is the name of a temporary
file containing the contents of the file from the branch being
merged; <code>MERGED</code> contains the name of the file to which the merge
tool should write the results of a successful merge.</p>
</dd>
<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.hideResolved</code></dt>
<dd>
<p>Allows the user to override the global <code>mergetool.hideResolved</code> value
for a specific tool. See <code>mergetool.hideResolved</code> for the full
description.</p>
</dd>
<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.trustExitCode</code></dt>
<dd>
<p>For a custom merge command, specify whether the exit code of
the merge command can be used to determine whether the merge was
successful.  If this is not set to true then the merge target file
timestamp is checked, and the merge is assumed to have been successful
if the file has been updated; otherwise, the user is prompted to
indicate the success of the merge.</p>
</dd>
<dt class="hdlist1"><code>mergetool.meld.hasOutput</code></dt>
<dd>
<p>Older versions of <code>meld</code> do not support the <code>--output</code> option.
Git will attempt to detect whether <code>meld</code> supports <code>--output</code>
by inspecting the output of <code>meld</code> <code>--help</code>.  Configuring
<code>mergetool.meld.hasOutput</code> will make Git skip these checks and
use the configured value instead.  Setting <code>mergetool.meld.hasOutput</code>
to <code>true</code> tells Git to unconditionally use the <code>--output</code> option,
and <code>false</code> avoids using <code>--output</code>.</p>
</dd>
<dt class="hdlist1"><code>mergetool.meld.useAutoMerge</code></dt>
<dd>
<p>When the <code>--auto-merge</code> is given, meld will merge all non-conflicting
parts automatically, highlight the conflicting parts, and wait for
user decision.  Setting <code>mergetool.meld.useAutoMerge</code> to <code>true</code> tells
Git to unconditionally use the <code>--auto-merge</code> option with <code>meld</code>.
Setting this value to <code>auto</code> makes git detect whether <code>--auto-merge</code>
is supported and will only use <code>--auto-merge</code> when available.  A
value of <code>false</code> avoids using <code>--auto-merge</code> altogether, and is the
default value.</p>
</dd>
<dt class="hdlist1"><code>mergetool.</code><em>&lt;variant&gt;</em><code>.layout</code></dt>
<dd>
<p>Configure the split window layout for vimdiff&#8217;s <em>&lt;variant&gt;</em>, which is any of <code>vimdiff</code>,
<code>nvimdiff</code>, <code>gvimdiff</code>.
Upon launching <code>git</code> <code>mergetool</code> with <code>--tool=</code><em>&lt;variant&gt;</em> (or without <code>--tool</code>
if <code>merge.tool</code> is configured as <em>&lt;variant&gt;</em>), Git will consult
<code>mergetool.</code><em>&lt;variant&gt;</em><code>.layout</code> to determine the tool&#8217;s layout. If the
variant-specific configuration is not available, <code>vimdiff</code> ' s is used as
fallback.  If that too is not available, a default layout with 4 windows
will be used.  To configure the layout, see the <em>BACKEND SPECIFIC HINTS</em>
section in <a href="git-mergetool.html">git-mergetool(1)</a>.</p>
</dd>
<dt class="hdlist1"><code>mergetool.hideResolved</code></dt>
<dd>
<p>During a merge, Git will automatically resolve as many conflicts as
possible and write the <code>$MERGED</code> file containing conflict markers around
any conflicts that it cannot resolve; <code>$LOCAL</code> and <code>$REMOTE</code> normally
are the versions of the file from before Git`s conflict
resolution. This flag causes <code>$LOCAL</code> and <code>$REMOTE</code> to be overwritten so
that only the unresolved conflicts are presented to the merge tool. Can
be configured per-tool via the <code>mergetool.</code><em>&lt;tool&gt;</em><code>.hideResolved</code>
configuration variable. Defaults to <code>false</code>.</p>
</dd>
<dt class="hdlist1"><code>mergetool.keepBackup</code></dt>
<dd>
<p>After performing a merge, the original file with conflict markers
can be saved as a file with a .<code>orig</code> extension.  If this variable
is set to <code>false</code> then this file is not preserved.  Defaults to
<code>true</code> (i.e. keep the backup files).</p>
</dd>
<dt class="hdlist1"><code>mergetool.keepTemporaries</code></dt>
<dd>
<p>When invoking a custom merge tool, Git uses a set of temporary
files to pass to the tool. If the tool returns an error and this
variable is set to <code>true</code>, then these temporary files will be
preserved; otherwise, they will be removed after the tool has
exited. Defaults to <code>false</code>.</p>
</dd>
<dt class="hdlist1"><code>mergetool.writeToTemp</code></dt>
<dd>
<p>Git writes temporary <code>BASE</code>, <code>LOCAL</code>, and <code>REMOTE</code> versions of
conflicting files in the worktree by default.  Git will attempt
to use a temporary directory for these files when set <code>true</code>.
Defaults to <code>false</code>.</p>
</dd>
<dt class="hdlist1"><code>mergetool.prompt</code></dt>
<dd>
<p>Prompt before each invocation of the merge resolution program.</p>
</dd>
<dt class="hdlist1"><code>mergetool.guiDefault</code></dt>
<dd>
<p>Set <code>true</code> to use the <code>merge.guitool</code> by default (equivalent to
specifying the <code>--gui</code> argument), or <code>auto</code> to select <code>merge.guitool</code>
or <code>merge.tool</code> depending on the presence of a <code>DISPLAY</code> environment
variable value. The default is <code>false</code>, where the <code>--gui</code> argument
must be provided explicitly for the <code>merge.guitool</code> to be used.</p>
</dd>
<dt class="hdlist1"><code>notes.mergeStrategy</code></dt>
<dd>
<p>Which merge strategy to choose by default when resolving notes
conflicts.  Must be one of <code>manual</code>, <code>ours</code>, <code>theirs</code>, <code>union</code>, or
<code>cat_sort_uniq</code>.  Defaults to <code>manual</code>.  See the "NOTES MERGE STRATEGIES"
section of <a href="git-notes.html">git-notes(1)</a> for more information on each strategy.</p>
<div class="paragraph">
<p>This setting can be overridden by passing the <code>--strategy</code> option to
<a href="git-notes.html">git-notes(1)</a>.</p>
</div>
</dd>
<dt class="hdlist1"><code>notes.</code><em>&lt;name&gt;</em><code>.mergeStrategy</code></dt>
<dd>
<p>Which merge strategy to choose when doing a notes merge into
<code>refs/notes/</code><em>&lt;name&gt;</em>.  This overrides the more general
<code>notes.mergeStrategy</code>.  See the "NOTES MERGE STRATEGIES" section in
<a href="git-notes.html">git-notes(1)</a> for more information on the available strategies.</p>
</dd>
<dt class="hdlist1"><code>notes.displayRef</code></dt>
<dd>
<p>Which ref (or refs, if a glob or specified more than once), in
addition to the default set by <code>core.notesRef</code> or
<code>GIT_NOTES_REF</code>, to read notes from when showing commit
messages with the <code>git</code> <code>log</code> family of commands.</p>
<div class="paragraph">
<p>This setting can be overridden with the <code>GIT_NOTES_DISPLAY_REF</code>
environment variable, which must be a colon separated list of refs or
globs.</p>
</div>
<div class="paragraph">
<p>A warning will be issued for refs that do not exist,
but a glob that does not match any refs is silently ignored.</p>
</div>
<div class="paragraph">
<p>This setting can be disabled by the <code>--no-notes</code> option to the <a href="git-log.html">git-log(1)</a>
family of commands, or by the <code>--notes=</code><em>&lt;ref&gt;</em> option accepted by
those commands.</p>
</div>
<div class="paragraph">
<p>The effective value of <code>core.notesRef</code> (possibly overridden by
<code>GIT_NOTES_REF</code>) is also implicitly added to the list of refs to be
displayed.</p>
</div>
</dd>
<dt class="hdlist1"><code>notes.rewrite.</code><em>&lt;command&gt;</em></dt>
<dd>
<p>When rewriting commits with <em>&lt;command&gt;</em> (currently <code>amend</code> or
<code>rebase</code>), if this variable is <code>false</code>, git will not copy
notes from the original to the rewritten commit.  Defaults to
<code>true</code>.  See also <code>notes.rewriteRef</code> below.</p>
<div class="paragraph">
<p>This setting can be overridden with the <code>GIT_NOTES_REWRITE_REF</code>
environment variable, which must be a colon separated list of refs or
globs.</p>
</div>
</dd>
<dt class="hdlist1"><code>notes.rewriteMode</code></dt>
<dd>
<p>When copying notes during a rewrite (see the
<code>notes.rewrite.</code><em>&lt;command&gt;</em> option), determines what to do if
the target commit already has a note.  Must be one of
<code>overwrite</code>, <code>concatenate</code>, <code>cat_sort_uniq</code>, or <code>ignore</code>.
Defaults to <code>concatenate</code>.</p>
<div class="paragraph">
<p>This setting can be overridden with the <code>GIT_NOTES_REWRITE_MODE</code>
environment variable.</p>
</div>
</dd>
<dt class="hdlist1"><code>notes.rewriteRef</code></dt>
<dd>
<p>When copying notes during a rewrite, specifies the (fully
qualified) ref whose notes should be copied.  May be a glob,
in which case notes in all matching refs will be copied.  You
may also specify this configuration several times.</p>
<div class="paragraph">
<p>Does not have a default value; you must configure this variable to
enable note rewriting.  Set it to <code>refs/notes/commits</code> to enable
rewriting for the default commit notes.</p>
</div>
<div class="paragraph">
<p>Can be overridden with the <code>GIT_NOTES_REWRITE_REF</code> environment variable.
See <code>notes.rewrite.</code><em>&lt;command&gt;</em> above for a further description of its format.</p>
</div>
</dd>
<dt class="hdlist1">pack.window</dt>
<dd>
<p>The size of the window used by <a href="git-pack-objects.html">git-pack-objects(1)</a> when no
window size is given on the command line. Defaults to 10.</p>
</dd>
<dt class="hdlist1">pack.depth</dt>
<dd>
<p>The maximum delta depth used by <a href="git-pack-objects.html">git-pack-objects(1)</a> when no
maximum depth is given on the command line. Defaults to 50.
Maximum value is 4095.</p>
</dd>
<dt class="hdlist1">pack.windowMemory</dt>
<dd>
<p>The maximum size of memory that is consumed by each thread
in <a href="git-pack-objects.html">git-pack-objects(1)</a> for pack window memory when
no limit is given on the command line.  The value can be
suffixed with "k", "m", or "g".  When left unconfigured (or
set explicitly to 0), there will be no limit.</p>
</dd>
<dt class="hdlist1">pack.compression</dt>
<dd>
<p>An integer -1..9, indicating the compression level for objects
in a pack file. -1 is the zlib default. 0 means no
compression, and 1..9 are various speed/size tradeoffs, 9 being
slowest.  If not set,  defaults to core.compression.  If that is
not set,  defaults to -1, the zlib default, which is "a default
compromise between speed and compression (currently equivalent
to level 6)."</p>
<div class="paragraph">
<p>Note that changing the compression level will not automatically recompress
all existing objects. You can force recompression by passing the -F option
to <a href="git-repack.html">git-repack(1)</a>.</p>
</div>
</dd>
<dt class="hdlist1">pack.allowPackReuse</dt>
<dd>
<p>When true or "single", and when reachability bitmaps are
enabled, pack-objects will try to send parts of the bitmapped
packfile verbatim. When "multi", and when a multi-pack
reachability bitmap is available, pack-objects will try to send
parts of all packs in the MIDX.</p>
<div class="paragraph">
<p>If only a single pack bitmap is available, and <code>pack.allowPackReuse</code>
is set to "multi", reuse parts of just the bitmapped packfile. This
can reduce memory and CPU usage to serve fetches, but might result in
sending a slightly larger pack. Defaults to true.</p>
</div>
</dd>
<dt class="hdlist1">pack.island</dt>
<dd>
<p>An extended regular expression configuring a set of delta
islands. See "DELTA ISLANDS" in <a href="git-pack-objects.html">git-pack-objects(1)</a>
for details.</p>
</dd>
<dt class="hdlist1">pack.islandCore</dt>
<dd>
<p>Specify an island name which gets to have its objects be
packed first. This creates a kind of pseudo-pack at the front
of one pack, so that the objects from the specified island are
hopefully faster to copy into any pack that should be served
to a user requesting these objects. In practice this means
that the island specified should likely correspond to what is
the most commonly cloned in the repo. See also "DELTA ISLANDS"
in <a href="git-pack-objects.html">git-pack-objects(1)</a>.</p>
</dd>
<dt class="hdlist1">pack.deltaCacheSize</dt>
<dd>
<p>The maximum memory in bytes used for caching deltas in
<a href="git-pack-objects.html">git-pack-objects(1)</a> before writing them out to a pack.
This cache is used to speed up the writing object phase by not
having to recompute the final delta result once the best match
for all objects is found.  Repacking large repositories on machines
which are tight with memory might be badly impacted by this though,
especially if this cache pushes the system into swapping.
A value of 0 means no limit. The smallest size of 1 byte may be
used to virtually disable this cache. Defaults to 256 MiB.</p>
</dd>
<dt class="hdlist1">pack.deltaCacheLimit</dt>
<dd>
<p>The maximum size of a delta, that is cached in
<a href="git-pack-objects.html">git-pack-objects(1)</a>. This cache is used to speed up the
writing object phase by not having to recompute the final delta
result once the best match for all objects is found.
Defaults to 1000. Maximum value is 65535.</p>
</dd>
<dt class="hdlist1">pack.threads</dt>
<dd>
<p>Specifies the number of threads to spawn when searching for best
delta matches.  This requires that <a href="git-pack-objects.html">git-pack-objects(1)</a>
be compiled with pthreads otherwise this option is ignored with a
warning. This is meant to reduce packing time on multiprocessor
machines. The required amount of memory for the delta search window
is however multiplied by the number of threads.
Specifying 0 will cause Git to auto-detect the number of CPUs
and set the number of threads accordingly.</p>
</dd>
<dt class="hdlist1">pack.indexVersion</dt>
<dd>
<p>Specify the default pack index version.  Valid values are 1 for
legacy pack index used by Git versions prior to 1.5.2, and 2 for
the new pack index with capabilities for packs larger than 4 GB
as well as proper protection against the repacking of corrupted
packs.  Version 2 is the default.  Note that version 2 is enforced
and this config option is ignored whenever the corresponding pack is
larger than 2 GB.</p>
<div class="paragraph">
<p>If you have an old Git that does not understand the version 2 <code>*.idx</code> file,
cloning or fetching over a non-native protocol (e.g. "http")
that will copy both <code>*.pack</code> file and corresponding <code>*.idx</code> file from the
other side may give you a repository that cannot be accessed with your
older version of Git. If the <code>*.pack</code> file is smaller than 2 GB, however,
you can use <a href="git-index-pack.html">git-index-pack(1)</a> on the *.pack file to regenerate
the <code>*.idx</code> file.</p>
</div>
</dd>
<dt class="hdlist1">pack.packSizeLimit</dt>
<dd>
<p>The maximum size of a pack.  This setting only affects
packing to a file when repacking, i.e. the git:// protocol
is unaffected.  It can be overridden by the <code>--max-pack-size</code>
option of <a href="git-repack.html">git-repack(1)</a>.  Reaching this limit results
in the creation of multiple packfiles.</p>
<div class="paragraph">
<p>Note that this option is rarely useful, and may result in a larger total
on-disk size (because Git will not store deltas between packs) and
worse runtime performance (object lookup within multiple packs is
slower than a single pack, and optimizations like reachability bitmaps
cannot cope with multiple packs).</p>
</div>
<div class="paragraph">
<p>If you need to actively run Git using smaller packfiles (e.g., because your
filesystem does not support large files), this option may help. But if
your goal is to transmit a packfile over a medium that supports limited
sizes (e.g., removable media that cannot store the whole repository),
you are likely better off creating a single large packfile and splitting
it using a generic multi-volume archive tool (e.g., Unix <code>split</code>).</p>
</div>
<div class="paragraph">
<p>The minimum size allowed is limited to 1 MiB. The default is unlimited.
Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p>
</div>
</dd>
<dt class="hdlist1">pack.useBitmaps</dt>
<dd>
<p>When true, git will use pack bitmaps (if available) when packing
to stdout (e.g., during the server side of a fetch). Defaults to
true. You should not generally need to turn this off unless
you are debugging pack bitmaps.</p>
</dd>
<dt class="hdlist1">pack.useBitmapBoundaryTraversal</dt>
<dd>
<p>When true, Git will use an experimental algorithm for computing
reachability queries with bitmaps. Instead of building up
complete bitmaps for all of the negated tips and then OR-ing
them together, consider negated tips with existing bitmaps as
additive (i.e. OR-ing them into the result if they exist,
ignoring them otherwise), and build up a bitmap at the boundary
instead.</p>
<div class="paragraph">
<p>When using this algorithm, Git may include too many objects as a result
of not opening up trees belonging to certain UNINTERESTING commits. This
inexactness matches the non-bitmap traversal algorithm.</p>
</div>
<div class="paragraph">
<p>In many cases, this can provide a speed-up over the exact algorithm,
particularly when there is poor bitmap coverage of the negated side of
the query.</p>
</div>
</dd>
<dt class="hdlist1">pack.useSparse</dt>
<dd>
<p>When true, git will default to using the <em>--sparse</em> option in
<em>git pack-objects</em> when the <em>--revs</em> option is present. This
algorithm only walks trees that appear in paths that introduce new
objects. This can have significant performance benefits when
computing a pack to send a small change. However, it is possible
that extra objects are added to the pack-file if the included
commits contain certain types of direct renames. Default is
<code>true</code>.</p>
</dd>
<dt class="hdlist1">pack.usePathWalk</dt>
<dd>
<p>Enable the <code>--path-walk</code> option by default for <code>git</code> <code>pack-objects</code>
processes. See <a href="git-pack-objects.html">git-pack-objects(1)</a> for full details.</p>
</dd>
<dt class="hdlist1">pack.preferBitmapTips</dt>
<dd>
<p>When selecting which commits will receive bitmaps, prefer a
commit at the tip of any reference that is a suffix of any value
of this configuration over any other commits in the "selection
window".</p>
<div class="paragraph">
<p>Note that setting this configuration to <code>refs/foo</code> does not mean that
the commits at the tips of <code>refs/foo/bar</code> and <code>refs/foo/baz</code> will
necessarily be selected. This is because commits are selected for
bitmaps from within a series of windows of variable length.</p>
</div>
<div class="paragraph">
<p>If a commit at the tip of any reference which is a suffix of any value
of this configuration is seen in a window, it is immediately given
preference over any other commit in that window.</p>
</div>
</dd>
<dt class="hdlist1">pack.writeBitmaps (deprecated)</dt>
<dd>
<p>This is a deprecated synonym for <code>repack.writeBitmaps</code>.</p>
</dd>
<dt class="hdlist1">pack.writeBitmapHashCache</dt>
<dd>
<p>When true, git will include a "hash cache" section in the bitmap
index (if one is written). This cache can be used to feed git&#8217;s
delta heuristics, potentially leading to better deltas between
bitmapped and non-bitmapped objects (e.g., when serving a fetch
between an older, bitmapped pack and objects that have been
pushed since the last gc). The downside is that it consumes 4
bytes per object of disk space. Defaults to true.</p>
<div class="paragraph">
<p>When writing a multi-pack reachability bitmap, no new namehashes are
computed; instead, any namehashes stored in an existing bitmap are
permuted into their appropriate location when writing a new bitmap.</p>
</div>
</dd>
<dt class="hdlist1">pack.writeBitmapLookupTable</dt>
<dd>
<p>When true, Git will include a "lookup table" section in the
bitmap index (if one is written). This table is used to defer
loading individual bitmaps as late as possible. This can be
beneficial in repositories that have relatively large bitmap
indexes. Defaults to false.</p>
</dd>
<dt class="hdlist1">pack.readReverseIndex</dt>
<dd>
<p>When true, git will read any .rev file(s) that may be available
(see: <a href="gitformat-pack.html">gitformat-pack(5)</a>). When false, the reverse index
will be generated from scratch and stored in memory. Defaults to
true.</p>
</dd>
<dt class="hdlist1">pack.writeReverseIndex</dt>
<dd>
<p>When true, git will write a corresponding .rev file (see:
<a href="gitformat-pack.html">gitformat-pack(5)</a>)
for each new packfile that it writes in all places except for
<a href="git-fast-import.html">git-fast-import(1)</a> and in the bulk checkin mechanism.
Defaults to true.</p>
</dd>
<dt class="hdlist1">pager.&lt;cmd&gt;</dt>
<dd>
<p>If the value is boolean, turns on or off pagination of the
output of a particular Git subcommand when writing to a tty.
Otherwise, turns on pagination for the subcommand using the
pager specified by the value of <code>pager.</code><em>&lt;cmd&gt;</em>.  If <code>--paginate</code>
or <code>--no-pager</code> is specified on the command line, it takes
precedence over this option.  To disable pagination for all
commands, set <code>core.pager</code> or <code>GIT_PAGER</code> to <code>cat</code>.</p>
</dd>
<dt class="hdlist1">pretty.&lt;name&gt;</dt>
<dd>
<p>Alias for a --pretty= format string, as specified in
<a href="git-log.html">git-log(1)</a>. Any aliases defined here can be used just
as the built-in pretty formats could. For example,
running <code>git</code> <code>config</code> <code>pretty.changelog</code> "format:* <code>%H</code> <code>%s</code>"
would cause the invocation <code>git</code> <code>log</code> <code>--pretty=changelog</code>
to be equivalent to running <code>git</code> <code>log</code> "--pretty=format:* <code>%H</code> <code>%s</code>".
Note that an alias with the same name as a built-in format
will be silently ignored.</p>
</dd>
<dt class="hdlist1">promisor.quiet</dt>
<dd>
<p>If set to "true" assume <code>--quiet</code> when fetching additional
objects for a partial clone.</p>
</dd>
<dt class="hdlist1">promisor.advertise</dt>
<dd>
<p>If set to "true", a server will use the "promisor-remote"
capability, see <a href="gitprotocol-v2.html">gitprotocol-v2(5)</a>, to advertise the
promisor remotes it is using, if it uses some. Default is
"false", which means the "promisor-remote" capability is not
advertised.</p>
</dd>
<dt class="hdlist1">promisor.acceptFromServer</dt>
<dd>
<p>If set to "all", a client will accept all the promisor remotes
a server might advertise using the "promisor-remote"
capability. If set to "knownName" the client will accept
promisor remotes which are already configured on the client
and have the same name as those advertised by the client. This
is not very secure, but could be used in a corporate setup
where servers and clients are trusted to not switch name and
URLs. If set to "knownUrl", the client will accept promisor
remotes which have both the same name and the same URL
configured on the client as the name and URL advertised by the
server. This is more secure than "all" or "knownName", so it
should be used if possible instead of those options. Default
is "none", which means no promisor remote advertised by a
server will be accepted. By accepting a promisor remote, the
client agrees that the server might omit objects that are
lazily fetchable from this promisor remote from its responses
to "fetch" and "clone" requests from the client. Name and URL
comparisons are case sensitive. See <a href="gitprotocol-v2.html">gitprotocol-v2(5)</a>.</p>
</dd>
<dt class="hdlist1">protocol.allow</dt>
<dd>
<p>If set, provide a user defined default policy for all protocols which
don&#8217;t explicitly have a policy (<code>protocol.</code><em>&lt;name&gt;</em><code>.allow</code>).  By default,
if unset, known-safe protocols (http, https, git, ssh) have a
default policy of <code>always</code>, known-dangerous protocols (ext) have a
default policy of <code>never</code>, and all other protocols (including file)
have a default policy of <code>user</code>.  Supported policies:</p>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>always</code> - protocol is always able to be used.</p>
</li>
<li>
<p><code>never</code> - protocol is never able to be used.</p>
</li>
<li>
<p><code>user</code> - protocol is only able to be used when <code>GIT_PROTOCOL_FROM_USER</code> is
either unset or has a value of 1.  This policy should be used when you want a
protocol to be directly usable by the user but don&#8217;t want it used by commands which
execute clone/fetch/push commands without user input, e.g. recursive
submodule initialization.</p>
</li>
</ul>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">protocol.&lt;name&gt;.allow</dt>
<dd>
<p>Set a policy to be used by protocol <em>&lt;name&gt;</em> with clone/fetch/push
commands. See <code>protocol.allow</code> above for the available policies.</p>
<div class="paragraph">
<p>The protocol names currently used by git are:</p>
</div>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>file</code>: any local file-based path (including <code>file://</code> URLs,
or local paths)</p>
</li>
<li>
<p><code>git</code>: the anonymous git protocol over a direct TCP
connection (or proxy, if configured)</p>
</li>
<li>
<p><code>ssh</code>: git over ssh (including <code>host:path</code> syntax,
<code>ssh://</code>, etc).</p>
</li>
<li>
<p><code>http</code>: git over http, both "smart http" and "dumb http".
Note that this does <em>not</em> include <code>https</code>; if you want to configure
both, you must do so individually.</p>
</li>
<li>
<p>any external helpers are named by their protocol (e.g., use
<code>hg</code> to allow the <code>git-remote-hg</code> helper)</p>
</li>
</ul>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">protocol.version</dt>
<dd>
<p>If set, clients will attempt to communicate with a server
using the specified protocol version.  If the server does
not support it, communication falls back to version 0.
If unset, the default is <code>2</code>.
Supported versions:</p>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>0</code> - the original wire protocol.</p>
</li>
<li>
<p><code>1</code> - the original wire protocol with the addition of a version string
in the initial response from the server.</p>
</li>
<li>
<p><code>2</code> - Wire protocol version 2, see <a href="gitprotocol-v2.html">gitprotocol-v2(5)</a>.</p>
</li>
</ul>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">pull.ff</dt>
<dd>
<p>By default, Git does not create an extra merge commit when merging
a commit that is a descendant of the current commit. Instead, the
tip of the current branch is fast-forwarded. When set to <code>false</code>,
this variable tells Git to create an extra merge commit in such
a case (equivalent to giving the <code>--no-ff</code> option from the command
line). When set to <code>only</code>, only such fast-forward merges are
allowed (equivalent to giving the <code>--ff-only</code> option from the
command line). This setting overrides <code>merge.ff</code> when pulling.</p>
</dd>
<dt class="hdlist1">pull.rebase</dt>
<dd>
<p>When true, rebase branches on top of the fetched branch, instead
of merging the default branch from the default remote when "git
pull" is run. See "branch.&lt;name&gt;.rebase" for setting this on a
per-branch basis.</p>
<div class="paragraph">
<p>When <code>merges</code> (or just <em>m</em>), pass the <code>--rebase-merges</code> option to <em>git rebase</em>
so that the local merge commits are included in the rebase (see
<a href="git-rebase.html">git-rebase(1)</a> for details).</p>
</div>
<div class="paragraph">
<p>When the value is <code>interactive</code> (or just <em>i</em>), the rebase is run in interactive
mode.</p>
</div>
<div class="paragraph">
<p><strong>NOTE</strong>: this is a possibly dangerous operation; do <strong>not</strong> use
it unless you understand the implications (see <a href="git-rebase.html">git-rebase(1)</a>
for details).</p>
</div>
</dd>
<dt class="hdlist1">pull.octopus</dt>
<dd>
<p>The default merge strategy to use when pulling multiple branches
at once.</p>
</dd>
<dt class="hdlist1">pull.autoStash</dt>
<dd>
<p>When set to true, automatically create a temporary stash entry
to record the local changes before the operation begins, and
restore them after the operation completes.  When your "git
pull" rebases (instead of merges), this may be convenient, since
unlike merging pull that tolerates local changes that do not
interfere with the merge, rebasing pull refuses to work with any
local changes.</p>
<div class="paragraph">
<p>If <code>pull.autostash</code> is set (either to true or false),
<code>merge.autostash</code> and <code>rebase.autostash</code> are ignored.  If
<code>pull.autostash</code> is not set at all, depending on the value of
<code>pull.rebase</code>, <code>merge.autostash</code> or <code>rebase.autostash</code> is used
instead.  Can be overridden by the <code>--</code>[<code>no-</code>]<code>autostash</code> command line
option.</p>
</div>
</dd>
<dt class="hdlist1">pull.twohead</dt>
<dd>
<p>The default merge strategy to use when pulling a single branch.</p>
</dd>
<dt class="hdlist1">push.autoSetupRemote</dt>
<dd>
<p>If set to "true" assume <code>--set-upstream</code> on default push when no
upstream tracking exists for the current branch; this option
takes effect with push.default options <em>simple</em>, <em>upstream</em>,
and <em>current</em>. It is useful if by default you want new branches
to be pushed to the default remote (like the behavior of
<em>push.default=current</em>) and you also want the upstream tracking
to be set. Workflows most likely to benefit from this option are
<em>simple</em> central workflows where all branches are expected to
have the same name on the remote.</p>
</dd>
<dt class="hdlist1">push.default</dt>
<dd>
<p>Defines the action <code>git</code> <code>push</code> should take if no refspec is
given (whether from the command-line, config, or elsewhere).
Different values are well-suited for
specific workflows; for instance, in a purely central workflow
(i.e. the fetch source is equal to the push destination),
<code>upstream</code> is probably what you want.  Possible values are:</p>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>nothing</code> - do not push anything (error out) unless a refspec is
given. This is primarily meant for people who want to
avoid mistakes by always being explicit.</p>
</li>
<li>
<p><code>current</code> - push the current branch to update a branch with the same
name on the receiving end.  Works in both central and non-central
workflows.</p>
</li>
<li>
<p><code>upstream</code> - push the current branch back to the branch whose
changes are usually integrated into the current branch (which is
called <code>@</code>{upstream}).  This mode only makes sense if you are
pushing to the same repository you would normally pull from
(i.e. central workflow).</p>
</li>
<li>
<p><code>tracking</code> - This is a deprecated synonym for <code>upstream</code>.</p>
</li>
<li>
<p><code>simple</code> - push the current branch with the same name on the remote.</p>
<div class="paragraph">
<p>If you are working on a centralized workflow (pushing to the same repository you
pull from, which is typically <code>origin</code>), then you need to configure an upstream
branch with the same name.</p>
</div>
<div class="paragraph">
<p>This mode is the default since Git 2.0, and is the safest option suited for
beginners.</p>
</div>
</li>
<li>
<p><code>matching</code> - push all branches having the same name on both ends.
This makes the repository you are pushing to remember the set of
branches that will be pushed out (e.g. if you always push <em>maint</em>
and <em>master</em> there and no other branches, the repository you push
to will have these two branches, and your local <em>maint</em> and
<em>master</em> will be pushed there).</p>
<div class="paragraph">
<p>To use this mode effectively, you have to make sure <em>all</em> the
branches you would push out are ready to be pushed out before
running <em>git push</em>, as the whole point of this mode is to allow you
to push all of the branches in one go.  If you usually finish work
on only one branch and push out the result, while other branches are
unfinished, this mode is not for you.  Also this mode is not
suitable for pushing into a shared central repository, as other
people may add new branches there, or update the tip of existing
branches outside your control.</p>
</div>
<div class="paragraph">
<p>This used to be the default, but not since Git 2.0 (<code>simple</code> is the
new default).</p>
</div>
</li>
</ul>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">push.followTags</dt>
<dd>
<p>If set to true, enable <code>--follow-tags</code> option by default.  You
may override this configuration at time of push by specifying
<code>--no-follow-tags</code>.</p>
</dd>
<dt class="hdlist1">push.gpgSign</dt>
<dd>
<p>May be set to a boolean value, or the string <em>if-asked</em>. A true
value causes all pushes to be GPG signed, as if <code>--signed</code> is
passed to <a href="git-push.html">git-push(1)</a>. The string <em>if-asked</em> causes
pushes to be signed if the server supports it, as if
<code>--signed=if-asked</code> is passed to <em>git push</em>. A false value may
override a value from a lower-priority config file. An explicit
command-line flag always overrides this config option.</p>
</dd>
<dt class="hdlist1">push.pushOption</dt>
<dd>
<p>When no <code>--push-option=</code><em>&lt;option&gt;</em> argument is given from the
command line, <code>git</code> <code>push</code> behaves as if each &lt;value&gt; of
this variable is given as <code>--push-option=</code><em>&lt;value&gt;</em>.</p>
<div class="paragraph">
<p>This is a multi-valued variable, and an empty value can be used in a
higher priority configuration file (e.g. .<code>git/config</code> in a
repository) to clear the values inherited from a lower priority
configuration files (e.g. <code>$HOME/.gitconfig</code>).</p>
</div>
<div class="listingblock">
<div class="content">
<pre>Example:

/etc/gitconfig
  push.pushoption = a
  push.pushoption = b

~/.gitconfig
  push.pushoption = c

repo/.git/config
  push.pushoption =
  push.pushoption = b

This will result in only b (a and c are cleared).</pre>
</div>
</div>
</dd>
<dt class="hdlist1">push.recurseSubmodules</dt>
<dd>
<p>May be "check", "on-demand", "only", or "no", with the same behavior
as that of "push --recurse-submodules".
If not set, <em>no</em> is used by default, unless <em>submodule.recurse</em> is
set (in which case a <em>true</em> value means <em>on-demand</em>).</p>
</dd>
<dt class="hdlist1">push.useForceIfIncludes</dt>
<dd>
<p>If set to "true", it is equivalent to specifying
<code>--force-if-includes</code> as an option to <a href="git-push.html">git-push(1)</a>
in the command line. Adding <code>--no-force-if-includes</code> at the
time of push overrides this configuration setting.</p>
</dd>
<dt class="hdlist1">push.negotiate</dt>
<dd>
<p>If set to "true", attempt to reduce the size of the packfile
sent by rounds of negotiation in which the client and the
server attempt to find commits in common. If "false", Git will
rely solely on the server&#8217;s ref advertisement to find commits
in common.</p>
</dd>
<dt class="hdlist1">push.useBitmaps</dt>
<dd>
<p>If set to "false", disable use of bitmaps for "git push" even if
<code>pack.useBitmaps</code> is "true", without preventing other git operations
from using bitmaps. Default is true.</p>
</dd>
<dt class="hdlist1">rebase.backend</dt>
<dd>
<p>Default backend to use for rebasing.  Possible choices are
<em>apply</em> or <em>merge</em>.  In the future, if the merge backend gains
all remaining capabilities of the apply backend, this setting
may become unused.</p>
</dd>
<dt class="hdlist1">rebase.stat</dt>
<dd>
<p>Whether to show a diffstat of what changed upstream since the last
rebase. False by default.</p>
</dd>
<dt class="hdlist1">rebase.autoSquash</dt>
<dd>
<p>If set to true, enable the <code>--autosquash</code> option of
<a href="git-rebase.html">git-rebase(1)</a> by default for interactive mode.
This can be overridden with the <code>--no-autosquash</code> option.</p>
</dd>
<dt class="hdlist1">rebase.autoStash</dt>
<dd>
<p>When set to true, automatically create a temporary stash entry
before the operation begins, and apply it after the operation
ends.  This means that you can run rebase on a dirty worktree.
However, use with care: the final stash application after a
successful rebase might result in non-trivial conflicts.
This option can be overridden by the <code>--no-autostash</code> and
<code>--autostash</code> options of <a href="git-rebase.html">git-rebase(1)</a>.
Defaults to false.</p>
</dd>
<dt class="hdlist1">rebase.updateRefs</dt>
<dd>
<p>If set to true enable <code>--update-refs</code> option by default.</p>
</dd>
<dt class="hdlist1">rebase.missingCommitsCheck</dt>
<dd>
<p>If set to "warn", git rebase -i will print a warning if some
commits are removed (e.g. a line was deleted), however the
rebase will still proceed. If set to "error", it will print
the previous warning and stop the rebase, <em>git rebase
--edit-todo</em> can then be used to correct the error. If set to
"ignore", no checking is done.
To drop a commit without warning or error, use the <code>drop</code>
command in the todo list.
Defaults to "ignore".</p>
</dd>
<dt class="hdlist1">rebase.instructionFormat</dt>
<dd>
<p>A format string, as specified in <a href="git-log.html">git-log(1)</a>, to be used for the
todo list during an interactive rebase.  The format will
automatically have the commit hash prepended to the format.</p>
</dd>
<dt class="hdlist1">rebase.abbreviateCommands</dt>
<dd>
<p>If set to true, <code>git</code> <code>rebase</code> will use abbreviated command names in the
todo list resulting in something like this:</p>
<div class="listingblock">
<div class="content">
<pre>        p deadbee The oneline of the commit
        p fa1afe1 The oneline of the next commit
        ...</pre>
</div>
</div>
<div class="paragraph">
<p>instead of:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>        pick deadbee The oneline of the commit
        pick fa1afe1 The oneline of the next commit
        ...</pre>
</div>
</div>
<div class="paragraph">
<p>Defaults to false.</p>
</div>
</dd>
<dt class="hdlist1">rebase.rescheduleFailedExec</dt>
<dd>
<p>Automatically reschedule <code>exec</code> commands that failed. This only makes
sense in interactive mode (or when an <code>--exec</code> option was provided).
This is the same as specifying the <code>--reschedule-failed-exec</code> option.</p>
</dd>
<dt class="hdlist1">rebase.forkPoint</dt>
<dd>
<p>If set to false set <code>--no-fork-point</code> option by default.</p>
</dd>
<dt class="hdlist1">rebase.rebaseMerges</dt>
<dd>
<p>Whether and how to set the <code>--rebase-merges</code> option by default. Can
be <code>rebase-cousins</code>, <code>no-rebase-cousins</code>, or a boolean. Setting to
true or to <code>no-rebase-cousins</code> is equivalent to
<code>--rebase-merges=no-rebase-cousins</code>, setting to <code>rebase-cousins</code> is
equivalent to <code>--rebase-merges=rebase-cousins</code>, and setting to false is
equivalent to <code>--no-rebase-merges</code>. Passing <code>--rebase-merges</code> on the
command line, with or without an argument, overrides any
<code>rebase.rebaseMerges</code> configuration.</p>
</dd>
<dt class="hdlist1">rebase.maxLabelLength</dt>
<dd>
<p>When generating label names from commit subjects, truncate the names to
this length. By default, the names are truncated to a little less than
<code>NAME_MAX</code> (to allow e.g. .<code>lock</code> files to be written for the
corresponding loose refs).</p>
</dd>
<dt class="hdlist1">receive.advertiseAtomic</dt>
<dd>
<p>By default, git-receive-pack will advertise the atomic push
capability to its clients. If you don&#8217;t want to advertise this
capability, set this variable to false.</p>
</dd>
<dt class="hdlist1">receive.advertisePushOptions</dt>
<dd>
<p>When set to true, git-receive-pack will advertise the push options
capability to its clients. False by default.</p>
</dd>
<dt class="hdlist1">receive.autogc</dt>
<dd>
<p>By default, git-receive-pack will run "git maintenance run --auto" after
receiving data from git-push and updating refs.  You can stop
it by setting this variable to false.</p>
</dd>
<dt class="hdlist1">receive.certNonceSeed</dt>
<dd>
<p>By setting this variable to a string, <code>git</code> <code>receive-pack</code>
will accept a <code>git</code> <code>push</code> <code>--signed</code> and verify it by using
a "nonce" protected by HMAC using this string as a secret
key.</p>
</dd>
<dt class="hdlist1">receive.certNonceSlop</dt>
<dd>
<p>When a <code>git</code> <code>push</code> <code>--signed</code> sends a push certificate with a
"nonce" that was issued by a receive-pack serving the same
repository within this many seconds, export the "nonce"
found in the certificate to <code>GIT_PUSH_CERT_NONCE</code> to the
hooks (instead of what the receive-pack asked the sending
side to include).  This may allow writing checks in
<code>pre-receive</code> and <code>post-receive</code> a bit easier.  Instead of
checking <code>GIT_PUSH_CERT_NONCE_SLOP</code> environment variable
that records by how many seconds the nonce is stale to
decide if they want to accept the certificate, they only
can check <code>GIT_PUSH_CERT_NONCE_STATUS</code> is <code>OK</code>.</p>
</dd>
<dt class="hdlist1">receive.fsckObjects</dt>
<dd>
<p>If it is set to true, git-receive-pack will check all received
objects. See <code>transfer.fsckObjects</code> for what&#8217;s checked.
Defaults to false. If not set, the value of
<code>transfer.fsckObjects</code> is used instead.</p>
</dd>
<dt class="hdlist1">receive.fsck.&lt;msg-id&gt;</dt>
<dd>
<p>Acts like <code>fsck.</code><em>&lt;msg-id&gt;</em>, but is used by
<a href="git-receive-pack.html">git-receive-pack(1)</a> instead of
<a href="git-fsck.html">git-fsck(1)</a>. See the <code>fsck.</code><em>&lt;msg-id&gt;</em> documentation for
details.</p>
</dd>
<dt class="hdlist1">receive.fsck.skipList</dt>
<dd>
<p>Acts like <code>fsck.skipList</code>, but is used by
<a href="git-receive-pack.html">git-receive-pack(1)</a> instead of
<a href="git-fsck.html">git-fsck(1)</a>. See the <code>fsck.skipList</code> documentation for
details.</p>
</dd>
<dt class="hdlist1">receive.keepAlive</dt>
<dd>
<p>After receiving the pack from the client, <code>receive-pack</code> may
produce no output (if <code>--quiet</code> was specified) while processing
the pack, causing some networks to drop the TCP connection.
With this option set, if <code>receive-pack</code> does not transmit
any data in this phase for <code>receive.keepAlive</code> seconds, it will
send a short keepalive packet.  The default is 5 seconds; set
to 0 to disable keepalives entirely.</p>
</dd>
<dt class="hdlist1">receive.unpackLimit</dt>
<dd>
<p>If the number of objects received in a push is below this
limit then the objects will be unpacked into loose object
files. However if the number of received objects equals or
exceeds this limit then the received pack will be stored as
a pack, after adding any missing delta bases.  Storing the
pack from a push can make the push operation complete faster,
especially on slow filesystems.  If not set, the value of
<code>transfer.unpackLimit</code> is used instead.</p>
</dd>
<dt class="hdlist1">receive.maxInputSize</dt>
<dd>
<p>If the size of the incoming pack stream is larger than this
limit, then git-receive-pack will error out, instead of
accepting the pack file. If not set or set to 0, then the size
is unlimited.</p>
</dd>
<dt class="hdlist1">receive.denyDeletes</dt>
<dd>
<p>If set to true, git-receive-pack will deny a ref update that deletes
the ref. Use this to prevent such a ref deletion via a push.</p>
</dd>
<dt class="hdlist1">receive.denyDeleteCurrent</dt>
<dd>
<p>If set to true, git-receive-pack will deny a ref update that
deletes the currently checked out branch of a non-bare repository.</p>
</dd>
<dt class="hdlist1">receive.denyCurrentBranch</dt>
<dd>
<p>If set to true or "refuse", git-receive-pack will deny a ref update
to the currently checked out branch of a non-bare repository.
Such a push is potentially dangerous because it brings the HEAD
out of sync with the index and working tree. If set to "warn",
print a warning of such a push to stderr, but allow the push to
proceed. If set to false or "ignore", allow such pushes with no
message. Defaults to "refuse".</p>
<div class="paragraph">
<p>Another option is "updateInstead" which will update the working
tree if pushing into the current branch.  This option is
intended for synchronizing working directories when one side is not easily
accessible via interactive ssh (e.g. a live web site, hence the requirement
that the working directory be clean). This mode also comes in handy when
developing inside a VM to test and fix code on different Operating Systems.</p>
</div>
<div class="paragraph">
<p>By default, "updateInstead" will refuse the push if the working tree or
the index have any difference from the HEAD, but the <code>push-to-checkout</code>
hook can be used to customize this.  See <a href="githooks.html">githooks(5)</a>.</p>
</div>
</dd>
<dt class="hdlist1">receive.denyNonFastForwards</dt>
<dd>
<p>If set to true, git-receive-pack will deny a ref update which is
not a fast-forward. Use this to prevent such an update via a push,
even if that push is forced. This configuration variable is
set when initializing a shared repository.</p>
</dd>
<dt class="hdlist1">receive.hideRefs</dt>
<dd>
<p>This variable is the same as <code>transfer.hideRefs</code>, but applies
only to <code>receive-pack</code> (and so affects pushes, but not fetches).
An attempt to update or delete a hidden ref by <code>git</code> <code>push</code> is
rejected.</p>
</dd>
<dt class="hdlist1">receive.procReceiveRefs</dt>
<dd>
<p>This is a multi-valued variable that defines reference prefixes
to match the commands in <code>receive-pack</code>.  Commands matching the
prefixes will be executed by an external hook "proc-receive",
instead of the internal <code>execute_commands</code> function.  If this
variable is not defined, the "proc-receive" hook will never be
used, and all commands will be executed by the internal
<code>execute_commands</code> function.</p>
<div class="paragraph">
<p>For example, if this variable is set to "refs/for", pushing to reference
such as "refs/for/master" will not create or update a reference named
"refs/for/master", but may create or update a pull request directly by
running the hook "proc-receive".</p>
</div>
<div class="paragraph">
<p>Optional modifiers can be provided in the beginning of the value to filter
commands for specific actions: create (a), modify (m), delete (d).
A ! can be included in the modifiers to negate the reference prefix entry.
E.g.:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>git config --system --add receive.procReceiveRefs ad:refs/heads
git config --system --add receive.procReceiveRefs !:refs/heads</pre>
</div>
</div>
</dd>
<dt class="hdlist1">receive.updateServerInfo</dt>
<dd>
<p>If set to true, git-receive-pack will run git-update-server-info
after receiving data from git-push and updating refs.</p>
</dd>
<dt class="hdlist1">receive.shallowUpdate</dt>
<dd>
<p>If set to true, .git/shallow can be updated when new refs
require new shallow roots. Otherwise those refs are rejected.</p>
</dd>
<dt class="hdlist1">reftable.blockSize</dt>
<dd>
<p>The size in bytes used by the reftable backend when writing blocks.
The block size is determined by the writer, and does not have to be a
power of 2. The block size must be larger than the longest reference
name or log entry used in the repository, as references cannot span
blocks.</p>
<div class="paragraph">
<p>Powers of two that are friendly to the virtual memory system or
filesystem (such as 4kB or 8kB) are recommended. Larger sizes (64kB) can
yield better compression, with a possible increased cost incurred by
readers during access.</p>
</div>
<div class="paragraph">
<p>The largest block size is <code>16777215</code> bytes (15.99 MiB). The default value is
<code>4096</code> bytes (4kB). A value of <code>0</code> will use the default value.</p>
</div>
</dd>
<dt class="hdlist1">reftable.restartInterval</dt>
<dd>
<p>The interval at which to create restart points. The reftable backend
determines the restart points at file creation. Every 16 may be
more suitable for smaller block sizes (4k or 8k), every 64 for larger
block sizes (64k).</p>
<div class="paragraph">
<p>More frequent restart points reduces prefix compression and increases
space consumed by the restart table, both of which increase file size.</p>
</div>
<div class="paragraph">
<p>Less frequent restart points makes prefix compression more effective,
decreasing overall file size, with increased penalties for readers
walking through more records after the binary search step.</p>
</div>
<div class="paragraph">
<p>A maximum of <code>65535</code> restart points per block is supported.</p>
</div>
<div class="paragraph">
<p>The default value is to create restart points every 16 records. A value of <code>0</code>
will use the default value.</p>
</div>
</dd>
<dt class="hdlist1">reftable.indexObjects</dt>
<dd>
<p>Whether the reftable backend shall write object blocks. Object blocks
are a reverse mapping of object ID to the references pointing to them.</p>
<div class="paragraph">
<p>The default value is <code>true</code>.</p>
</div>
</dd>
<dt class="hdlist1">reftable.geometricFactor</dt>
<dd>
<p>Whenever the reftable backend appends a new table to the stack, it
performs auto compaction to ensure that there is only a handful of
tables. The backend does this by ensuring that tables form a geometric
sequence regarding the respective sizes of each table.</p>
<div class="paragraph">
<p>By default, the geometric sequence uses a factor of 2, meaning that for any
table, the next-biggest table must at least be twice as big. A maximum factor
of 256 is supported.</p>
</div>
</dd>
<dt class="hdlist1">reftable.lockTimeout</dt>
<dd>
<p>Whenever the reftable backend appends a new table to the stack, it has
to lock the central "tables.list" file before updating it. This config
controls how long the process will wait to acquire the lock in case
another process has already acquired it. Value 0 means not to retry at
all; -1 means to try indefinitely. Default is 100 (i.e., retry for
100ms).</p>
</dd>
<dt class="hdlist1">remote.pushDefault</dt>
<dd>
<p>The remote to push to by default.  Overrides
<code>branch.</code><em>&lt;name&gt;</em><code>.remote</code> for all branches, and is overridden by
<code>branch.</code><em>&lt;name&gt;</em><code>.pushRemote</code> for specific branches.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.url</dt>
<dd>
<p>The URL of a remote repository.  See <a href="git-fetch.html">git-fetch(1)</a> or
<a href="git-push.html">git-push(1)</a>. A configured remote can have multiple URLs;
in this case the first is used for fetching, and all are used
for pushing (assuming no <code>remote.</code><em>&lt;name&gt;</em><code>.pushurl</code> is defined).
Setting this key to the empty string clears the list of urls,
allowing you to override earlier config.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.pushurl</dt>
<dd>
<p>The push URL of a remote repository.  See <a href="git-push.html">git-push(1)</a>.
If a <code>pushurl</code> option is present in a configured remote, it
is used for pushing instead of <code>remote.</code><em>&lt;name&gt;</em><code>.url</code>. A configured
remote can have multiple push URLs; in this case a push goes to
all of them. Setting this key to the empty string clears the
list of urls, allowing you to override earlier config.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.proxy</dt>
<dd>
<p>For remotes that require curl (http, https and ftp), the URL to
the proxy to use for that remote.  Set to the empty string to
disable proxying for that remote.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.proxyAuthMethod</dt>
<dd>
<p>For remotes that require curl (http, https and ftp), the method to use for
authenticating against the proxy in use (probably set in
<code>remote.</code><em>&lt;name&gt;</em><code>.proxy</code>). See <code>http.proxyAuthMethod</code>.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.fetch</dt>
<dd>
<p>The default set of "refspec" for <a href="git-fetch.html">git-fetch(1)</a>. See
<a href="git-fetch.html">git-fetch(1)</a>.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.push</dt>
<dd>
<p>The default set of "refspec" for <a href="git-push.html">git-push(1)</a>. See
<a href="git-push.html">git-push(1)</a>.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.mirror</dt>
<dd>
<p>If true, pushing to this remote will automatically behave
as if the <code>--mirror</code> option was given on the command line.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.skipDefaultUpdate</dt>
<dd>
<p>A deprecated synonym to <code>remote.</code><em>&lt;name&gt;</em><code>.skipFetchAll</code> (if
both are set in the configuration files with different
values, the value of the last occurrence will be used).</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.skipFetchAll</dt>
<dd>
<p>If true, this remote will be skipped when updating
using <a href="git-fetch.html">git-fetch(1)</a>, the <code>update</code> subcommand of
<a href="git-remote.html">git-remote(1)</a>, and ignored by the prefetch task
of <code>git</code> <code>maintenance</code>.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.receivepack</dt>
<dd>
<p>The default program to execute on the remote side when pushing.  See
option --receive-pack of <a href="git-push.html">git-push(1)</a>.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.uploadpack</dt>
<dd>
<p>The default program to execute on the remote side when fetching.  See
option --upload-pack of <a href="git-fetch-pack.html">git-fetch-pack(1)</a>.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.tagOpt</dt>
<dd>
<p>Setting this value to --no-tags disables automatic tag following when
fetching from remote &lt;name&gt;. Setting it to --tags will fetch every
tag from remote &lt;name&gt;, even if they are not reachable from remote
branch heads. Passing these flags directly to <a href="git-fetch.html">git-fetch(1)</a> can
override this setting. See options --tags and --no-tags of
<a href="git-fetch.html">git-fetch(1)</a>.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.vcs</dt>
<dd>
<p>Setting this to a value &lt;vcs&gt; will cause Git to interact with
the remote with the git-remote-&lt;vcs&gt; helper.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.prune</dt>
<dd>
<p>When set to true, fetching from this remote by default will also
remove any remote-tracking references that no longer exist on the
remote (as if the <code>--prune</code> option was given on the command line).
Overrides <code>fetch.prune</code> settings, if any.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.pruneTags</dt>
<dd>
<p>When set to true, fetching from this remote by default will also
remove any local tags that no longer exist on the remote if pruning
is activated in general via <code>remote.</code><em>&lt;name&gt;</em><code>.prune</code>, <code>fetch.prune</code> or
<code>--prune</code>. Overrides <code>fetch.pruneTags</code> settings, if any.</p>
<div class="paragraph">
<p>See also <code>remote.</code><em>&lt;name&gt;</em><code>.prune</code> and the PRUNING section of
<a href="git-fetch.html">git-fetch(1)</a>.</p>
</div>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.promisor</dt>
<dd>
<p>When set to true, this remote will be used to fetch promisor
objects.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.partialclonefilter</dt>
<dd>
<p>The filter that will be applied when fetching from this	promisor remote.
Changing or clearing this value will only affect fetches for new commits.
To fetch associated objects for commits already present in the local object
database, use the <code>--refetch</code> option of <a href="git-fetch.html">git-fetch(1)</a>.</p>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.serverOption</dt>
<dd>
<p>The default set of server options used when fetching from this remote.
These server options can be overridden by the <code>--server-option=</code> command
line arguments.</p>
<div class="paragraph">
<p>This is a multi-valued variable, and an empty value can be used in a higher
priority configuration file (e.g. .<code>git/config</code> in a repository) to clear
the values inherited from a lower priority configuration files (e.g.
<code>$HOME/.gitconfig</code>).</p>
</div>
</dd>
<dt class="hdlist1">remote.&lt;name&gt;.followRemoteHEAD</dt>
<dd>
<p>How <a href="git-fetch.html">git-fetch(1)</a> should handle updates to <code>remotes/</code><em>&lt;name&gt;</em><code>/HEAD</code>
when fetching using the configured refspecs of a remote.
The default value is "create", which will create <code>remotes/</code><em>&lt;name&gt;</em><code>/HEAD</code>
if it exists on the remote, but not locally; this will not touch an
already existing local reference. Setting it to "warn" will print
a message if the remote has a different value than the local one;
in case there is no local reference, it behaves like "create".
A variant on "warn" is "warn-if-not-$branch", which behaves like
"warn", but if <code>HEAD</code> on the remote is <code>$branch</code> it will be silent.
Setting it to "always" will silently update <code>remotes/</code><em>&lt;name&gt;</em><code>/HEAD</code> to
the value on the remote.  Finally, setting it to "never" will never
change or create the local reference.</p>
</dd>
<dt class="hdlist1">remotes.&lt;group&gt;</dt>
<dd>
<p>The list of remotes which are fetched by "git remote update
&lt;group&gt;".  See <a href="git-remote.html">git-remote(1)</a>.</p>
</dd>
<dt class="hdlist1">repack.useDeltaBaseOffset</dt>
<dd>
<p>By default, <a href="git-repack.html">git-repack(1)</a> creates packs that use
delta-base offset. If you need to share your repository with
Git older than version 1.4.4, either directly or via a dumb
protocol such as http, then you need to set this option to
"false" and repack. Access from old Git versions over the
native protocol are unaffected by this option.</p>
</dd>
<dt class="hdlist1">repack.packKeptObjects</dt>
<dd>
<p>If set to true, makes <code>git</code> <code>repack</code> act as if
<code>--pack-kept-objects</code> was passed. See <a href="git-repack.html">git-repack(1)</a> for
details. Defaults to <code>false</code> normally, but <code>true</code> if a bitmap
index is being written (either via <code>--write-bitmap-index</code> or
<code>repack.writeBitmaps</code>).</p>
</dd>
<dt class="hdlist1">repack.useDeltaIslands</dt>
<dd>
<p>If set to true, makes <code>git</code> <code>repack</code> act as if <code>--delta-islands</code>
was passed. Defaults to <code>false</code>.</p>
</dd>
<dt class="hdlist1">repack.writeBitmaps</dt>
<dd>
<p>When true, git will write a bitmap index when packing all
objects to disk (e.g., when <code>git</code> <code>repack</code> <code>-a</code> is run).  This
index can speed up the "counting objects" phase of subsequent
packs created for clones and fetches, at the cost of some disk
space and extra time spent on the initial repack.  This has
no effect if multiple packfiles are created.
Defaults to true on bare repos, false otherwise.</p>
</dd>
<dt class="hdlist1">repack.updateServerInfo</dt>
<dd>
<p>If set to false, <a href="git-repack.html">git-repack(1)</a> will not run
<a href="git-update-server-info.html">git-update-server-info(1)</a>. Defaults to true. Can be overridden
when true by the <code>-n</code> option of <a href="git-repack.html">git-repack(1)</a>.</p>
</dd>
<dt class="hdlist1">repack.cruftWindow</dt>
<dt class="hdlist1">repack.cruftWindowMemory</dt>
<dt class="hdlist1">repack.cruftDepth</dt>
<dt class="hdlist1">repack.cruftThreads</dt>
<dd>
<p>Parameters used by <a href="git-pack-objects.html">git-pack-objects(1)</a> when generating
a cruft pack and the respective parameters are not given over
the command line. See similarly named <code>pack.*</code> configuration
variables for defaults and meaning.</p>
</dd>
<dt class="hdlist1">repack.midxMustContainCruft</dt>
<dd>
<p>When set to true, <a href="git-repack.html">git-repack(1)</a> will unconditionally include
cruft pack(s), if any, in the multi-pack index when invoked with
<code>--write-midx</code>. When false, cruft packs are only included in the MIDX
when necessary (e.g., because they might be required to form a
reachability closure with MIDX bitmaps). Defaults to true.</p>
</dd>
<dt class="hdlist1">rerere.autoUpdate</dt>
<dd>
<p>When set to true, <code>git-rerere</code> updates the index with the
resulting contents after it cleanly resolves conflicts using
previously recorded resolutions.  Defaults to false.</p>
</dd>
<dt class="hdlist1">rerere.enabled</dt>
<dd>
<p>Activate recording of resolved conflicts, so that identical
conflict hunks can be resolved automatically, should they be
encountered again.  By default, <a href="git-rerere.html">git-rerere(1)</a> is
enabled if there is an <code>rr-cache</code> directory under the
<code>$GIT_DIR</code>, e.g. if "rerere" was previously used in the
repository.</p>
</dd>
<dt class="hdlist1">revert.reference</dt>
<dd>
<p>Setting this variable to true makes <code>git</code> <code>revert</code> behave
as if the <code>--reference</code> option is given.</p>
</dd>
<dt class="hdlist1">safe.bareRepository</dt>
<dd>
<p>Specifies which bare repositories Git will work with. The currently
supported values are:</p>
<div class="ulist">
<ul>
<li>
<p><code>all</code>: Git works with all bare repositories. This is the default.</p>
</li>
<li>
<p><code>explicit</code>: Git only works with bare repositories specified via
the top-level <code>--git-dir</code> command-line option, or the <code>GIT_DIR</code>
environment variable (see <a href="git.html">git(1)</a>).</p>
<div class="paragraph">
<p>If you do not use bare repositories in your workflow, then it may be
beneficial to set <code>safe.bareRepository</code> to <code>explicit</code> in your global
config. This will protect you from attacks that involve cloning a
repository that contains a bare repository and running a Git command
within that directory.</p>
</div>
<div class="paragraph">
<p>This config setting is only respected in protected configuration (see
<a href="#SCOPES">SCOPES</a>). This prevents untrusted repositories from tampering with
this value.</p>
</div>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">safe.directory</dt>
<dd>
<p>These config entries specify Git-tracked directories that are
considered safe even if they are owned by someone other than the
current user. By default, Git will refuse to even parse a Git
config of a repository owned by someone else, let alone run its
hooks, and this config setting allows users to specify exceptions,
e.g. for intentionally shared repositories (see the <code>--shared</code>
option in <a href="git-init.html">git-init(1)</a>).</p>
<div class="paragraph">
<p>This is a multi-valued setting, i.e. you can add more than one directory
via <code>git</code> <code>config</code> <code>--add</code>. To reset the list of safe directories (e.g. to
override any such directories specified in the system config), add a
<code>safe.directory</code> entry with an empty value.</p>
</div>
<div class="paragraph">
<p>This config setting is only respected in protected configuration (see
<a href="#SCOPES">SCOPES</a>). This prevents untrusted repositories from tampering with this
value.</p>
</div>
<div class="paragraph">
<p>The value of this setting is interpolated, i.e. <code>~/</code><em>&lt;path&gt;</em> expands to a
path relative to the home directory and <code>%</code>(<code>prefix</code>)<code>/</code><em>&lt;path&gt;</em> expands to a
path relative to Git&#8217;s (runtime) prefix.</p>
</div>
<div class="paragraph">
<p>To completely opt-out of this security check, set <code>safe.directory</code> to the
string <code>*</code>. This will allow all repositories to be treated as if their
directory was listed in the <code>safe.directory</code> list. If <code>safe.directory=*</code>
is set in system config and you want to re-enable this protection, then
initialize your list with an empty value before listing the repositories
that you deem safe.  Giving a directory with <code>/*</code> appended to it will
allow access to all repositories under the named directory.</p>
</div>
<div class="paragraph">
<p>As explained, Git only allows you to access repositories owned by
yourself, i.e. the user who is running Git, by default.  When Git
is running as <em>root</em> in a non Windows platform that provides sudo,
however, git checks the SUDO_UID environment variable that sudo creates
and will allow access to the uid recorded as its value in addition to
the id from <em>root</em>.
This is to make it easy to perform a common sequence during installation
"make &amp;&amp; sudo make install".  A git process running under <em>sudo</em> runs as
<em>root</em> but the <em>sudo</em> command exports the environment variable to record
which id the original user has.
If that is not what you would prefer and want git to only trust
repositories that are owned by root instead, then you can remove
the <code>SUDO_UID</code> variable from root&#8217;s environment before invoking git.</p>
</div>
</dd>
<dt class="hdlist1">sendemail.identity</dt>
<dd>
<p>A configuration identity. When given, causes values in the
<code>sendemail.</code><em>&lt;identity&gt;</em> subsection to take precedence over
values in the <code>sendemail</code> section. The default identity is
the value of <code>sendemail.identity</code>.</p>
</dd>
<dt class="hdlist1">sendemail.smtpEncryption</dt>
<dd>
<p>See <a href="git-send-email.html">git-send-email(1)</a> for description.  Note that this
setting is not subject to the <code>identity</code> mechanism.</p>
</dd>
<dt class="hdlist1">sendemail.smtpSSLCertPath</dt>
<dd>
<p>Path to ca-certificates (either a directory or a single file).
Set it to an empty string to disable certificate verification.</p>
</dd>
<dt class="hdlist1">sendemail.&lt;identity&gt;.*</dt>
<dd>
<p>Identity-specific versions of the <code>sendemail.*</code> parameters
found below, taking precedence over those when this
identity is selected, through either the command-line or
<code>sendemail.identity</code>.</p>
</dd>
<dt class="hdlist1">sendemail.multiEdit</dt>
<dd>
<p>If <code>true</code> (default), a single editor instance will be spawned to edit
files you have to edit (patches when <code>--annotate</code> is used, and the
summary when <code>--compose</code> is used). If <code>false</code>, files will be edited one
after the other, spawning a new editor each time.</p>
</dd>
<dt class="hdlist1">sendemail.confirm</dt>
<dd>
<p>Sets the default for whether to confirm before sending. Must be
one of <code>always</code>, <code>never</code>, <code>cc</code>, <code>compose</code>, or <code>auto</code>. See <code>--confirm</code>
in the <a href="git-send-email.html">git-send-email(1)</a> documentation for the meaning of these
values.</p>
</dd>
<dt class="hdlist1">sendemail.mailmap</dt>
<dd>
<p>If <code>true</code>, makes <a href="git-send-email.html">git-send-email(1)</a> assume <code>--mailmap</code>,
otherwise assume <code>--no-mailmap</code>. <code>False</code> by default.</p>
</dd>
<dt class="hdlist1">sendemail.mailmap.file</dt>
<dd>
<p>The location of a <a href="git-send-email.html">git-send-email(1)</a> specific augmenting
mailmap file. The default mailmap and <code>mailmap.file</code> are loaded
first. Thus, entries in this file take precedence over entries in
the default mailmap locations. See <a href="gitmailmap.html">gitmailmap(5)</a>.</p>
</dd>
<dt class="hdlist1">sendemail.mailmap.blob</dt>
<dd>
<p>Like <code>sendemail.mailmap.file</code>, but consider the value as a reference
to a blob in the repository. Entries in <code>sendemail.mailmap.file</code>
take precedence over entries here. See <a href="gitmailmap.html">gitmailmap(5)</a>.</p>
</dd>
<dt class="hdlist1">sendemail.aliasesFile</dt>
<dd>
<p>To avoid typing long email addresses, point this to one or more
email aliases files.  You must also supply <code>sendemail.aliasFileType</code>.</p>
</dd>
<dt class="hdlist1">sendemail.aliasFileType</dt>
<dd>
<p>Format of the file(s) specified in sendemail.aliasesFile. Must be
one of <code>mutt</code>, <code>mailrc</code>, <code>pine</code>, <code>elm</code>, <code>gnus</code>, or <code>sendmail</code>.</p>
<div class="paragraph">
<p>What an alias file in each format looks like can be found in
the documentation of the email program of the same name. The
differences and limitations from the standard formats are
described below:</p>
</div>
<div class="openblock">
<div class="content">
<div class="dlist">
<dl>
<dt class="hdlist1">sendmail</dt>
<dd>
<div class="ulist">
<ul>
<li>
<p>Quoted aliases and quoted addresses are not supported: lines that
contain a " symbol are ignored.</p>
</li>
<li>
<p>Redirection to a file (<code>/path/name</code>) or pipe (|<code>command</code>) is not
supported.</p>
</li>
<li>
<p>File inclusion (<code>:include:</code> <code>/path/name</code>) is not supported.</p>
</li>
<li>
<p>Warnings are printed on the standard error output for any
explicitly unsupported constructs, and any other lines that are not
recognized by the parser.</p>
</li>
</ul>
</div>
</dd>
</dl>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">sendemail.annotate</dt>
<dt class="hdlist1">sendemail.bcc</dt>
<dt class="hdlist1">sendemail.cc</dt>
<dt class="hdlist1">sendemail.ccCmd</dt>
<dt class="hdlist1">sendemail.chainReplyTo</dt>
<dt class="hdlist1">sendemail.envelopeSender</dt>
<dt class="hdlist1">sendemail.from</dt>
<dt class="hdlist1">sendemail.headerCmd</dt>
<dt class="hdlist1">sendemail.signedOffByCc</dt>
<dt class="hdlist1">sendemail.smtpPass</dt>
<dt class="hdlist1">sendemail.suppressCc</dt>
<dt class="hdlist1">sendemail.suppressFrom</dt>
<dt class="hdlist1">sendemail.to</dt>
<dt class="hdlist1">sendemail.toCmd</dt>
<dt class="hdlist1">sendemail.smtpDomain</dt>
<dt class="hdlist1">sendemail.smtpServer</dt>
<dt class="hdlist1">sendemail.smtpServerPort</dt>
<dt class="hdlist1">sendemail.smtpServerOption</dt>
<dt class="hdlist1">sendemail.smtpUser</dt>
<dt class="hdlist1">sendemail.thread</dt>
<dt class="hdlist1">sendemail.transferEncoding</dt>
<dt class="hdlist1">sendemail.validate</dt>
<dt class="hdlist1">sendemail.xmailer</dt>
<dd>
<p>These configuration variables all provide a default for
<a href="git-send-email.html">git-send-email(1)</a> command-line options. See its
documentation for details.</p>
</dd>
<dt class="hdlist1">sendemail.outlookidfix</dt>
<dd>
<p>If <code>true</code>, makes <a href="git-send-email.html">git-send-email(1)</a> assume <code>--outlook-id-fix</code>,
and if <code>false</code> assume <code>--no-outlook-id-fix</code>. If not specified, it will
behave the same way as if <code>--outlook-id-fix</code> is not specified.</p>
</dd>
<dt class="hdlist1">sendemail.signedOffCc (deprecated)</dt>
<dd>
<p>Deprecated alias for <code>sendemail.signedOffByCc</code>.</p>
</dd>
<dt class="hdlist1">sendemail.smtpBatchSize</dt>
<dd>
<p>Number of messages to be sent per connection, after that a relogin
will happen.  If the value is <code>0</code> or undefined, send all messages in
one connection.
See also the <code>--batch-size</code> option of <a href="git-send-email.html">git-send-email(1)</a>.</p>
</dd>
<dt class="hdlist1">sendemail.smtpReloginDelay</dt>
<dd>
<p>Seconds to wait before reconnecting to the smtp server.
See also the <code>--relogin-delay</code> option of <a href="git-send-email.html">git-send-email(1)</a>.</p>
</dd>
<dt class="hdlist1">sendemail.forbidSendmailVariables</dt>
<dd>
<p>To avoid common misconfiguration mistakes, <a href="git-send-email.html">git-send-email(1)</a>
will abort with a warning if any configuration options for <code>sendmail</code>
exist. Set this variable to bypass the check.</p>
</dd>
<dt class="hdlist1">sequence.editor</dt>
<dd>
<p>Text editor used by <code>git</code> <code>rebase</code> <code>-i</code> for editing the rebase instruction file.
The value is meant to be interpreted by the shell when it is used.
It can be overridden by the <code>GIT_SEQUENCE_EDITOR</code> environment variable.
When not configured, the default commit message editor is used instead.</p>
</dd>
<dt class="hdlist1">showBranch.default</dt>
<dd>
<p>The default set of branches for <a href="git-show-branch.html">git-show-branch(1)</a>.
See <a href="git-show-branch.html">git-show-branch(1)</a>.</p>
</dd>
<dt class="hdlist1">sparse.expectFilesOutsideOfPatterns</dt>
<dd>
<p>Typically with sparse checkouts, files not matching any
sparsity patterns are marked with a SKIP_WORKTREE bit in the
index and are missing from the working tree.  Accordingly, Git
will ordinarily check whether files with the SKIP_WORKTREE bit
are in fact present in the working tree contrary to
expectations.  If Git finds any, it marks those paths as
present by clearing the relevant SKIP_WORKTREE bits.  This
option can be used to tell Git that such
present-despite-skipped files are expected and to stop
checking for them.</p>
<div class="paragraph">
<p>The default is <code>false</code>, which allows Git to automatically recover
from the list of files in the index and working tree falling out of
sync.</p>
</div>
<div class="paragraph">
<p>Set this to <code>true</code> if you are in a setup where some external factor
relieves Git of the responsibility for maintaining the consistency
between the presence of working tree files and sparsity patterns.  For
example, if you have a Git-aware virtual file system that has a robust
mechanism for keeping the working tree and the sparsity patterns up to
date based on access patterns.</p>
</div>
<div class="paragraph">
<p>Regardless of this setting, Git does not check for
present-despite-skipped files unless sparse checkout is enabled, so
this config option has no effect unless <code>core.sparseCheckout</code> is
<code>true</code>.</p>
</div>
</dd>
<dt class="hdlist1">splitIndex.maxPercentChange</dt>
<dd>
<p>When the split index feature is used, this specifies the
percent of entries the split index can contain compared to the
total number of entries in both the split index and the shared
index before a new shared index is written.
The value should be between 0 and 100. If the value is 0, then
a new shared index is always written; if it is 100, a new
shared index is never written.
By default, the value is 20, so a new shared index is written
if the number of entries in the split index would be greater
than 20 percent of the total number of entries.
See <a href="git-update-index.html">git-update-index(1)</a>.</p>
</dd>
<dt class="hdlist1">splitIndex.sharedIndexExpire</dt>
<dd>
<p>When the split index feature is used, shared index files that
were not modified since the time this variable specifies will
be removed when a new shared index file is created. The value
"now" expires all entries immediately, and "never" suppresses
expiration altogether.
The default value is "2.weeks.ago".
Note that a shared index file is considered modified (for the
purpose of expiration) each time a new split-index file is
either created based on it or read from it.
See <a href="git-update-index.html">git-update-index(1)</a>.</p>
</dd>
<dt class="hdlist1">ssh.variant</dt>
<dd>
<p>By default, Git determines the command line arguments to use
based on the basename of the configured SSH command (configured
using the environment variable <code>GIT_SSH</code> or <code>GIT_SSH_COMMAND</code> or
the config setting <code>core.sshCommand</code>). If the basename is
unrecognized, Git will attempt to detect support of OpenSSH
options by first invoking the configured SSH command with the
<code>-G</code> (print configuration) option and will subsequently use
OpenSSH options (if that is successful) or no options besides
the host and remote command (if it fails).</p>
<div class="paragraph">
<p>The config variable <code>ssh.variant</code> can be set to override this detection.
Valid values are <code>ssh</code> (to use OpenSSH options), <code>plink</code>, <code>putty</code>,
<code>tortoiseplink</code>, <code>simple</code> (no options except the host and remote command).
The default auto-detection can be explicitly requested using the value
<code>auto</code>.  Any other value is treated as <code>ssh</code>.  This setting can also be
overridden via the environment variable <code>GIT_SSH_VARIANT</code>.</p>
</div>
<div class="paragraph">
<p>The current command-line parameters used for each variant are as
follows:</p>
</div>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>ssh</code> - [-p port] [-4] [-6] [-o option] [username@]host command</p>
</li>
<li>
<p><code>simple</code> - [username@]host command</p>
</li>
<li>
<p><code>plink</code> or <code>putty</code> - [-P port] [-4] [-6] [username@]host command</p>
</li>
<li>
<p><code>tortoiseplink</code> - [-P port] [-4] [-6] -batch [username@]host command</p>
</li>
</ul>
</div>
</div>
</div>
<div class="paragraph">
<p>Except for the <code>simple</code> variant, command-line parameters are likely to
change as git gains new features.</p>
</div>
</dd>
<dt class="hdlist1">stash.showIncludeUntracked</dt>
<dd>
<p>If this is set to true, the <code>git</code> <code>stash</code> <code>show</code> command will show
the untracked files of a stash entry.  Defaults to false. See
the description of the <em>show</em> command in <a href="git-stash.html">git-stash(1)</a>.</p>
</dd>
<dt class="hdlist1">stash.showPatch</dt>
<dd>
<p>If this is set to true, the <code>git</code> <code>stash</code> <code>show</code> command without an
option will show the stash entry in patch form.  Defaults to false.
See the description of the <em>show</em> command in <a href="git-stash.html">git-stash(1)</a>.</p>
</dd>
<dt class="hdlist1">stash.showStat</dt>
<dd>
<p>If this is set to true, the <code>git</code> <code>stash</code> <code>show</code> command without an
option will show a diffstat of the stash entry.  Defaults to true.
See the description of the <em>show</em> command in <a href="git-stash.html">git-stash(1)</a>.</p>
</dd>
<dt class="hdlist1">status.relativePaths</dt>
<dd>
<p>By default, <a href="git-status.html">git-status(1)</a> shows paths relative to the
current directory. Setting this variable to <code>false</code> shows paths
relative to the repository root (this was the default for Git
prior to v1.5.4).</p>
</dd>
<dt class="hdlist1">status.short</dt>
<dd>
<p>Set to true to enable --short by default in <a href="git-status.html">git-status(1)</a>.
The option --no-short takes precedence over this variable.</p>
</dd>
<dt class="hdlist1">status.branch</dt>
<dd>
<p>Set to true to enable --branch by default in <a href="git-status.html">git-status(1)</a>.
The option --no-branch takes precedence over this variable.</p>
</dd>
<dt class="hdlist1">status.aheadBehind</dt>
<dd>
<p>Set to true to enable <code>--ahead-behind</code> and false to enable
<code>--no-ahead-behind</code> by default in <a href="git-status.html">git-status(1)</a> for
non-porcelain status formats.  Defaults to true.</p>
</dd>
<dt class="hdlist1">status.displayCommentPrefix</dt>
<dd>
<p>If set to true, <a href="git-status.html">git-status(1)</a> will insert a comment
prefix before each output line (starting with
<code>core.commentChar</code>, i.e. # by default). This was the
behavior of <a href="git-status.html">git-status(1)</a> in Git 1.8.4 and previous.
Defaults to false.</p>
</dd>
<dt class="hdlist1">status.renameLimit</dt>
<dd>
<p>The number of files to consider when performing rename detection
in <a href="git-status.html">git-status(1)</a> and <a href="git-commit.html">git-commit(1)</a>. Defaults to
the value of diff.renameLimit.</p>
</dd>
<dt class="hdlist1">status.renames</dt>
<dd>
<p>Whether and how Git detects renames in <a href="git-status.html">git-status(1)</a> and
<a href="git-commit.html">git-commit(1)</a> .  If set to "false", rename detection is
disabled. If set to "true", basic rename detection is enabled.
If set to "copies" or "copy", Git will detect copies, as well.
Defaults to the value of diff.renames.</p>
</dd>
<dt class="hdlist1">status.showStash</dt>
<dd>
<p>If set to true, <a href="git-status.html">git-status(1)</a> will display the number of
entries currently stashed away.
Defaults to false.</p>
</dd>
<dt class="hdlist1">status.showUntrackedFiles</dt>
<dd>
<p>By default, <a href="git-status.html">git-status(1)</a> and <a href="git-commit.html">git-commit(1)</a> show
files which are not currently tracked by Git. Directories which
contain only untracked files, are shown with the directory name
only. Showing untracked files means that Git needs to lstat() all
the files in the whole repository, which might be slow on some
systems. So, this variable controls how the commands display
the untracked files. Possible values are:</p>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>no</code> - Show no untracked files.</p>
</li>
<li>
<p><code>normal</code> - Show untracked files and directories.</p>
</li>
<li>
<p><code>all</code> - Show also individual files in untracked directories.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="paragraph">
<p>If this variable is not specified, it defaults to <em>normal</em>.
All usual spellings for Boolean value <code>true</code> are taken as <code>normal</code>
and <code>false</code> as <code>no</code>.
This variable can be overridden with the -u|--untracked-files option
of <a href="git-status.html">git-status(1)</a> and <a href="git-commit.html">git-commit(1)</a>.</p>
</div>
</dd>
<dt class="hdlist1">status.submoduleSummary</dt>
<dd>
<p>Defaults to false.
If this is set to a non-zero number or true (identical to -1 or an
unlimited number), the submodule summary will be enabled and a
summary of commits for modified submodules will be shown (see
--summary-limit option of <a href="git-submodule.html">git-submodule(1)</a>). Please note
that the summary output command will be suppressed for all
submodules when <code>diff.ignoreSubmodules</code> is set to <em>all</em> or only
for those submodules where <code>submodule.</code><em>&lt;name&gt;</em><code>.ignore=all</code>. The only
exception to that rule is that status and commit will show staged
submodule changes. To
also view the summary for ignored submodules you can either use
the --ignore-submodules=dirty command-line option or the <em>git
submodule summary</em> command, which shows a similar output but does
not honor these settings.</p>
</dd>
<dt class="hdlist1">submodule.&lt;name&gt;.url</dt>
<dd>
<p>The URL for a submodule. This variable is copied from the .gitmodules
file to the git config via <em>git submodule init</em>. The user can change
the configured URL before obtaining the submodule via <em>git submodule
update</em>. If neither submodule.&lt;name&gt;.active nor submodule.active are
set, the presence of this variable is used as a fallback to indicate
whether the submodule is of interest to git commands.
See <a href="git-submodule.html">git-submodule(1)</a> and <a href="gitmodules.html">gitmodules(5)</a> for details.</p>
</dd>
<dt class="hdlist1">submodule.&lt;name&gt;.update</dt>
<dd>
<p>The method by which a submodule is updated by <em>git submodule update</em>,
which is the only affected command, others such as
<em>git checkout --recurse-submodules</em> are unaffected. It exists for
historical reasons, when <em>git submodule</em> was the only command to
interact with submodules; settings like <code>submodule.active</code>
and <code>pull.rebase</code> are more specific. It is populated by
<code>git</code> <code>submodule</code> <code>init</code> from the <a href="gitmodules.html">gitmodules(5)</a> file.
See description of <em>update</em> command in <a href="git-submodule.html">git-submodule(1)</a>.</p>
</dd>
<dt class="hdlist1">submodule.&lt;name&gt;.branch</dt>
<dd>
<p>The remote branch name for a submodule, used by <code>git</code> <code>submodule</code>
<code>update</code> <code>--remote</code>.  Set this option to override the value found in
the .<code>gitmodules</code> file.  See <a href="git-submodule.html">git-submodule(1)</a> and
<a href="gitmodules.html">gitmodules(5)</a> for details.</p>
</dd>
<dt class="hdlist1">submodule.&lt;name&gt;.fetchRecurseSubmodules</dt>
<dd>
<p>This option can be used to control recursive fetching of this
submodule. It can be overridden by using the --[no-]recurse-submodules
command-line option to "git fetch" and "git pull".
This setting will override that from in the <a href="gitmodules.html">gitmodules(5)</a>
file.</p>
</dd>
<dt class="hdlist1">submodule.&lt;name&gt;.ignore</dt>
<dd>
<p>Defines under what circumstances "git status" and the diff family show
a submodule as modified. When set to "all", it will never be considered
modified (but it will nonetheless show up in the output of status and
commit when it has been staged), "dirty" will ignore all changes
to the submodule&#8217;s work tree and
takes only differences between the HEAD of the submodule and the commit
recorded in the superproject into account. "untracked" will additionally
let submodules with modified tracked files in their work tree show up.
Using "none" (the default when this option is not set) also shows
submodules that have untracked files in their work tree as changed.
This setting overrides any setting made in .gitmodules for this submodule,
both settings can be overridden on the command line by using the
"--ignore-submodules" option. The <em>git submodule</em> commands are not
affected by this setting.</p>
</dd>
<dt class="hdlist1">submodule.&lt;name&gt;.active</dt>
<dd>
<p>Boolean value indicating if the submodule is of interest to git
commands.  This config option takes precedence over the
submodule.active config option. See <a href="gitsubmodules.html">gitsubmodules(7)</a> for
details.</p>
</dd>
<dt class="hdlist1">submodule.active</dt>
<dd>
<p>A repeated field which contains a pathspec used to match against a
submodule&#8217;s path to determine if the submodule is of interest to git
commands. See <a href="gitsubmodules.html">gitsubmodules(7)</a> for details.</p>
</dd>
<dt class="hdlist1">submodule.recurse</dt>
<dd>
<p>A boolean indicating if commands should enable the <code>--recurse-submodules</code>
option by default. Defaults to false.</p>
<div class="paragraph">
<p>When set to true, it can be deactivated via the
<code>--no-recurse-submodules</code> option. Note that some Git commands
lacking this option may call some of the above commands affected by
<code>submodule.recurse</code>; for instance <code>git</code> <code>remote</code> <code>update</code> will call
<code>git</code> <code>fetch</code> but does not have a <code>--no-recurse-submodules</code> option.
For these commands a workaround is to temporarily change the
configuration value by using <code>git</code> <code>-c</code> <code>submodule.recurse=0</code>.</p>
</div>
<div class="paragraph">
<p>The following list shows the commands that accept
<code>--recurse-submodules</code> and whether they are supported by this
setting.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>checkout</code>, <code>fetch</code>, <code>grep</code>, <code>pull</code>, <code>push</code>, <code>read-tree</code>,
<code>reset</code>, <code>restore</code> and <code>switch</code> are always supported.</p>
</li>
<li>
<p><code>clone</code> and <code>ls-files</code> are not supported.</p>
</li>
<li>
<p><code>branch</code> is supported only if <code>submodule.propagateBranches</code> is
enabled</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">submodule.propagateBranches</dt>
<dd>
<p>[EXPERIMENTAL] A boolean that enables branching support when
using <code>--recurse-submodules</code> or <code>submodule.recurse=true</code>.
Enabling this will allow certain commands to accept
<code>--recurse-submodules</code> and certain commands that already accept
<code>--recurse-submodules</code> will now consider branches.
Defaults to false.</p>
</dd>
<dt class="hdlist1">submodule.fetchJobs</dt>
<dd>
<p>Specifies how many submodules are fetched/cloned at the same time.
A positive integer allows up to that number of submodules fetched
in parallel. A value of 0 will give some reasonable default.
If unset, it defaults to 1.</p>
</dd>
<dt class="hdlist1">submodule.alternateLocation</dt>
<dd>
<p>Specifies how the submodules obtain alternates when submodules are
cloned. Possible values are <code>no</code>, <code>superproject</code>.
By default <code>no</code> is assumed, which doesn&#8217;t add references. When the
value is set to <code>superproject</code> the submodule to be cloned computes
its alternates location relative to the superprojects alternate.</p>
</dd>
<dt class="hdlist1">submodule.alternateErrorStrategy</dt>
<dd>
<p>Specifies how to treat errors with the alternates for a submodule
as computed via <code>submodule.alternateLocation</code>. Possible values are
<code>ignore</code>, <code>info</code>, <code>die</code>. Default is <code>die</code>. Note that if set to <code>ignore</code>
or <code>info</code>, and if there is an error with the computed alternate, the
clone proceeds as if no alternate was specified.</p>
</dd>
<dt class="hdlist1">tag.forceSignAnnotated</dt>
<dd>
<p>A boolean to specify whether annotated tags created should be GPG signed.
If <code>--annotate</code> is specified on the command line, it takes
precedence over this option.</p>
</dd>
<dt class="hdlist1">tag.sort</dt>
<dd>
<p>This variable controls the sort ordering of tags when displayed by
<a href="git-tag.html">git-tag(1)</a>. Without the "--sort=&lt;value&gt;" option provided, the
value of this variable will be used as the default.</p>
</dd>
<dt class="hdlist1">tag.gpgSign</dt>
<dd>
<p>A boolean to specify whether all tags should be GPG signed.
Use of this option when running in an automated script can
result in a large number of tags being signed. It is therefore
convenient to use an agent to avoid typing your gpg passphrase
several times. Note that this option doesn&#8217;t affect tag signing
behavior enabled by "-u &lt;keyid&gt;" or "--local-user=&lt;keyid&gt;" options.</p>
</dd>
<dt class="hdlist1">tar.umask</dt>
<dd>
<p>This variable can be used to restrict the permission bits of
tar archive entries.  The default is 0002, which turns off the
world write bit.  The special value "user" indicates that the
archiving user&#8217;s umask will be used instead.  See umask(2) and
<a href="git-archive.html">git-archive(1)</a>.</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>Trace2 config settings are only read from the system and global
config files; repository local and worktree config files and <code>-c</code>
command line arguments are not respected.</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">trace2.normalTarget</dt>
<dd>
<p>This variable controls the normal target destination.
It may be overridden by the <code>GIT_TRACE2</code> environment variable.
The following table shows possible values.</p>
</dd>
<dt class="hdlist1">trace2.perfTarget</dt>
<dd>
<p>This variable controls the performance target destination.
It may be overridden by the <code>GIT_TRACE2_PERF</code> environment variable.
The following table shows possible values.</p>
</dd>
<dt class="hdlist1">trace2.eventTarget</dt>
<dd>
<p>This variable controls the event target destination.
It may be overridden by the <code>GIT_TRACE2_EVENT</code> environment variable.
The following table shows possible values.</p>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>0</code> or <code>false</code> - Disables the target.</p>
</li>
<li>
<p><code>1</code> or <code>true</code> - Writes to <code>STDERR</code>.</p>
</li>
<li>
<p>[<code>2-9</code>] - Writes to the already opened file descriptor.</p>
</li>
<li>
<p><em>&lt;absolute-pathname&gt;</em> - Writes to the file in append mode. If the target
already exists and is a directory, the traces will be written to files (one
per process) underneath the given directory.</p>
</li>
<li>
<p><code>af_unix:</code>[<em>&lt;socket-type&gt;</em><code>:</code>]<em>&lt;absolute-pathname&gt;</em> - Write to a
Unix DomainSocket (on platforms that support them).  Socket
type can be either <code>stream</code> or <code>dgram</code>; if omitted Git will
try both.</p>
</li>
</ul>
</div>
</div>
</div>
</dd>
<dt class="hdlist1">trace2.normalBrief</dt>
<dd>
<p>Boolean.  When true <code>time</code>, <code>filename</code>, and <code>line</code> fields are
omitted from normal output.  May be overridden by the
<code>GIT_TRACE2_BRIEF</code> environment variable.  Defaults to false.</p>
</dd>
<dt class="hdlist1">trace2.perfBrief</dt>
<dd>
<p>Boolean.  When true <code>time</code>, <code>filename</code>, and <code>line</code> fields are
omitted from PERF output.  May be overridden by the
<code>GIT_TRACE2_PERF_BRIEF</code> environment variable.  Defaults to false.</p>
</dd>
<dt class="hdlist1">trace2.eventBrief</dt>
<dd>
<p>Boolean.  When true <code>time</code>, <code>filename</code>, and <code>line</code> fields are
omitted from event output.  May be overridden by the
<code>GIT_TRACE2_EVENT_BRIEF</code> environment variable.  Defaults to false.</p>
</dd>
<dt class="hdlist1">trace2.eventNesting</dt>
<dd>
<p>Integer.  Specifies desired depth of nested regions in the
event output.  Regions deeper than this value will be
omitted.  May be overridden by the <code>GIT_TRACE2_EVENT_NESTING</code>
environment variable.  Defaults to 2.</p>
</dd>
<dt class="hdlist1">trace2.configParams</dt>
<dd>
<p>A comma-separated list of patterns of "important" config
settings that should be recorded in the trace2 output.
For example, <code>core.*,remote.*.url</code> would cause the trace2
output to contain events listing each configured remote.
May be overridden by the <code>GIT_TRACE2_CONFIG_PARAMS</code> environment
variable.  Unset by default.</p>
</dd>
<dt class="hdlist1">trace2.envVars</dt>
<dd>
<p>A comma-separated list of "important" environment variables that should
be recorded in the trace2 output.  For example,
<code>GIT_HTTP_USER_AGENT,GIT_CONFIG</code> would cause the trace2 output to
contain events listing the overrides for HTTP user agent and the
location of the Git configuration file (assuming any are set).  May be
overridden by the <code>GIT_TRACE2_ENV_VARS</code> environment variable.  Unset by
default.</p>
</dd>
<dt class="hdlist1">trace2.destinationDebug</dt>
<dd>
<p>Boolean.  When true Git will print error messages when a
trace target destination cannot be opened for writing.
By default, these errors are suppressed and tracing is
silently disabled.  May be overridden by the
<code>GIT_TRACE2_DST_DEBUG</code> environment variable.</p>
</dd>
<dt class="hdlist1">trace2.maxFiles</dt>
<dd>
<p>Integer.  When writing trace files to a target directory, do not
write additional traces if doing so would exceed this many files. Instead,
write a sentinel file that will block further tracing to this
directory. Defaults to 0, which disables this check.</p>
</dd>
<dt class="hdlist1">trailer.separators</dt>
<dd>
<p>This option tells which characters are recognized as trailer
separators. By default only <em>:</em> is recognized as a trailer
separator, except that <em>=</em> is always accepted on the command
line for compatibility with other git commands.</p>
<div class="paragraph">
<p>The first character given by this option will be the default character
used when another separator is not specified in the config for this
trailer.</p>
</div>
<div class="paragraph">
<p>For example, if the value for this option is "%=$", then only lines
using the format <em>&lt;key&gt;&lt;sep&gt;&lt;value&gt;</em> with &lt;sep&gt; containing <em>%</em>, <em>=</em>
or <em>$</em> and then spaces will be considered trailers. And <em>%</em> will be
the default separator used, so by default trailers will appear like:
<em>&lt;key&gt;% &lt;value&gt;</em> (one percent sign and one space will appear between
the key and the value).</p>
</div>
</dd>
<dt class="hdlist1">trailer.where</dt>
<dd>
<p>This option tells where a new trailer will be added.</p>
<div class="paragraph">
<p>This can be <code>end</code>, which is the default, <code>start</code>, <code>after</code> or <code>before</code>.</p>
</div>
<div class="paragraph">
<p>If it is <code>end</code>, then each new trailer will appear at the end of the
existing trailers.</p>
</div>
<div class="paragraph">
<p>If it is <code>start</code>, then each new trailer will appear at the start,
instead of the end, of the existing trailers.</p>
</div>
<div class="paragraph">
<p>If it is <code>after</code>, then each new trailer will appear just after the
last trailer with the same &lt;key&gt;.</p>
</div>
<div class="paragraph">
<p>If it is <code>before</code>, then each new trailer will appear just before the
first trailer with the same &lt;key&gt;.</p>
</div>
</dd>
<dt class="hdlist1">trailer.ifexists</dt>
<dd>
<p>This option makes it possible to choose what action will be
performed when there is already at least one trailer with the
same &lt;key&gt; in the input.</p>
<div class="paragraph">
<p>The valid values for this option are: <code>addIfDifferentNeighbor</code> (this
is the default), <code>addIfDifferent</code>, <code>add</code>, <code>replace</code> or <code>doNothing</code>.</p>
</div>
<div class="paragraph">
<p>With <code>addIfDifferentNeighbor</code>, a new trailer will be added only if no
trailer with the same (&lt;key&gt;, &lt;value&gt;) pair is above or below the line
where the new trailer will be added.</p>
</div>
<div class="paragraph">
<p>With <code>addIfDifferent</code>, a new trailer will be added only if no trailer
with the same (&lt;key&gt;, &lt;value&gt;) pair is already in the input.</p>
</div>
<div class="paragraph">
<p>With <code>add</code>, a new trailer will be added, even if some trailers with
the same (&lt;key&gt;, &lt;value&gt;) pair are already in the input.</p>
</div>
<div class="paragraph">
<p>With <code>replace</code>, an existing trailer with the same &lt;key&gt; will be
deleted and the new trailer will be added. The deleted trailer will be
the closest one (with the same &lt;key&gt;) to the place where the new one
will be added.</p>
</div>
<div class="paragraph">
<p>With <code>doNothing</code>, nothing will be done; that is no new trailer will be
added if there is already one with the same &lt;key&gt; in the input.</p>
</div>
</dd>
<dt class="hdlist1">trailer.ifmissing</dt>
<dd>
<p>This option makes it possible to choose what action will be
performed when there is not yet any trailer with the same
&lt;key&gt; in the input.</p>
<div class="paragraph">
<p>The valid values for this option are: <code>add</code> (this is the default) and
<code>doNothing</code>.</p>
</div>
<div class="paragraph">
<p>With <code>add</code>, a new trailer will be added.</p>
</div>
<div class="paragraph">
<p>With <code>doNothing</code>, nothing will be done.</p>
</div>
</dd>
<dt class="hdlist1">trailer.&lt;keyAlias&gt;.key</dt>
<dd>
<p>Defines a &lt;keyAlias&gt; for the &lt;key&gt;. The &lt;keyAlias&gt; must be a
prefix (case does not matter) of the &lt;key&gt;. For example, in <code>git</code>
<code>config</code> <code>trailer.ack.key</code> "Acked-by" the "Acked-by" is the &lt;key&gt; and
the "ack" is the &lt;keyAlias&gt;. This configuration allows the shorter
<code>--trailer</code> "ack:<code>...</code>" invocation on the command line using the "ack"
&lt;keyAlias&gt; instead of the longer <code>--trailer</code> "Acked-by:<code>...</code>".</p>
<div class="paragraph">
<p>At the end of the &lt;key&gt;, a separator can appear and then some
space characters. By default the only valid separator is <em>:</em>,
but this can be changed using the <code>trailer.separators</code> config
variable.</p>
</div>
<div class="paragraph">
<p>If there is a separator in the key, then it overrides the default
separator when adding the trailer.</p>
</div>
</dd>
<dt class="hdlist1">trailer.&lt;keyAlias&gt;.where</dt>
<dd>
<p>This option takes the same values as the <em>trailer.where</em>
configuration variable and it overrides what is specified by
that option for trailers with the specified &lt;keyAlias&gt;.</p>
</dd>
<dt class="hdlist1">trailer.&lt;keyAlias&gt;.ifexists</dt>
<dd>
<p>This option takes the same values as the <em>trailer.ifexists</em>
configuration variable and it overrides what is specified by
that option for trailers with the specified &lt;keyAlias&gt;.</p>
</dd>
<dt class="hdlist1">trailer.&lt;keyAlias&gt;.ifmissing</dt>
<dd>
<p>This option takes the same values as the <em>trailer.ifmissing</em>
configuration variable and it overrides what is specified by
that option for trailers with the specified &lt;keyAlias&gt;.</p>
</dd>
<dt class="hdlist1">trailer.&lt;keyAlias&gt;.command</dt>
<dd>
<p>Deprecated in favor of <em>trailer.&lt;keyAlias&gt;.cmd</em>.
This option behaves in the same way as <em>trailer.&lt;keyAlias&gt;.cmd</em>, except
that it doesn&#8217;t pass anything as argument to the specified command.
Instead the first occurrence of substring $ARG is replaced by the
&lt;value&gt; that would be passed as argument.</p>
<div class="paragraph">
<p>Note that $ARG in the user&#8217;s command is
only replaced once and that the original way of replacing $ARG is not safe.</p>
</div>
<div class="paragraph">
<p>When both <em>trailer.&lt;keyAlias&gt;.cmd</em> and <em>trailer.&lt;keyAlias&gt;.command</em> are given
for the same &lt;keyAlias&gt;, <em>trailer.&lt;keyAlias&gt;.cmd</em> is used and
<em>trailer.&lt;keyAlias&gt;.command</em> is ignored.</p>
</div>
</dd>
<dt class="hdlist1">trailer.&lt;keyAlias&gt;.cmd</dt>
<dd>
<p>This option can be used to specify a shell command that will be called
once to automatically add a trailer with the specified &lt;keyAlias&gt;, and then
called each time a <em>--trailer &lt;keyAlias&gt;=&lt;value&gt;</em> argument is specified to
modify the &lt;value&gt; of the trailer that this option would produce.</p>
<div class="paragraph">
<p>When the specified command is first called to add a trailer
with the specified &lt;keyAlias&gt;, the behavior is as if a special
<em>--trailer &lt;keyAlias&gt;=&lt;value&gt;</em> argument was added at the beginning
of the "git interpret-trailers" command, where &lt;value&gt;
is taken to be the standard output of the command with any
leading and trailing whitespace trimmed off.</p>
</div>
<div class="paragraph">
<p>If some <em>--trailer &lt;keyAlias&gt;=&lt;value&gt;</em> arguments are also passed
on the command line, the command is called again once for each
of these arguments with the same &lt;keyAlias&gt;. And the &lt;value&gt; part
of these arguments, if any, will be passed to the command as its
first argument. This way the command can produce a &lt;value&gt; computed
from the &lt;value&gt; passed in the <em>--trailer &lt;keyAlias&gt;=&lt;value&gt;</em> argument.</p>
</div>
</dd>
<dt class="hdlist1">transfer.credentialsInUrl</dt>
<dd>
<p>A configured URL can contain plaintext credentials in the form
<em>&lt;protocol&gt;</em><code>://</code><em>&lt;user&gt;</em><code>:</code><em>&lt;password&gt;</em><code>@</code><em>&lt;domain&gt;</em><code>/</code><em>&lt;path&gt;</em>. You may want
to warn or forbid the use of such configuration (in favor of
using <a href="git-credential.html">git-credential(1)</a>). This will be used on
<a href="git-clone.html">git-clone(1)</a>, <a href="git-fetch.html">git-fetch(1)</a>, <a href="git-push.html">git-push(1)</a>,
and any other direct use of the configured URL.</p>
<div class="paragraph">
<p>Note that this is currently limited to detecting credentials in
<code>remote.</code><em>&lt;name&gt;</em><code>.url</code> configuration; it won&#8217;t detect credentials in
<code>remote.</code><em>&lt;name&gt;</em><code>.pushurl</code> configuration.</p>
</div>
<div class="paragraph">
<p>You might want to enable this to prevent inadvertent credentials
exposure, e.g. because:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The OS or system where you&#8217;re running git may not provide a way or
otherwise allow you to configure the permissions of the
configuration file where the username and/or password are stored.</p>
</li>
<li>
<p>Even if it does, having such data stored "at rest" might expose you
in other ways, e.g. a backup process might copy the data to another
system.</p>
</li>
<li>
<p>The git programs will pass the full URL to one another as arguments
on the command-line, meaning the credentials will be exposed to other
unprivileged users on systems that allow them to see the full
process list of other users. On linux the "hidepid" setting
documented in procfs(5) allows for configuring this behavior.</p>
<div class="paragraph">
<p>If such concerns don&#8217;t apply to you then you probably don&#8217;t need to be
concerned about credentials exposure due to storing sensitive
data in git&#8217;s configuration files. If you do want to use this, set
<code>transfer.credentialsInUrl</code> to one of these values:</p>
</div>
</li>
<li>
<p><code>allow</code> (default): Git will proceed with its activity without warning.</p>
</li>
<li>
<p><code>warn</code>: Git will write a warning message to <code>stderr</code> when parsing a URL
with a plaintext credential.</p>
</li>
<li>
<p><code>die</code>: Git will write a failure message to <code>stderr</code> when parsing a URL
with a plaintext credential.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">transfer.fsckObjects</dt>
<dd>
<p>When <code>fetch.fsckObjects</code> or <code>receive.fsckObjects</code> are
not set, the value of this variable is used instead.
Defaults to false.</p>
<div class="paragraph">
<p>When set, the fetch or receive will abort in the case of a malformed
object or a link to a nonexistent object. In addition, various other
issues are checked for, including legacy issues (see <code>fsck.</code><em>&lt;msg-id&gt;</em>),
and potential security issues like the existence of a .<code>GIT</code> directory
or a malicious .<code>gitmodules</code> file (see the release notes for v2.2.1
and v2.17.1 for details). Other sanity and security checks may be
added in future releases.</p>
</div>
<div class="paragraph">
<p>On the receiving side, failing fsckObjects will make those objects
unreachable, see "QUARANTINE ENVIRONMENT" in
<a href="git-receive-pack.html">git-receive-pack(1)</a>. On the fetch side, malformed objects will
instead be left unreferenced in the repository.</p>
</div>
<div class="paragraph">
<p>Due to the non-quarantine nature of the <code>fetch.fsckObjects</code>
implementation it cannot be relied upon to leave the object store
clean like <code>receive.fsckObjects</code> can.</p>
</div>
<div class="paragraph">
<p>As objects are unpacked they&#8217;re written to the object store, so there
can be cases where malicious objects get introduced even though the
"fetch" failed, only to have a subsequent "fetch" succeed because only
new incoming objects are checked, not those that have already been
written to the object store. That difference in behavior should not be
relied upon. In the future, such objects may be quarantined for
"fetch" as well.</p>
</div>
<div class="paragraph">
<p>For now, the paranoid need to find some way to emulate the quarantine
environment if they&#8217;d like the same protection as "push". E.g. in the
case of an internal mirror do the mirroring in two steps, one to fetch
the untrusted objects, and then do a second "push" (which will use the
quarantine) to another internal repo, and have internal clients
consume this pushed-to repository, or embargo internal fetches and
only allow them once a full "fsck" has run (and no new fetches have
happened in the meantime).</p>
</div>
</dd>
<dt class="hdlist1">transfer.hideRefs</dt>
<dd>
<p>String(s) <code>receive-pack</code> and <code>upload-pack</code> use to decide which
refs to omit from their initial advertisements.  Use more than
one definition to specify multiple prefix strings. A ref that is
under the hierarchies listed in the value of this variable is
excluded, and is hidden when responding to <code>git</code> <code>push</code> or <code>git</code>
<code>fetch</code>.  See <code>receive.hideRefs</code> and <code>uploadpack.hideRefs</code> for
program-specific versions of this config.</p>
<div class="paragraph">
<p>You may also include a ! in front of the ref name to negate the entry,
explicitly exposing it, even if an earlier entry marked it as hidden.
If you have multiple hideRefs values, later entries override earlier ones
(and entries in more-specific config files override less-specific ones).</p>
</div>
<div class="paragraph">
<p>If a namespace is in use, the namespace prefix is stripped from each
reference before it is matched against <code>transfer.hiderefs</code> patterns. In
order to match refs before stripping, add a <code>^</code> in front of the ref name. If
you combine ! and <code>^</code>, ! must be specified first.</p>
</div>
<div class="paragraph">
<p>For example, if <code>refs/heads/master</code> is specified in <code>transfer.hideRefs</code> and
the current namespace is <code>foo</code>, then <code>refs/namespaces/foo/refs/heads/master</code>
is omitted from the advertisements. If <code>uploadpack.allowRefInWant</code> is set,
<code>upload-pack</code> will treat <code>want-ref</code> <code>refs/heads/master</code> in a protocol v2
<code>fetch</code> command as if <code>refs/namespaces/foo/refs/heads/master</code> did not exist.
<code>receive-pack</code>, on the other hand, will still advertise the object id the
ref is pointing to without mentioning its name (a so-called ".have" line).</p>
</div>
<div class="paragraph">
<p>Even if you hide refs, a client may still be able to steal the target
objects via the techniques described in the "SECURITY" section of the
<a href="gitnamespaces.html">gitnamespaces(7)</a> man page; it&#8217;s best to keep private data in a
separate repository.</p>
</div>
</dd>
<dt class="hdlist1">transfer.unpackLimit</dt>
<dd>
<p>When <code>fetch.unpackLimit</code> or <code>receive.unpackLimit</code> are
not set, the value of this variable is used instead.
The default value is 100.</p>
</dd>
<dt class="hdlist1">transfer.advertiseSID</dt>
<dd>
<p>Boolean. When true, client and server processes will advertise their
unique session IDs to their remote counterpart. Defaults to false.</p>
</dd>
<dt class="hdlist1">transfer.bundleURI</dt>
<dd>
<p>When <code>true</code>, local <code>git</code> <code>clone</code> commands will request bundle
information from the remote server (if advertised) and download
bundles before continuing the clone through the Git protocol.
Defaults to <code>false</code>.</p>
</dd>
<dt class="hdlist1">transfer.advertiseObjectInfo</dt>
<dd>
<p>When <code>true</code>, the <code>object-info</code> capability is advertised by
servers. Defaults to false.</p>
</dd>
<dt class="hdlist1">uploadarchive.allowUnreachable</dt>
<dd>
<p>If true, allow clients to use <code>git</code> <code>archive</code> <code>--remote</code> to request
any tree, whether reachable from the ref tips or not. See the
discussion in the "SECURITY" section of
<a href="git-upload-archive.html">git-upload-archive(1)</a> for more details. Defaults to
<code>false</code>.</p>
</dd>
<dt class="hdlist1">uploadpack.hideRefs</dt>
<dd>
<p>This variable is the same as <code>transfer.hideRefs</code>, but applies
only to <code>upload-pack</code> (and so affects only fetches, not pushes).
An attempt to fetch a hidden ref by <code>git</code> <code>fetch</code> will fail.  See
also <code>uploadpack.allowTipSHA1InWant</code>.</p>
</dd>
<dt class="hdlist1">uploadpack.allowTipSHA1InWant</dt>
<dd>
<p>When <code>uploadpack.hideRefs</code> is in effect, allow <code>upload-pack</code>
to accept a fetch request that asks for an object at the tip
of a hidden ref (by default, such a request is rejected).
See also <code>uploadpack.hideRefs</code>.  Even if this is false, a client
may be able to steal objects via the techniques described in the
"SECURITY" section of the <a href="gitnamespaces.html">gitnamespaces(7)</a> man page; it&#8217;s
best to keep private data in a separate repository.</p>
</dd>
<dt class="hdlist1">uploadpack.allowReachableSHA1InWant</dt>
<dd>
<p>Allow <code>upload-pack</code> to accept a fetch request that asks for an
object that is reachable from any ref tip. However, note that
calculating object reachability is computationally expensive.
Defaults to <code>false</code>.  Even if this is false, a client may be able
to steal objects via the techniques described in the "SECURITY"
section of the <a href="gitnamespaces.html">gitnamespaces(7)</a> man page; it&#8217;s best to
keep private data in a separate repository.</p>
</dd>
<dt class="hdlist1">uploadpack.allowAnySHA1InWant</dt>
<dd>
<p>Allow <code>upload-pack</code> to accept a fetch request that asks for any
object at all.
It implies <code>uploadpack.allowTipSHA1InWant</code> and
<code>uploadpack.allowReachableSHA1InWant</code>. If set to <code>true</code> it will
enable both of them, it set to <code>false</code> it will disable both of
them.
By default not set.</p>
</dd>
<dt class="hdlist1">uploadpack.keepAlive</dt>
<dd>
<p>When <code>upload-pack</code> has started <code>pack-objects</code>, there may be a
quiet period while <code>pack-objects</code> prepares the pack. Normally
it would output progress information, but if <code>--quiet</code> was used
for the fetch, <code>pack-objects</code> will output nothing at all until
the pack data begins. Some clients and networks may consider
the server to be hung and give up. Setting this option instructs
<code>upload-pack</code> to send an empty keepalive packet every
<code>uploadpack.keepAlive</code> seconds. Setting this option to 0
disables keepalive packets entirely. The default is 5 seconds.</p>
</dd>
<dt class="hdlist1">uploadpack.packObjectsHook</dt>
<dd>
<p>If this option is set, when <code>upload-pack</code> would run
<code>git</code> <code>pack-objects</code> to create a packfile for a client, it will
run this shell command instead.  The <code>pack-objects</code> command and
arguments it <em>would</em> have run (including the <code>git</code> <code>pack-objects</code>
at the beginning) are appended to the shell command. The stdin
and stdout of the hook are treated as if <code>pack-objects</code> itself
was run. I.e., <code>upload-pack</code> will feed input intended for
<code>pack-objects</code> to the hook, and expects a completed packfile on
stdout.</p>
<div class="paragraph">
<p>Note that this configuration variable is only respected when it is specified
in protected configuration (see <a href="#SCOPES">SCOPES</a>). This is a safety measure
against fetching from untrusted repositories.</p>
</div>
</dd>
<dt class="hdlist1">uploadpack.allowFilter</dt>
<dd>
<p>If this option is set, <code>upload-pack</code> will support partial
clone and partial fetch object filtering.</p>
</dd>
<dt class="hdlist1">uploadpackfilter.allow</dt>
<dd>
<p>Provides a default value for unspecified object filters (see: the
below configuration variable). If set to <code>true</code>, this will also
enable all filters which get added in the future.
Defaults to <code>true</code>.</p>
</dd>
<dt class="hdlist1">uploadpackfilter.&lt;filter&gt;.allow</dt>
<dd>
<p>Explicitly allow or ban the object filter corresponding to
<em>&lt;filter&gt;</em>, where <em>&lt;filter&gt;</em> may be one of: <code>blob:none</code>,
<code>blob:limit</code>, <code>object:type</code>, <code>tree</code>, <code>sparse:oid</code>, or <code>combine</code>.
If using combined filters, both <code>combine</code> and all of the nested
filter kinds must be allowed. Defaults to <code>uploadpackfilter.allow</code>.</p>
</dd>
<dt class="hdlist1">uploadpackfilter.tree.maxDepth</dt>
<dd>
<p>Only allow <code>--filter=tree:</code><em>&lt;n&gt;</em> when <em>&lt;n&gt;</em> is no more than the value of
<code>uploadpackfilter.tree.maxDepth</code>. If set, this also implies
<code>uploadpackfilter.tree.allow=true</code>, unless this configuration
variable had already been set. Has no effect if unset.</p>
</dd>
<dt class="hdlist1">uploadpack.allowRefInWant</dt>
<dd>
<p>If this option is set, <code>upload-pack</code> will support the <code>ref-in-want</code>
feature of the protocol version 2 <code>fetch</code> command.  This feature
is intended for the benefit of load-balanced servers which may
not have the same view of what OIDs their refs point to due to
replication delay.</p>
</dd>
<dt class="hdlist1">url.&lt;base&gt;.insteadOf</dt>
<dd>
<p>Any URL that starts with this value will be rewritten to
start, instead, with &lt;base&gt;. In cases where some site serves a
large number of repositories, and serves them with multiple
access methods, and some users need to use different access
methods, this feature allows people to specify any of the
equivalent URLs and have Git automatically rewrite the URL to
the best alternative for the particular user, even for a
never-before-seen repository on the site.  When more than one
insteadOf strings match a given URL, the longest match is used.</p>
<div class="paragraph">
<p>Note that any protocol restrictions will be applied to the rewritten
URL. If the rewrite changes the URL to use a custom protocol or remote
helper, you may need to adjust the <code>protocol.*.allow</code> config to permit
the request.  In particular, protocols you expect to use for submodules
must be set to <code>always</code> rather than the default of <code>user</code>. See the
description of <code>protocol.allow</code> above.</p>
</div>
</dd>
<dt class="hdlist1">url.&lt;base&gt;.pushInsteadOf</dt>
<dd>
<p>Any URL that starts with this value will not be pushed to;
instead, it will be rewritten to start with &lt;base&gt;, and the
resulting URL will be pushed to. In cases where some site serves
a large number of repositories, and serves them with multiple
access methods, some of which do not allow push, this feature
allows people to specify a pull-only URL and have Git
automatically use an appropriate URL to push, even for a
never-before-seen repository on the site.  When more than one
pushInsteadOf strings match a given URL, the longest match is
used.  If a remote has an explicit pushurl, Git will ignore this
setting for that remote.</p>
</dd>
<dt class="hdlist1">user.name</dt>
<dt class="hdlist1">user.email</dt>
<dt class="hdlist1">author.name</dt>
<dt class="hdlist1">author.email</dt>
<dt class="hdlist1">committer.name</dt>
<dt class="hdlist1">committer.email</dt>
<dd>
<p>The <code>user.name</code> and <code>user.email</code> variables determine what ends
up in the <code>author</code> and <code>committer</code> fields of commit
objects.
If you need the <code>author</code> or <code>committer</code> to be different, the
<code>author.name</code>, <code>author.email</code>, <code>committer.name</code>, or
<code>committer.email</code> variables can be set.
All of these can be overridden by the <code>GIT_AUTHOR_NAME</code>,
<code>GIT_AUTHOR_EMAIL</code>, <code>GIT_COMMITTER_NAME</code>,
<code>GIT_COMMITTER_EMAIL</code>, and <code>EMAIL</code> environment variables.</p>
<div class="paragraph">
<p>Note that the <code>name</code> forms of these variables conventionally refer to
some form of a personal name.  See <a href="git-commit.html">git-commit(1)</a> and the
environment variables section of <a href="git.html">git(1)</a> for more information on
these settings and the <code>credential.username</code> option if you&#8217;re looking
for authentication credentials instead.</p>
</div>
</dd>
<dt class="hdlist1">user.useConfigOnly</dt>
<dd>
<p>Instruct Git to avoid trying to guess defaults for <code>user.email</code>
and <code>user.name</code>, and instead retrieve the values only from the
configuration. For example, if you have multiple email addresses
and would like to use a different one for each repository, then
with this configuration option set to <code>true</code> in the global config
along with a name, Git will prompt you to set up an email before
making new commits in a newly cloned repository.
Defaults to <code>false</code>.</p>
</dd>
<dt class="hdlist1">user.signingKey</dt>
<dd>
<p>If <a href="git-tag.html">git-tag(1)</a> or <a href="git-commit.html">git-commit(1)</a> is not selecting the
key you want it to automatically when creating a signed tag or
commit, you can override the default selection with this variable.
This option is passed unchanged to gpg&#8217;s --local-user parameter,
so you may specify a key using any method that gpg supports.
If gpg.format is set to <code>ssh</code> this can contain the path to either
your private ssh key or the public key when ssh-agent is used.
Alternatively it can contain a public key prefixed with <code>key::</code>
directly (e.g.: "key::ssh-rsa XXXXXX identifier"). The private key
needs to be available via ssh-agent. If not set Git will call
gpg.ssh.defaultKeyCommand (e.g.: "ssh-add -L") and try to use the
first key available. For backward compatibility, a raw key which
begins with "ssh-", such as "ssh-rsa XXXXXX identifier", is treated
as "key::ssh-rsa XXXXXX identifier", but this form is deprecated;
use the <code>key::</code> form instead.</p>
</dd>
<dt class="hdlist1">versionsort.prereleaseSuffix (deprecated)</dt>
<dd>
<p>Deprecated alias for <code>versionsort.suffix</code>.  Ignored if
<code>versionsort.suffix</code> is set.</p>
</dd>
<dt class="hdlist1">versionsort.suffix</dt>
<dd>
<p>Even when version sort is used in <a href="git-tag.html">git-tag(1)</a>, tagnames
with the same base version but different suffixes are still sorted
lexicographically, resulting e.g. in prerelease tags appearing
after the main release (e.g. "1.0-rc1" after "1.0").  This
variable can be specified to determine the sorting order of tags
with different suffixes.</p>
<div class="paragraph">
<p>By specifying a single suffix in this variable, any tagname containing
that suffix will appear before the corresponding main release.  E.g. if
the variable is set to "-rc", then all "1.0-rcX" tags will appear before
"1.0".  If specified multiple times, once per suffix, then the order of
suffixes in the configuration will determine the sorting order of tagnames
with those suffixes.  E.g. if "-pre" appears before "-rc" in the
configuration, then all "1.0-preX" tags will be listed before any
"1.0-rcX" tags.  The placement of the main release tag relative to tags
with various suffixes can be determined by specifying the empty suffix
among those other suffixes.  E.g. if the suffixes "-rc", "", "-ck", and
"-bfs" appear in the configuration in this order, then all "v4.8-rcX" tags
are listed first, followed by "v4.8", then "v4.8-ckX" and finally
"v4.8-bfsX".</p>
</div>
<div class="paragraph">
<p>If more than one suffix matches the same tagname, then that tagname will
be sorted according to the suffix which starts at the earliest position in
the tagname.  If more than one different matching suffix starts at
that earliest position, then that tagname will be sorted according to the
longest of those suffixes.
The sorting order between different suffixes is undefined if they are
in multiple config files.</p>
</div>
</dd>
<dt class="hdlist1">web.browser</dt>
<dd>
<p>Specify a web browser that may be used by some commands.
Currently only <a href="git-instaweb.html">git-instaweb(1)</a> and <a href="git-help.html">git-help(1)</a>
may use it.</p>
</dd>
<dt class="hdlist1">worktree.guessRemote</dt>
<dd>
<p>If no branch is specified and neither <code>-b</code> nor <code>-B</code> nor
<code>--detach</code> is used, then <code>git</code> <code>worktree</code> <code>add</code> defaults to
creating a new branch from HEAD.  If <code>worktree.guessRemote</code> is
set to true, <code>worktree</code> <code>add</code> tries to find a remote-tracking
branch whose name uniquely matches the new branch name.  If
such a branch exists, it is checked out and set as "upstream"
for the new branch.  If no such match can be found, it falls
back to creating a new branch from the current HEAD.</p>
</dd>
<dt class="hdlist1">worktree.useRelativePaths</dt>
<dd>
<p>Link worktrees using relative paths (when "true") or absolute
paths (when "false"). This is particularly useful for setups
where the repository and worktrees may be moved between
different locations or environments. Defaults to "false".</p>
<div class="paragraph">
<p>Note that setting <code>worktree.useRelativePaths</code> to "true" implies enabling the
<code>extension.relativeWorktrees</code> config (see <a href="git-config.html">git-config(1)</a>),
thus making it incompatible with older versions of Git.</p>
</div>
</dd>
</dl>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_bugs">BUGS</h2>
<div class="sectionbody">
<div class="paragraph">
<p>When using the deprecated [<code>section.subsection</code>] syntax, changing a value
will result in adding a multi-line key instead of a change, if the subsection
is given with at least one uppercase character. For example when the config
looks like</p>
</div>
<div class="listingblock">
<div class="content">
<pre>  [section.subsection]
    key = value1</pre>
</div>
</div>
<div class="paragraph">
<p>and running <code>git</code> <code>config</code> <code>section.Subsection.key</code> <code>value2</code> will result in</p>
</div>
<div class="listingblock">
<div class="content">
<pre>  [section.subsection]
    key = value1
    key = value2</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_git">GIT</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Part of the <a href="git.html">git(1)</a> suite</p>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2025-07-14 12:11:05 -0700
</div>
</div>
</body>
</html>