blob: 7ea610cc5640b7c41c4109835b6654fb28da3224 [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>
Junio C Hamano9d52e572007-02-13 23:48:201002gc.packrefs
1003</dt>
1004<dd>
1005<p>
1006 <tt>git gc</tt> does not run <tt>git pack-refs</tt> in a bare repository by
1007 default so that older dumb-transport clients can still fetch
1008 from the repository. Setting this to <tt>true</tt> lets <tt>git
1009 gc</tt> to run <tt>git pack-refs</tt>. Setting this to <tt>false</tt> tells
1010 <tt>git gc</tt> never to run <tt>git pack-refs</tt>. The default setting is
1011 <tt>notbare</tt>. Enable it only when you know you do not have to
1012 support such clients. The default setting will change to <tt>true</tt>
1013 at some stage, and setting this to <tt>false</tt> will continue to
1014 prevent <tt>git pack-refs</tt> from being run from <tt>git gc</tt>.
1015</p>
1016</dd>
1017<dt>
Junio C Hamano7ad22dc2007-01-29 02:55:481018gc.reflogexpire
1019</dt>
1020<dd>
1021<p>
1022 <tt>git reflog expire</tt> removes reflog entries older than
1023 this time; defaults to 90 days.
1024</p>
1025</dd>
1026<dt>
1027gc.reflogexpireunreachable
1028</dt>
1029<dd>
1030<p>
1031 <tt>git reflog expire</tt> removes reflog entries older than
1032 this time and are not reachable from the current tip;
1033 defaults to 30 days.
1034</p>
1035</dd>
1036<dt>
1037gc.rerereresolved
1038</dt>
1039<dd>
1040<p>
1041 Records of conflicted merge you resolved earlier are
1042 kept for this many days when <tt>git rerere gc</tt> is run.
1043 The default is 60 days. See <a href="git-rerere.html">git-rerere(1)</a>.
1044</p>
1045</dd>
1046<dt>
1047gc.rerereunresolved
1048</dt>
1049<dd>
1050<p>
1051 Records of conflicted merge you have not resolved are
1052 kept for this many days when <tt>git rerere gc</tt> is run.
1053 The default is 15 days. See <a href="git-rerere.html">git-rerere(1)</a>.
1054</p>
1055</dd>
1056<dt>
1057gitcvs.enabled
1058</dt>
1059<dd>
1060<p>
1061 Whether the cvs pserver interface is enabled for this repository.
1062 See <a href="git-cvsserver.html">git-cvsserver(1)</a>.
1063</p>
1064</dd>
1065<dt>
1066gitcvs.logfile
1067</dt>
1068<dd>
1069<p>
1070 Path to a log file where the cvs pserver interface well&#8230; logs
1071 various stuff. See <a href="git-cvsserver.html">git-cvsserver(1)</a>.
1072</p>
1073</dd>
1074<dt>
1075http.sslVerify
1076</dt>
1077<dd>
1078<p>
1079 Whether to verify the SSL certificate when fetching or pushing
1080 over HTTPS. Can be overridden by the <em>GIT_SSL_NO_VERIFY</em> environment
1081 variable.
1082</p>
1083</dd>
1084<dt>
1085http.sslCert
1086</dt>
1087<dd>
1088<p>
1089 File containing the SSL certificate when fetching or pushing
1090 over HTTPS. Can be overridden by the <em>GIT_SSL_CERT</em> environment
1091 variable.
1092</p>
1093</dd>
1094<dt>
1095http.sslKey
1096</dt>
1097<dd>
1098<p>
1099 File containing the SSL private key when fetching or pushing
1100 over HTTPS. Can be overridden by the <em>GIT_SSL_KEY</em> environment
1101 variable.
1102</p>
1103</dd>
1104<dt>
1105http.sslCAInfo
1106</dt>
1107<dd>
1108<p>
1109 File containing the certificates to verify the peer with when
1110 fetching or pushing over HTTPS. Can be overridden by the
1111 <em>GIT_SSL_CAINFO</em> environment variable.
1112</p>
1113</dd>
1114<dt>
1115http.sslCAPath
1116</dt>
1117<dd>
1118<p>
1119 Path containing files with the CA certificates to verify the peer
1120 with when fetching or pushing over HTTPS. Can be overridden
1121 by the <em>GIT_SSL_CAPATH</em> environment variable.
1122</p>
1123</dd>
1124<dt>
1125http.maxRequests
1126</dt>
1127<dd>
1128<p>
1129 How many HTTP requests to launch in parallel. Can be overridden
1130 by the <em>GIT_HTTP_MAX_REQUESTS</em> environment variable. Default is 5.
1131</p>
1132</dd>
1133<dt>
1134http.lowSpeedLimit, http.lowSpeedTime
1135</dt>
1136<dd>
1137<p>
1138 If the HTTP transfer speed is less than <em>http.lowSpeedLimit</em>
1139 for longer than <em>http.lowSpeedTime</em> seconds, the transfer is aborted.
1140 Can be overridden by the <em>GIT_HTTP_LOW_SPEED_LIMIT</em> and
1141 <em>GIT_HTTP_LOW_SPEED_TIME</em> environment variables.
1142</p>
1143</dd>
1144<dt>
1145http.noEPSV
1146</dt>
1147<dd>
1148<p>
1149 A boolean which disables using of EPSV ftp command by curl.
1150 This can helpful with some "poor" ftp servers which doesn't
1151 support EPSV mode. Can be overridden by the <em>GIT_CURL_FTP_NO_EPSV</em>
1152 environment variable. Default is false (curl will use EPSV).
1153</p>
1154</dd>
1155<dt>
1156i18n.commitEncoding
1157</dt>
1158<dd>
1159<p>
1160 Character encoding the commit messages are stored in; git itself
1161 does not care per se, but this information is necessary e.g. when
1162 importing commits from emails or in the gitk graphical history
1163 browser (and possibly at other places in the future or in other
1164 porcelains). See e.g. <a href="git-mailinfo.html">git-mailinfo(1)</a>. Defaults to <em>utf-8</em>.
1165</p>
1166</dd>
1167<dt>
1168i18n.logOutputEncoding
1169</dt>
1170<dd>
1171<p>
1172 Character encoding the commit messages are converted to when
1173 running <tt>git-log</tt> and friends.
1174</p>
1175</dd>
1176<dt>
1177log.showroot
1178</dt>
1179<dd>
1180<p>
1181 If true, the initial commit will be shown as a big creation event.
1182 This is equivalent to a diff against an empty tree.
1183 Tools like <a href="git-log.html">git-log(1)</a> or <a href="git-whatchanged.html">git-whatchanged(1)</a>, which
1184 normally hide the root commit will now show it. True by default.
1185</p>
1186</dd>
1187<dt>
1188merge.summary
1189</dt>
1190<dd>
1191<p>
1192 Whether to include summaries of merged commits in newly created
1193 merge commit messages. False by default.
1194</p>
1195</dd>
1196<dt>
1197merge.verbosity
1198</dt>
1199<dd>
1200<p>
1201 Controls the amount of output shown by the recursive merge
1202 strategy. Level 0 outputs nothing except a final error
1203 message if conflicts were detected. Level 1 outputs only
1204 conflicts, 2 outputs conflicts and file changes. Level 5 and
1205 above outputs debugging information. The default is level 2.
1206</p>
1207</dd>
1208<dt>
1209pack.window
1210</dt>
1211<dd>
1212<p>
1213 The size of the window used by <a href="git-pack-objects.html">git-pack-objects(1)</a> when no
1214 window size is given on the command line. Defaults to 10.
1215</p>
1216</dd>
1217<dt>
1218pull.octopus
1219</dt>
1220<dd>
1221<p>
1222 The default merge strategy to use when pulling multiple branches
1223 at once.
1224</p>
1225</dd>
1226<dt>
1227pull.twohead
1228</dt>
1229<dd>
1230<p>
1231 The default merge strategy to use when pulling a single branch.
1232</p>
1233</dd>
1234<dt>
1235remote.&lt;name&gt;.url
1236</dt>
1237<dd>
1238<p>
1239 The URL of a remote repository. See <a href="git-fetch.html">git-fetch(1)</a> or
1240 <a href="git-push.html">git-push(1)</a>.
1241</p>
1242</dd>
1243<dt>
1244remote.&lt;name&gt;.fetch
1245</dt>
1246<dd>
1247<p>
1248 The default set of "refspec" for <a href="git-fetch.html">git-fetch(1)</a>. See
1249 <a href="git-fetch.html">git-fetch(1)</a>.
1250</p>
1251</dd>
1252<dt>
1253remote.&lt;name&gt;.push
1254</dt>
1255<dd>
1256<p>
1257 The default set of "refspec" for <a href="git-push.html">git-push(1)</a>. See
1258 <a href="git-push.html">git-push(1)</a>.
1259</p>
1260</dd>
1261<dt>
Junio C Hamano118d2772007-02-21 20:24:101262remote.&lt;name&gt;.skipDefaultUpdate
1263</dt>
1264<dd>
1265<p>
1266 If true, this remote will be skipped by default when updating
1267 using the remote subcommand of <a href="git-remote.html">git-remote(1)</a>.
1268</p>
1269</dd>
1270<dt>
Junio C Hamano7ad22dc2007-01-29 02:55:481271remote.&lt;name&gt;.receivepack
1272</dt>
1273<dd>
1274<p>
1275 The default program to execute on the remote side when pushing. See
1276 option --exec of <a href="git-push.html">git-push(1)</a>.
1277</p>
1278</dd>
1279<dt>
1280remote.&lt;name&gt;.uploadpack
1281</dt>
1282<dd>
1283<p>
1284 The default program to execute on the remote side when fetching. See
1285 option --exec of <a href="git-fetch-pack.html">git-fetch-pack(1)</a>.
1286</p>
1287</dd>
1288<dt>
Junio C Hamano118d2772007-02-21 20:24:101289remotes.&lt;group&gt;
1290</dt>
1291<dd>
1292<p>
1293 The list of remotes which are fetched by "git remote update
1294 &lt;group&gt;". See <a href="git-remote.html">git-remote(1)</a>.
1295</p>
1296</dd>
1297<dt>
Junio C Hamano7ad22dc2007-01-29 02:55:481298repack.usedeltabaseoffset
1299</dt>
1300<dd>
1301<p>
1302 Allow <a href="git-repack.html">git-repack(1)</a> to create packs that uses
1303 delta-base offset. Defaults to false.
1304</p>
1305</dd>
1306<dt>
1307show.difftree
1308</dt>
1309<dd>
1310<p>
1311 The default <a href="git-diff-tree.html">git-diff-tree(1)</a> arguments to be used
1312 for <a href="git-show.html">git-show(1)</a>.
1313</p>
1314</dd>
1315<dt>
1316showbranch.default
1317</dt>
1318<dd>
1319<p>
1320 The default set of branches for <a href="git-show-branch.html">git-show-branch(1)</a>.
1321 See <a href="git-show-branch.html">git-show-branch(1)</a>.
1322</p>
1323</dd>
1324<dt>
1325tar.umask
1326</dt>
1327<dd>
1328<p>
1329 By default, <a href="git-tar-tree.html">git-tar-tree(1)</a> sets file and directories modes
1330 to 0666 or 0777. While this is both useful and acceptable for projects
1331 such as the Linux Kernel, it might be excessive for other projects.
1332 With this variable, it becomes possible to tell
1333 <a href="git-tar-tree.html">git-tar-tree(1)</a> to apply a specific umask to the modes above.
1334 The special value "user" indicates that the user's current umask will
1335 be used. This should be enough for most projects, as it will lead to
1336 the same permissions as <a href="git-checkout.html">git-checkout(1)</a> would use. The default
1337 value remains 0, which means world read-write.
1338</p>
1339</dd>
1340<dt>
1341user.email
1342</dt>
1343<dd>
1344<p>
1345 Your email address to be recorded in any newly created commits.
1346 Can be overridden by the <em>GIT_AUTHOR_EMAIL</em> and <em>GIT_COMMITTER_EMAIL</em>
1347 environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.
1348</p>
1349</dd>
1350<dt>
1351user.name
1352</dt>
1353<dd>
1354<p>
1355 Your full name to be recorded in any newly created commits.
1356 Can be overridden by the <em>GIT_AUTHOR_NAME</em> and <em>GIT_COMMITTER_NAME</em>
1357 environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.
1358</p>
1359</dd>
1360<dt>
1361user.signingkey
1362</dt>
1363<dd>
1364<p>
1365 If <a href="git-tag.html">git-tag(1)</a> is not selecting the key you want it to
1366 automatically when creating a signed tag, you can override the
1367 default selection with this variable. This option is passed
1368 unchanged to gpg's --local-user parameter, so you may specify a key
1369 using any method that gpg supports.
1370</p>
1371</dd>
1372<dt>
1373whatchanged.difftree
1374</dt>
1375<dd>
1376<p>
1377 The default <a href="git-diff-tree.html">git-diff-tree(1)</a> arguments to be used
1378 for <a href="git-whatchanged.html">git-whatchanged(1)</a>.
1379</p>
1380</dd>
1381<dt>
1382imap
1383</dt>
1384<dd>
1385<p>
1386 The configuration variables in the <em>imap</em> section are described
1387 in <a href="git-imap-send.html">git-imap-send(1)</a>.
1388</p>
1389</dd>
1390<dt>
1391receive.unpackLimit
1392</dt>
1393<dd>
1394<p>
1395 If the number of objects received in a push is below this
1396 limit then the objects will be unpacked into loose object
1397 files. However if the number of received objects equals or
1398 exceeds this limit then the received pack will be stored as
1399 a pack, after adding any missing delta bases. Storing the
1400 pack from a push can make the push operation complete faster,
1401 especially on slow filesystems.
1402</p>
1403</dd>
1404<dt>
1405receive.denyNonFastForwards
1406</dt>
1407<dd>
1408<p>
1409 If set to true, git-receive-pack will deny a ref update which is
1410 not a fast forward. Use this to prevent such an update via a push,
1411 even if that push is forced. This configuration variable is
1412 set when initializing a shared repository.
1413</p>
1414</dd>
1415<dt>
1416transfer.unpackLimit
1417</dt>
1418<dd>
1419<p>
1420 When <tt>fetch.unpackLimit</tt> or <tt>receive.unpackLimit</tt> are
1421 not set, the value of this variable is used instead.
1422</p>
1423</dd>
1424</dl>
1425</div>
1426<h2>Author</h2>
1427<div class="sectionbody">
1428<p>Written by Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;</p>
1429</div>
1430<h2>Documentation</h2>
1431<div class="sectionbody">
1432<p>Documentation by Johannes Schindelin, Petr Baudis and the git-list &lt;git@vger.kernel.org&gt;.</p>
1433</div>
1434<h2>GIT</h2>
1435<div class="sectionbody">
1436<p>Part of the <a href="git.html">git(7)</a> suite</p>
1437</div>
1438<div id="footer">
1439<div id="footer-text">
Junio C Hamano118d2772007-02-21 20:24:101440Last updated 21-Feb-2007 20:23:55 UTC
Junio C Hamano7ad22dc2007-01-29 02:55:481441</div>
1442</div>
1443</body>
1444</html>