blob: 03eb7c701189c1ec5300d0095373fb37ce9ea9b3 [file] [log] [blame]
Junio C Hamano7ad22dc2007-01-29 02:55:481<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6<meta name="generator" content="AsciiDoc 7.0.2" />
7<style type="text/css">
8/* Debug borders */
9p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
10/*
11 border: 1px solid red;
12*/
13}
14
15body {
16 margin: 1em 5% 1em 5%;
17}
18
19a { color: blue; }
20a:visited { color: fuchsia; }
21
22em {
23 font-style: italic;
24}
25
26strong {
27 font-weight: bold;
28}
29
30tt {
31 color: navy;
32}
33
34h1, h2, h3, h4, h5, h6 {
35 color: #527bbd;
36 font-family: sans-serif;
37 margin-top: 1.2em;
38 margin-bottom: 0.5em;
39 line-height: 1.3;
40}
41
42h1 {
43 border-bottom: 2px solid silver;
44}
45h2 {
46 border-bottom: 2px solid silver;
47 padding-top: 0.5em;
48}
49
50div.sectionbody {
51 font-family: serif;
52 margin-left: 0;
53}
54
55hr {
56 border: 1px solid silver;
57}
58
59p {
60 margin-top: 0.5em;
61 margin-bottom: 0.5em;
62}
63
64pre {
65 padding: 0;
66 margin: 0;
67}
68
69span#author {
70 color: #527bbd;
71 font-family: sans-serif;
72 font-weight: bold;
73 font-size: 1.2em;
74}
75span#email {
76}
77span#revision {
78 font-family: sans-serif;
79}
80
81div#footer {
82 font-family: sans-serif;
83 font-size: small;
84 border-top: 2px solid silver;
85 padding-top: 0.5em;
86 margin-top: 4.0em;
87}
88div#footer-text {
89 float: left;
90 padding-bottom: 0.5em;
91}
92div#footer-badges {
93 float: right;
94 padding-bottom: 0.5em;
95}
96
97div#preamble,
98div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
99div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
100div.admonitionblock {
101 margin-right: 10%;
102 margin-top: 1.5em;
103 margin-bottom: 1.5em;
104}
105div.admonitionblock {
106 margin-top: 2.5em;
107 margin-bottom: 2.5em;
108}
109
110div.content { /* Block element content. */
111 padding: 0;
112}
113
114/* Block element titles. */
115div.title, caption.title {
116 font-family: sans-serif;
117 font-weight: bold;
118 text-align: left;
119 margin-top: 1.0em;
120 margin-bottom: 0.5em;
121}
122div.title + * {
123 margin-top: 0;
124}
125
126td div.title:first-child {
127 margin-top: 0.0em;
128}
129div.content div.title:first-child {
130 margin-top: 0.0em;
131}
132div.content + div.title {
133 margin-top: 0.0em;
134}
135
136div.sidebarblock > div.content {
137 background: #ffffee;
138 border: 1px solid silver;
139 padding: 0.5em;
140}
141
142div.listingblock > div.content {
143 border: 1px solid silver;
144 background: #f4f4f4;
145 padding: 0.5em;
146}
147
148div.quoteblock > div.content {
149 padding-left: 2.0em;
150}
151div.quoteblock .attribution {
152 text-align: right;
153}
154
155div.admonitionblock .icon {
156 vertical-align: top;
157 font-size: 1.1em;
158 font-weight: bold;
159 text-decoration: underline;
160 color: #527bbd;
161 padding-right: 0.5em;
162}
163div.admonitionblock td.content {
164 padding-left: 0.5em;
165 border-left: 2px solid silver;
166}
167
168div.exampleblock > div.content {
169 border-left: 2px solid silver;
170 padding: 0.5em;
171}
172
173div.verseblock div.content {
174 white-space: pre;
175}
176
177div.imageblock div.content { padding-left: 0; }
178div.imageblock img { border: 1px solid silver; }
179span.image img { border-style: none; }
180
181dl {
182 margin-top: 0.8em;
183 margin-bottom: 0.8em;
184}
185dt {
186 margin-top: 0.5em;
187 margin-bottom: 0;
188 font-style: italic;
189}
190dd > *:first-child {
191 margin-top: 0;
192}
193
194ul, ol {
195 list-style-position: outside;
196}
197ol.olist2 {
198 list-style-type: lower-alpha;
199}
200
201div.tableblock > table {
202 border-color: #527bbd;
203 border-width: 3px;
204}
205thead {
206 font-family: sans-serif;
207 font-weight: bold;
208}
209tfoot {
210 font-weight: bold;
211}
212
213div.hlist {
214 margin-top: 0.8em;
215 margin-bottom: 0.8em;
216}
217td.hlist1 {
218 vertical-align: top;
219 font-style: italic;
220 padding-right: 0.8em;
221}
222td.hlist2 {
223 vertical-align: top;
224}
225
226@media print {
227 div#footer-badges { display: none; }
228}
229include::./stylesheets/xhtml11-manpage.css[]
230/* Workarounds for IE6's broken and incomplete CSS2. */
231
232div.sidebar-content {
233 background: #ffffee;
234 border: 1px solid silver;
235 padding: 0.5em;
236}
237div.sidebar-title, div.image-title {
238 font-family: sans-serif;
239 font-weight: bold;
240 margin-top: 0.0em;
241 margin-bottom: 0.5em;
242}
243
244div.listingblock div.content {
245 border: 1px solid silver;
246 background: #f4f4f4;
247 padding: 0.5em;
248}
249
250div.quoteblock-content {
251 padding-left: 2.0em;
252}
253
254div.exampleblock-content {
255 border-left: 2px solid silver;
256 padding-left: 0.5em;
257}
258</style>
259<title>git-config(1)</title>
260</head>
261<body>
262<div id="header">
263<h1>
264git-config(1) Manual Page
265</h1>
266<h2>NAME</h2>
267<div class="sectionbody">
268<p>git-config -
269 Get and set repository or global options
270</p>
271</div>
272</div>
273<h2>SYNOPSIS</h2>
274<div class="sectionbody">
275<div class="verseblock">
276<div class="content"><em>git-config</em> [--global] [type] name [value [value_regex]]
277<em>git-config</em> [--global] [type] --add name value
278<em>git-config</em> [--global] [type] --replace-all name [value [value_regex]]
279<em>git-config</em> [--global] [type] --get name [value_regex]
280<em>git-config</em> [--global] [type] --get-all name [value_regex]
281<em>git-config</em> [--global] [type] --unset name [value_regex]
282<em>git-config</em> [--global] [type] --unset-all name [value_regex]
283<em>git-config</em> [--global] -l | --list</div></div>
284</div>
285<h2>DESCRIPTION</h2>
286<div class="sectionbody">
287<p>You can query/set/replace/unset options with this command. The name is
288actually the section and the key separated by a dot, and the value will be
289escaped.</p>
290<p>Multiple lines can be added to an option by using the <em>--add</em> option.
291If you want to update or unset an option which can occur on multiple
292lines, a POSIX regexp <tt>value_regex</tt> needs to be given. Only the
293existing values that match the regexp are updated or unset. If
294you want to handle the lines that do <strong>not</strong> match the regex, just
295prepend a single exclamation mark in front (see EXAMPLES).</p>
296<p>The type specifier can be either <em>--int</em> or <em>--bool</em>, which will make
297<em>git-config</em> ensure that the variable(s) are of the given type and
298convert the value to the canonical form (simple decimal number for int,
299a "true" or "false" string for bool). If no type specifier is passed,
300no checks or transformations are performed on the value.</p>
301<p>This command will fail if:</p>
302<ol>
303<li>
304<p>
305The .git/config file is invalid,
306</p>
307</li>
308<li>
309<p>
310Can not write to .git/config,
311</p>
312</li>
313<li>
314<p>
315no section was provided,
316</p>
317</li>
318<li>
319<p>
320the section or key is invalid,
321</p>
322</li>
323<li>
324<p>
325you try to unset an option which does not exist,
326</p>
327</li>
328<li>
329<p>
330you try to unset/set an option for which multiple lines match, or
331</p>
332</li>
333<li>
334<p>
335you use --global option without $HOME being properly set.
336</p>
337</li>
338</ol>
339</div>
340<h2>OPTIONS</h2>
341<div class="sectionbody">
342<dl>
343<dt>
344--replace-all
345</dt>
346<dd>
347<p>
348 Default behavior is to replace at most one line. This replaces
349 all lines matching the key (and optionally the value_regex).
350</p>
351</dd>
352<dt>
353--add
354</dt>
355<dd>
356<p>
357 Adds a new line to the option without altering any existing
358 values. This is the same as providing <em>^$</em> as the value_regex.
359</p>
360</dd>
361<dt>
362--get
363</dt>
364<dd>
365<p>
366 Get the value for a given key (optionally filtered by a regex
367 matching the value). Returns error code 1 if the key was not
368 found and error code 2 if multiple key values were found.
369</p>
370</dd>
371<dt>
372--get-all
373</dt>
374<dd>
375<p>
376 Like get, but does not fail if the number of values for the key
377 is not exactly one.
378</p>
379</dd>
380<dt>
381--get-regexp
382</dt>
383<dd>
384<p>
385 Like --get-all, but interprets the name as a regular expression.
386</p>
387</dd>
388<dt>
389--global
390</dt>
391<dd>
392<p>
393 Use global ~/.gitconfig file rather than the repository .git/config.
394</p>
395</dd>
396<dt>
397--unset
398</dt>
399<dd>
400<p>
401 Remove the line matching the key from config file.
402</p>
403</dd>
404<dt>
405--unset-all
406</dt>
407<dd>
408<p>
409 Remove all matching lines from config file.
410</p>
411</dd>
412<dt>
413-l, --list
414</dt>
415<dd>
416<p>
417 List all variables set in config file.
418</p>
419</dd>
420<dt>
421--bool
422</dt>
423<dd>
424<p>
425 git-config will ensure that the output is "true" or "false"
426</p>
427</dd>
428<dt>
429--int
430</dt>
431<dd>
432<p>
433 git-config will ensure that the output is a simple
434 decimal number. An optional value suffix of <em>k</em>, <em>m</em>, or <em>g</em>
435 in the config file will cause the value to be multiplied
436 by 1024, 1048576, or 1073741824 prior to output.
437</p>
438</dd>
439</dl>
440</div>
441<h2>ENVIRONMENT</h2>
442<div class="sectionbody">
443<dl>
444<dt>
445GIT_CONFIG
446</dt>
447<dd>
448<p>
449 Take the configuration from the given file instead of .git/config.
450 Using the "--global" option forces this to ~/.gitconfig.
451</p>
452</dd>
453<dt>
454GIT_CONFIG_LOCAL
455</dt>
456<dd>
457<p>
458 Currently the same as $GIT_CONFIG; when Git will support global
459 configuration files, this will cause it to take the configuration
460 from the global configuration file in addition to the given file.
461</p>
462</dd>
463</dl>
464</div>
465<h2>EXAMPLE</h2>
466<div class="sectionbody">
467<p>Given a .git/config like this:</p>
468<div class="literalblock">
469<div class="content">
470<pre><tt>#
471# This is the config file, and
472# a '#' or ';' character indicates
473# a comment
474#</tt></pre>
475</div></div>
476<div class="literalblock">
477<div class="content">
478<pre><tt>; core variables
479[core]
480 ; Don't trust file modes
481 filemode = false</tt></pre>
482</div></div>
483<div class="literalblock">
484<div class="content">
485<pre><tt>; Our diff algorithm
486[diff]
487 external = "/usr/local/bin/gnu-diff -u"
488 renames = true</tt></pre>
489</div></div>
490<div class="literalblock">
491<div class="content">
492<pre><tt>; Proxy settings
493[core]
494 gitproxy="ssh" for "ssh://kernel.org/"
495 gitproxy="proxy-command" for kernel.org
496 gitproxy="myprotocol-command" for "my://"
497 gitproxy=default-proxy ; for all the rest</tt></pre>
498</div></div>
499<p>you can set the filemode to true with</p>
500<div class="listingblock">
501<div class="content">
502<pre><tt>% git config core.filemode true</tt></pre>
503</div></div>
504<p>The hypothetical proxy command entries actually have a postfix to discern
505what URL they apply to. Here is how to change the entry for kernel.org
506to "ssh".</p>
507<div class="listingblock">
508<div class="content">
509<pre><tt>% git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</tt></pre>
510</div></div>
511<p>This makes sure that only the key/value pair for kernel.org is replaced.</p>
512<p>To delete the entry for renames, do</p>
513<div class="listingblock">
514<div class="content">
515<pre><tt>% git config --unset diff.renames</tt></pre>
516</div></div>
517<p>If you want to delete an entry for a multivar (like core.gitproxy above),
518you have to provide a regex matching the value of exactly one line.</p>
519<p>To query the value for a given key, do</p>
520<div class="listingblock">
521<div class="content">
522<pre><tt>% git config --get core.filemode</tt></pre>
523</div></div>
524<p>or</p>
525<div class="listingblock">
526<div class="content">
527<pre><tt>% git config core.filemode</tt></pre>
528</div></div>
529<p>or, to query a multivar:</p>
530<div class="listingblock">
531<div class="content">
532<pre><tt>% git config --get core.gitproxy "for kernel.org$"</tt></pre>
533</div></div>
534<p>If you want to know all the values for a multivar, do:</p>
535<div class="listingblock">
536<div class="content">
537<pre><tt>% git config --get-all core.gitproxy</tt></pre>
538</div></div>
539<p>If you like to live dangerous, you can replace <strong>all</strong> core.gitproxy by a
540new one with</p>
541<div class="listingblock">
542<div class="content">
543<pre><tt>% git config --replace-all core.gitproxy ssh</tt></pre>
544</div></div>
545<p>However, if you really only want to replace the line for the default proxy,
546i.e. the one without a "for &#8230;" postfix, do something like this:</p>
547<div class="listingblock">
548<div class="content">
549<pre><tt>% git config core.gitproxy ssh '! for '</tt></pre>
550</div></div>
551<p>To actually match only values with an exclamation mark, you have to</p>
552<div class="listingblock">
553<div class="content">
554<pre><tt>% git config section.key value '[!]'</tt></pre>
555</div></div>
556<p>To add a new proxy, without altering any of the existing ones, use</p>
557<div class="listingblock">
558<div class="content">
559<pre><tt>% git config core.gitproxy '"proxy" for example.com'</tt></pre>
560</div></div>
561</div>
562<h2>CONFIGURATION FILE</h2>
563<div class="sectionbody">
564<p>The git configuration file contains a number of variables that affect
565the git command's behavior. <tt>.git/config</tt> file for each repository
566is used to store the information for that repository, and
567<tt>$HOME/.gitconfig</tt> is used to store per user information to give
568fallback values for <tt>.git/config</tt> file.</p>
569<p>They can be used by both the git plumbing
570and the porcelains. The variables are divided into sections, where
571in the fully qualified variable name the variable itself is the last
572dot-separated segment and the section name is everything before the last
573dot. The variable names are case-insensitive and only alphanumeric
574characters are allowed. Some variables may appear multiple times.</p>
575<h3>Syntax</h3>
576<p>The syntax is fairly flexible and permissive; whitespaces are mostly
577ignored. The <em>#</em> and <em>;</em> characters begin comments to the end of line,
578blank lines are ignored.</p>
579<p>The file consists of sections and variables. A section begins with
580the name of the section in square brackets and continues until the next
581section begins. Section names are not case sensitive. Only alphanumeric
582characters, <em><tt>-</tt></em> and <em><tt>.</tt></em> are allowed in section names. Each variable
583must belong to some section, which means that there must be section
584header before first setting of a variable.</p>
585<p>Sections can be further divided into subsections. To begin a subsection
586put its name in double quotes, separated by space from the section name,
587in the section header, like in example below:</p>
588<div class="listingblock">
589<div class="content">
590<pre><tt> [section "subsection"]
591</tt></pre>
592</div></div>
593<p>Subsection names can contain any characters except newline (doublequote
594<em><tt>"</tt></em> and backslash have to be escaped as <em><tt>\"</tt></em> and <em><tt>\\</tt></em>,
Junio C Hamanoee1e4282007-02-04 08:32:04595respectively) and are case sensitive. Section header cannot span multiple
Junio C Hamano7ad22dc2007-01-29 02:55:48596lines. Variables may belong directly to a section or to a given subsection.
597You can have <tt>[section]</tt> if you have <tt>[section "subsection"]</tt>, but you
598don't need to.</p>
599<p>There is also (case insensitive) alternative <tt>[section.subsection]</tt> syntax.
600In this syntax subsection names follow the same restrictions as for section
601name.</p>
602<p>All the other lines are recognized as setting variables, in the form
603<em>name = value</em>. If there is no equal sign on the line, the entire line
604is taken as <em>name</em> and the variable is recognized as boolean "true".
605The variable names are case-insensitive and only alphanumeric
606characters and <em><tt>-</tt></em> are allowed. There can be more than one value
607for a given variable; we say then that variable is multivalued.</p>
608<p>Leading and trailing whitespace in a variable value is discarded.
609Internal whitespace within a variable value is retained verbatim.</p>
610<p>The values following the equals sign in variable assign are all either
611a string, an integer, or a boolean. Boolean values may be given as yes/no,
6120/1 or true/false. Case is not significant in boolean values, when
613converting value to the canonical form using <em>--bool</em> type specifier;
614<tt>git-config</tt> will ensure that the output is "true" or "false".</p>
615<p>String values may be entirely or partially enclosed in double quotes.
616You need to enclose variable value in double quotes if you want to
617preserve leading or trailing whitespace, or if variable value contains
618beginning of comment characters (if it contains <em>#</em> or <em>;</em>).
619Double quote <em><tt>"</tt></em> and backslash <em><tt>\</tt></em> characters in variable value must
620be escaped: use <em><tt>\"</tt></em> for <em><tt>"</tt></em> and <em><tt>\\</tt></em> for <em><tt>\</tt></em>.</p>
621<p>The following escape sequences (beside <em><tt>\"</tt></em> and <em><tt>\\</tt></em>) are recognized:
622<em><tt>\n</tt></em> for newline character (NL), <em><tt>\t</tt></em> for horizontal tabulation (HT, TAB)
623and <em><tt>\b</tt></em> for backspace (BS). No other char escape sequence, nor octal
624char sequences are valid.</p>
625<p>Variable value ending in a <em><tt>\</tt></em> is continued on the next line in the
626customary UNIX fashion.</p>
627<p>Some variables may require special value format.</p>
628<h3>Example</h3>
629<div class="literalblock">
630<div class="content">
631<pre><tt># Core variables
632[core]
633 ; Don't trust file modes
634 filemode = false</tt></pre>
635</div></div>
636<div class="literalblock">
637<div class="content">
638<pre><tt># Our diff algorithm
639[diff]
640 external = "/usr/local/bin/gnu-diff -u"
641 renames = true</tt></pre>
642</div></div>
643<div class="literalblock">
644<div class="content">
645<pre><tt>[branch "devel"]
646 remote = origin
647 merge = refs/heads/devel</tt></pre>
648</div></div>
649<div class="literalblock">
650<div class="content">
651<pre><tt># Proxy settings
652[core]
653 gitProxy="ssh" for "ssh://kernel.org/"
654 gitProxy=default-proxy ; for the rest</tt></pre>
655</div></div>
656<h3>Variables</h3>
657<p>Note that this list is non-comprehensive and not necessarily complete.
658For command-specific variables, you will find a more detailed description
659in the appropriate manual page. You will find a description of non-core
660porcelain configuration variables in the respective porcelain documentation.</p>
661<dl>
662<dt>
663core.fileMode
664</dt>
665<dd>
666<p>
667 If false, the executable bit differences between the index and
668 the working copy are ignored; useful on broken filesystems like FAT.
669 See <a href="git-update-index.html">git-update-index(1)</a>. True by default.
670</p>
671</dd>
672<dt>
673core.gitProxy
674</dt>
675<dd>
676<p>
677 A "proxy command" to execute (as <em>command host port</em>) instead
678 of establishing direct connection to the remote server when
679 using the git protocol for fetching. If the variable value is
680 in the "COMMAND for DOMAIN" format, the command is applied only
681 on hostnames ending with the specified domain string. This variable
682 may be set multiple times and is matched in the given order;
683 the first match wins.
684</p>
685<p>Can be overridden by the <em>GIT_PROXY_COMMAND</em> environment variable
686(which always applies universally, without the special "for"
687handling).</p>
688</dd>
689<dt>
690core.ignoreStat
691</dt>
692<dd>
693<p>
694 The working copy files are assumed to stay unchanged until you
695 mark them otherwise manually - Git will not detect the file changes
696 by lstat() calls. This is useful on systems where those are very
697 slow, such as Microsoft Windows. See <a href="git-update-index.html">git-update-index(1)</a>.
698 False by default.
699</p>
700</dd>
701<dt>
702core.preferSymlinkRefs
703</dt>
704<dd>
705<p>
706 Instead of the default "symref" format for HEAD
707 and other symbolic reference files, use symbolic links.
708 This is sometimes needed to work with old scripts that
709 expect HEAD to be a symbolic link.
710</p>
711</dd>
712<dt>
713core.logAllRefUpdates
714</dt>
715<dd>
716<p>
717 Updates to a ref &lt;ref&gt; is logged to the file
718 "$GIT_DIR/logs/&lt;ref&gt;", by appending the new and old
719 SHA1, the date/time and the reason of the update, but
720 only when the file exists. If this configuration
721 variable is set to true, missing "$GIT_DIR/logs/&lt;ref&gt;"
722 file is automatically created for branch heads.
723</p>
724<p>This information can be used to determine what commit
725was the tip of a branch "2 days ago".</p>
726<p>This value is true by default in a repository that has
727a working directory associated with it, and false by
728default in a bare repository.</p>
729</dd>
730<dt>
731core.repositoryFormatVersion
732</dt>
733<dd>
734<p>
735 Internal variable identifying the repository format and layout
736 version.
737</p>
738</dd>
739<dt>
740core.sharedRepository
741</dt>
742<dd>
743<p>
744 When <em>group</em> (or <em>true</em>), the repository is made shareable between
745 several users in a group (making sure all the files and objects are
746 group-writable). When <em>all</em> (or <em>world</em> or <em>everybody</em>), the
747 repository will be readable by all users, additionally to being
748 group-shareable. When <em>umask</em> (or <em>false</em>), git will use permissions
749 reported by umask(2). See <a href="git-init.html">git-init(1)</a>. False by default.
750</p>
751</dd>
752<dt>
753core.warnAmbiguousRefs
754</dt>
755<dd>
756<p>
757 If true, git will warn you if the ref name you passed it is ambiguous
758 and might match multiple refs in the .git/refs/ tree. True by default.
759</p>
760</dd>
761<dt>
762core.compression
763</dt>
764<dd>
765<p>
766 An integer -1..9, indicating the compression level for objects that
767 are not in a pack file. -1 is the zlib and git default. 0 means no
768 compression, and 1..9 are various speed/size tradeoffs, 9 being
769 slowest.
770</p>
771</dd>
772<dt>
773core.legacyheaders
774</dt>
775<dd>
776<p>
777 A boolean which enables the legacy object header format in case
778 you want to interoperate with old clients accessing the object
779 database directly (where the "http://" and "rsync://" protocols
780 count as direct access).
781</p>
782</dd>
783<dt>
784core.packedGitWindowSize
785</dt>
786<dd>
787<p>
788 Number of bytes of a pack file to map into memory in a
789 single mapping operation. Larger window sizes may allow
790 your system to process a smaller number of large pack files
791 more quickly. Smaller window sizes will negatively affect
792 performance due to increased calls to the operating system's
793 memory manager, but may improve performance when accessing
794 a large number of large pack files.
795</p>
796<p>Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
797MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
798be reasonable for all users/operating systems. You probably do
799not need to adjust this value.</p>
800<p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p>
801</dd>
802<dt>
803core.packedGitLimit
804</dt>
805<dd>
806<p>
807 Maximum number of bytes to map simultaneously into memory
808 from pack files. If Git needs to access more than this many
809 bytes at once to complete an operation it will unmap existing
810 regions to reclaim virtual address space within the process.
811</p>
812<p>Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.
813This should be reasonable for all users/operating systems, except on
814the largest projects. You probably do not need to adjust this value.</p>
815<p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p>
816</dd>
817<dt>
818alias.*
819</dt>
820<dd>
821<p>
822 Command aliases for the <a href="git.html">git(1)</a> command wrapper - e.g.
823 after defining "alias.last = cat-file commit HEAD", the invocation
824 "git last" is equivalent to "git cat-file commit HEAD". To avoid
825 confusion and troubles with script usage, aliases that
826 hide existing git commands are ignored. Arguments are split by
827 spaces, the usual shell quoting and escaping is supported.
828 quote pair and a backslash can be used to quote them.
829</p>
Junio C Hamano9cb74f22007-02-12 04:15:05830<div class="literalblock">
831<div class="content">
832<pre><tt>If the alias expansion is prefixed with an exclamation point,
833it will be treated as a shell command. For example, defining
834"alias.new = !gitk --all --not ORIG_HEAD", the invocation
835"git new" is equivalent to running the shell command
836"gitk --all --not ORIG_HEAD".</tt></pre>
837</div></div>
Junio C Hamano7ad22dc2007-01-29 02:55:48838</dd>
839<dt>
840apply.whitespace
841</dt>
842<dd>
843<p>
844 Tells <tt>git-apply</tt> how to handle whitespaces, in the same way
845 as the <em>--whitespace</em> option. See <a href="git-apply.html">git-apply(1)</a>.
846</p>
847</dd>
848<dt>
849branch.&lt;name&gt;.remote
850</dt>
851<dd>
852<p>
853 When in branch &lt;name&gt;, it tells <tt>git fetch</tt> which remote to fetch.
854 If this option is not given, <tt>git fetch</tt> defaults to remote "origin".
855</p>
856</dd>
857<dt>
858branch.&lt;name&gt;.merge
859</dt>
860<dd>
861<p>
862 When in branch &lt;name&gt;, it tells <tt>git fetch</tt> the default refspec to
863 be marked for merging in FETCH_HEAD. The value has exactly to match
864 a remote part of one of the refspecs which are fetched from the remote
865 given by "branch.&lt;name&gt;.remote".
866 The merge information is used by <tt>git pull</tt> (which at first calls
867 <tt>git fetch</tt>) to lookup the default branch for merging. Without
868 this option, <tt>git pull</tt> defaults to merge the first refspec fetched.
869 Specify multiple values to get an octopus merge.
870</p>
871</dd>
872<dt>
873color.branch
874</dt>
875<dd>
876<p>
877 A boolean to enable/disable color in the output of
878 <a href="git-branch.html">git-branch(1)</a>. May be set to <tt>true</tt> (or <tt>always</tt>),
879 <tt>false</tt> (or <tt>never</tt>) or <tt>auto</tt>, in which case colors are used
880 only when the output is to a terminal. Defaults to false.
881</p>
882</dd>
883<dt>
884color.branch.&lt;slot&gt;
885</dt>
886<dd>
887<p>
888 Use customized color for branch coloration. <tt>&lt;slot&gt;</tt> is one of
889 <tt>current</tt> (the current branch), <tt>local</tt> (a local branch),
890 <tt>remote</tt> (a tracking branch in refs/remotes/), <tt>plain</tt> (other
891 refs).
892</p>
893<p>The value for these configuration variables is a list of colors (at most
894two) and attributes (at most one), separated by spaces. The colors
895accepted are <tt>normal</tt>, <tt>black</tt>, <tt>red</tt>, <tt>green</tt>, <tt>yellow</tt>, <tt>blue</tt>,
896<tt>magenta</tt>, <tt>cyan</tt> and <tt>white</tt>; the attributes are <tt>bold</tt>, <tt>dim</tt>, <tt>ul</tt>,
897<tt>blink</tt> and <tt>reverse</tt>. The first color given is the foreground; the
898second is the background. The position of the attribute, if any,
899doesn't matter.</p>
900</dd>
901<dt>
902color.diff
903</dt>
904<dd>
905<p>
906 When true (or <tt>always</tt>), always use colors in patch.
907 When false (or <tt>never</tt>), never. When set to <tt>auto</tt>, use
908 colors only when the output is to the terminal.
909</p>
910</dd>
911<dt>
912color.diff.&lt;slot&gt;
913</dt>
914<dd>
915<p>
916 Use customized color for diff colorization. <tt>&lt;slot&gt;</tt> specifies
917 which part of the patch to use the specified color, and is one
918 of <tt>plain</tt> (context text), <tt>meta</tt> (metainformation), <tt>frag</tt>
919 (hunk header), <tt>old</tt> (removed lines), <tt>new</tt> (added lines),
920 <tt>commit</tt> (commit headers), or <tt>whitespace</tt> (highlighting dubious
921 whitespace). The values of these variables may be specified as
922 in color.branch.&lt;slot&gt;.
923</p>
924</dd>
925<dt>
926color.pager
927</dt>
928<dd>
929<p>
930 A boolean to enable/disable colored output when the pager is in
931 use (default is true).
932</p>
933</dd>
934<dt>
935color.status
936</dt>
937<dd>
938<p>
939 A boolean to enable/disable color in the output of
940 <a href="git-status.html">git-status(1)</a>. May be set to <tt>true</tt> (or <tt>always</tt>),
941 <tt>false</tt> (or <tt>never</tt>) or <tt>auto</tt>, in which case colors are used
942 only when the output is to a terminal. Defaults to false.
943</p>
944</dd>
945<dt>
946color.status.&lt;slot&gt;
947</dt>
948<dd>
949<p>
950 Use customized color for status colorization. <tt>&lt;slot&gt;</tt> is
951 one of <tt>header</tt> (the header text of the status message),
952 <tt>added</tt> or <tt>updated</tt> (files which are added but not committed),
953 <tt>changed</tt> (files which are changed but not added in the index),
954 or <tt>untracked</tt> (files which are not tracked by git). The values of
955 these variables may be specified as in color.branch.&lt;slot&gt;.
956</p>
957</dd>
958<dt>
959diff.renameLimit
960</dt>
961<dd>
962<p>
963 The number of files to consider when performing the copy/rename
964 detection; equivalent to the git diff option <em>-l</em>.
965</p>
966</dd>
967<dt>
968diff.renames
969</dt>
970<dd>
971<p>
972 Tells git to detect renames. If set to any boolean value, it
973 will enable basic rename detection. If set to "copies" or
974 "copy", it will detect copies, as well.
975</p>
976</dd>
977<dt>
978fetch.unpackLimit
979</dt>
980<dd>
981<p>
982 If the number of objects fetched over the git native
983 transfer is below this
984 limit, then the objects will be unpacked into loose object
985 files. However if the number of received objects equals or
986 exceeds this limit then the received pack will be stored as
987 a pack, after adding any missing delta bases. Storing the
988 pack from a push can make the push operation complete faster,
989 especially on slow filesystems.
990</p>
991</dd>
992<dt>
993format.headers
994</dt>
995<dd>
996<p>
997 Additional email headers to include in a patch to be submitted
998 by mail. See <a href="git-format-patch.html">git-format-patch(1)</a>.
999</p>
1000</dd>
1001<dt>
1002gc.reflogexpire
1003</dt>
1004<dd>
1005<p>
1006 <tt>git reflog expire</tt> removes reflog entries older than
1007 this time; defaults to 90 days.
1008</p>
1009</dd>
1010<dt>
1011gc.reflogexpireunreachable
1012</dt>
1013<dd>
1014<p>
1015 <tt>git reflog expire</tt> removes reflog entries older than
1016 this time and are not reachable from the current tip;
1017 defaults to 30 days.
1018</p>
1019</dd>
1020<dt>
1021gc.rerereresolved
1022</dt>
1023<dd>
1024<p>
1025 Records of conflicted merge you resolved earlier are
1026 kept for this many days when <tt>git rerere gc</tt> is run.
1027 The default is 60 days. See <a href="git-rerere.html">git-rerere(1)</a>.
1028</p>
1029</dd>
1030<dt>
1031gc.rerereunresolved
1032</dt>
1033<dd>
1034<p>
1035 Records of conflicted merge you have not resolved are
1036 kept for this many days when <tt>git rerere gc</tt> is run.
1037 The default is 15 days. See <a href="git-rerere.html">git-rerere(1)</a>.
1038</p>
1039</dd>
1040<dt>
1041gitcvs.enabled
1042</dt>
1043<dd>
1044<p>
1045 Whether the cvs pserver interface is enabled for this repository.
1046 See <a href="git-cvsserver.html">git-cvsserver(1)</a>.
1047</p>
1048</dd>
1049<dt>
1050gitcvs.logfile
1051</dt>
1052<dd>
1053<p>
1054 Path to a log file where the cvs pserver interface well&#8230; logs
1055 various stuff. See <a href="git-cvsserver.html">git-cvsserver(1)</a>.
1056</p>
1057</dd>
1058<dt>
1059http.sslVerify
1060</dt>
1061<dd>
1062<p>
1063 Whether to verify the SSL certificate when fetching or pushing
1064 over HTTPS. Can be overridden by the <em>GIT_SSL_NO_VERIFY</em> environment
1065 variable.
1066</p>
1067</dd>
1068<dt>
1069http.sslCert
1070</dt>
1071<dd>
1072<p>
1073 File containing the SSL certificate when fetching or pushing
1074 over HTTPS. Can be overridden by the <em>GIT_SSL_CERT</em> environment
1075 variable.
1076</p>
1077</dd>
1078<dt>
1079http.sslKey
1080</dt>
1081<dd>
1082<p>
1083 File containing the SSL private key when fetching or pushing
1084 over HTTPS. Can be overridden by the <em>GIT_SSL_KEY</em> environment
1085 variable.
1086</p>
1087</dd>
1088<dt>
1089http.sslCAInfo
1090</dt>
1091<dd>
1092<p>
1093 File containing the certificates to verify the peer with when
1094 fetching or pushing over HTTPS. Can be overridden by the
1095 <em>GIT_SSL_CAINFO</em> environment variable.
1096</p>
1097</dd>
1098<dt>
1099http.sslCAPath
1100</dt>
1101<dd>
1102<p>
1103 Path containing files with the CA certificates to verify the peer
1104 with when fetching or pushing over HTTPS. Can be overridden
1105 by the <em>GIT_SSL_CAPATH</em> environment variable.
1106</p>
1107</dd>
1108<dt>
1109http.maxRequests
1110</dt>
1111<dd>
1112<p>
1113 How many HTTP requests to launch in parallel. Can be overridden
1114 by the <em>GIT_HTTP_MAX_REQUESTS</em> environment variable. Default is 5.
1115</p>
1116</dd>
1117<dt>
1118http.lowSpeedLimit, http.lowSpeedTime
1119</dt>
1120<dd>
1121<p>
1122 If the HTTP transfer speed is less than <em>http.lowSpeedLimit</em>
1123 for longer than <em>http.lowSpeedTime</em> seconds, the transfer is aborted.
1124 Can be overridden by the <em>GIT_HTTP_LOW_SPEED_LIMIT</em> and
1125 <em>GIT_HTTP_LOW_SPEED_TIME</em> environment variables.
1126</p>
1127</dd>
1128<dt>
1129http.noEPSV
1130</dt>
1131<dd>
1132<p>
1133 A boolean which disables using of EPSV ftp command by curl.
1134 This can helpful with some "poor" ftp servers which doesn't
1135 support EPSV mode. Can be overridden by the <em>GIT_CURL_FTP_NO_EPSV</em>
1136 environment variable. Default is false (curl will use EPSV).
1137</p>
1138</dd>
1139<dt>
1140i18n.commitEncoding
1141</dt>
1142<dd>
1143<p>
1144 Character encoding the commit messages are stored in; git itself
1145 does not care per se, but this information is necessary e.g. when
1146 importing commits from emails or in the gitk graphical history
1147 browser (and possibly at other places in the future or in other
1148 porcelains). See e.g. <a href="git-mailinfo.html">git-mailinfo(1)</a>. Defaults to <em>utf-8</em>.
1149</p>
1150</dd>
1151<dt>
1152i18n.logOutputEncoding
1153</dt>
1154<dd>
1155<p>
1156 Character encoding the commit messages are converted to when
1157 running <tt>git-log</tt> and friends.
1158</p>
1159</dd>
1160<dt>
1161log.showroot
1162</dt>
1163<dd>
1164<p>
1165 If true, the initial commit will be shown as a big creation event.
1166 This is equivalent to a diff against an empty tree.
1167 Tools like <a href="git-log.html">git-log(1)</a> or <a href="git-whatchanged.html">git-whatchanged(1)</a>, which
1168 normally hide the root commit will now show it. True by default.
1169</p>
1170</dd>
1171<dt>
1172merge.summary
1173</dt>
1174<dd>
1175<p>
1176 Whether to include summaries of merged commits in newly created
1177 merge commit messages. False by default.
1178</p>
1179</dd>
1180<dt>
1181merge.verbosity
1182</dt>
1183<dd>
1184<p>
1185 Controls the amount of output shown by the recursive merge
1186 strategy. Level 0 outputs nothing except a final error
1187 message if conflicts were detected. Level 1 outputs only
1188 conflicts, 2 outputs conflicts and file changes. Level 5 and
1189 above outputs debugging information. The default is level 2.
1190</p>
1191</dd>
1192<dt>
1193pack.window
1194</dt>
1195<dd>
1196<p>
1197 The size of the window used by <a href="git-pack-objects.html">git-pack-objects(1)</a> when no
1198 window size is given on the command line. Defaults to 10.
1199</p>
1200</dd>
1201<dt>
1202pull.octopus
1203</dt>
1204<dd>
1205<p>
1206 The default merge strategy to use when pulling multiple branches
1207 at once.
1208</p>
1209</dd>
1210<dt>
1211pull.twohead
1212</dt>
1213<dd>
1214<p>
1215 The default merge strategy to use when pulling a single branch.
1216</p>
1217</dd>
1218<dt>
1219remote.&lt;name&gt;.url
1220</dt>
1221<dd>
1222<p>
1223 The URL of a remote repository. See <a href="git-fetch.html">git-fetch(1)</a> or
1224 <a href="git-push.html">git-push(1)</a>.
1225</p>
1226</dd>
1227<dt>
1228remote.&lt;name&gt;.fetch
1229</dt>
1230<dd>
1231<p>
1232 The default set of "refspec" for <a href="git-fetch.html">git-fetch(1)</a>. See
1233 <a href="git-fetch.html">git-fetch(1)</a>.
1234</p>
1235</dd>
1236<dt>
1237remote.&lt;name&gt;.push
1238</dt>
1239<dd>
1240<p>
1241 The default set of "refspec" for <a href="git-push.html">git-push(1)</a>. See
1242 <a href="git-push.html">git-push(1)</a>.
1243</p>
1244</dd>
1245<dt>
1246remote.&lt;name&gt;.receivepack
1247</dt>
1248<dd>
1249<p>
1250 The default program to execute on the remote side when pushing. See
1251 option --exec of <a href="git-push.html">git-push(1)</a>.
1252</p>
1253</dd>
1254<dt>
1255remote.&lt;name&gt;.uploadpack
1256</dt>
1257<dd>
1258<p>
1259 The default program to execute on the remote side when fetching. See
1260 option --exec of <a href="git-fetch-pack.html">git-fetch-pack(1)</a>.
1261</p>
1262</dd>
1263<dt>
1264repack.usedeltabaseoffset
1265</dt>
1266<dd>
1267<p>
1268 Allow <a href="git-repack.html">git-repack(1)</a> to create packs that uses
1269 delta-base offset. Defaults to false.
1270</p>
1271</dd>
1272<dt>
1273show.difftree
1274</dt>
1275<dd>
1276<p>
1277 The default <a href="git-diff-tree.html">git-diff-tree(1)</a> arguments to be used
1278 for <a href="git-show.html">git-show(1)</a>.
1279</p>
1280</dd>
1281<dt>
1282showbranch.default
1283</dt>
1284<dd>
1285<p>
1286 The default set of branches for <a href="git-show-branch.html">git-show-branch(1)</a>.
1287 See <a href="git-show-branch.html">git-show-branch(1)</a>.
1288</p>
1289</dd>
1290<dt>
1291tar.umask
1292</dt>
1293<dd>
1294<p>
1295 By default, <a href="git-tar-tree.html">git-tar-tree(1)</a> sets file and directories modes
1296 to 0666 or 0777. While this is both useful and acceptable for projects
1297 such as the Linux Kernel, it might be excessive for other projects.
1298 With this variable, it becomes possible to tell
1299 <a href="git-tar-tree.html">git-tar-tree(1)</a> to apply a specific umask to the modes above.
1300 The special value "user" indicates that the user's current umask will
1301 be used. This should be enough for most projects, as it will lead to
1302 the same permissions as <a href="git-checkout.html">git-checkout(1)</a> would use. The default
1303 value remains 0, which means world read-write.
1304</p>
1305</dd>
1306<dt>
1307user.email
1308</dt>
1309<dd>
1310<p>
1311 Your email address to be recorded in any newly created commits.
1312 Can be overridden by the <em>GIT_AUTHOR_EMAIL</em> and <em>GIT_COMMITTER_EMAIL</em>
1313 environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.
1314</p>
1315</dd>
1316<dt>
1317user.name
1318</dt>
1319<dd>
1320<p>
1321 Your full name to be recorded in any newly created commits.
1322 Can be overridden by the <em>GIT_AUTHOR_NAME</em> and <em>GIT_COMMITTER_NAME</em>
1323 environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.
1324</p>
1325</dd>
1326<dt>
1327user.signingkey
1328</dt>
1329<dd>
1330<p>
1331 If <a href="git-tag.html">git-tag(1)</a> is not selecting the key you want it to
1332 automatically when creating a signed tag, you can override the
1333 default selection with this variable. This option is passed
1334 unchanged to gpg's --local-user parameter, so you may specify a key
1335 using any method that gpg supports.
1336</p>
1337</dd>
1338<dt>
1339whatchanged.difftree
1340</dt>
1341<dd>
1342<p>
1343 The default <a href="git-diff-tree.html">git-diff-tree(1)</a> arguments to be used
1344 for <a href="git-whatchanged.html">git-whatchanged(1)</a>.
1345</p>
1346</dd>
1347<dt>
1348imap
1349</dt>
1350<dd>
1351<p>
1352 The configuration variables in the <em>imap</em> section are described
1353 in <a href="git-imap-send.html">git-imap-send(1)</a>.
1354</p>
1355</dd>
1356<dt>
1357receive.unpackLimit
1358</dt>
1359<dd>
1360<p>
1361 If the number of objects received in a push is below this
1362 limit then the objects will be unpacked into loose object
1363 files. However if the number of received objects equals or
1364 exceeds this limit then the received pack will be stored as
1365 a pack, after adding any missing delta bases. Storing the
1366 pack from a push can make the push operation complete faster,
1367 especially on slow filesystems.
1368</p>
1369</dd>
1370<dt>
1371receive.denyNonFastForwards
1372</dt>
1373<dd>
1374<p>
1375 If set to true, git-receive-pack will deny a ref update which is
1376 not a fast forward. Use this to prevent such an update via a push,
1377 even if that push is forced. This configuration variable is
1378 set when initializing a shared repository.
1379</p>
1380</dd>
1381<dt>
1382transfer.unpackLimit
1383</dt>
1384<dd>
1385<p>
1386 When <tt>fetch.unpackLimit</tt> or <tt>receive.unpackLimit</tt> are
1387 not set, the value of this variable is used instead.
1388</p>
1389</dd>
1390</dl>
1391</div>
1392<h2>Author</h2>
1393<div class="sectionbody">
1394<p>Written by Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;</p>
1395</div>
1396<h2>Documentation</h2>
1397<div class="sectionbody">
1398<p>Documentation by Johannes Schindelin, Petr Baudis and the git-list &lt;git@vger.kernel.org&gt;.</p>
1399</div>
1400<h2>GIT</h2>
1401<div class="sectionbody">
1402<p>Part of the <a href="git.html">git(7)</a> suite</p>
1403</div>
1404<div id="footer">
1405<div id="footer-text">
Junio C Hamano9cb74f22007-02-12 04:15:051406Last updated 12-Feb-2007 04:14:05 UTC
Junio C Hamano7ad22dc2007-01-29 02:55:481407</div>
1408</div>
1409</body>
1410</html>