1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
\r
4 <article lang="en" id="git-config(1)">
\r
6 <title>git-config(1)</title>
\r
8 <primary>git-config(1)</primary>
\r
11 <simplesect id="_name">
\r
13 <simpara>git-config - Get and set repository or global options</simpara>
\r
15 <simplesect id="_synopsis">
\r
16 <title>SYNOPSIS</title>
\r
18 <literallayout><emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] name [value [value_regex]]
\r
19 <emphasis>git config</emphasis> [<file-option>] [type] --add name value
\r
20 <emphasis>git config</emphasis> [<file-option>] [type] --replace-all name value [value_regex]
\r
21 <emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] --get name [value_regex]
\r
22 <emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] --get-all name [value_regex]
\r
23 <emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] --get-regexp name_regex [value_regex]
\r
24 <emphasis>git config</emphasis> [<file-option>] --unset name [value_regex]
\r
25 <emphasis>git config</emphasis> [<file-option>] --unset-all name [value_regex]
\r
26 <emphasis>git config</emphasis> [<file-option>] --rename-section old_name new_name
\r
27 <emphasis>git config</emphasis> [<file-option>] --remove-section name
\r
28 <emphasis>git config</emphasis> [<file-option>] [-z|--null] -l | --list
\r
29 <emphasis>git config</emphasis> [<file-option>] --get-color name [default]
\r
30 <emphasis>git config</emphasis> [<file-option>] --get-colorbool name [stdout-is-tty]
\r
31 <emphasis>git config</emphasis> [<file-option>] -e | --edit</literallayout>
\r
34 <simplesect id="_description">
\r
35 <title>DESCRIPTION</title>
\r
36 <simpara>You can query/set/replace/unset options with this command. The name is
\r
37 actually the section and the key separated by a dot, and the value will be
\r
39 <simpara>Multiple lines can be added to an option by using the <emphasis>--add</emphasis> option.
\r
40 If you want to update or unset an option which can occur on multiple
\r
41 lines, a POSIX regexp <emphasis>value_regex</emphasis> needs to be given. Only the
\r
42 existing values that match the regexp are updated or unset. If
\r
43 you want to handle the lines that do <emphasis role="strong">not</emphasis> match the regex, just
\r
44 prepend a single exclamation mark in front (see also <xref linkend="EXAMPLES"/>).</simpara>
\r
45 <simpara>The type specifier can be either <emphasis>--int</emphasis> or <emphasis>--bool</emphasis>, to make
\r
46 <emphasis>git config</emphasis> ensure that the variable(s) are of the given type and
\r
47 convert the value to the canonical form (simple decimal number for int,
\r
48 a "true" or "false" string for bool), or <emphasis>--path</emphasis>, which does some
\r
49 path expansion (see <emphasis>--path</emphasis> below). If no type specifier is passed, no
\r
50 checks or transformations are performed on the value.</simpara>
\r
51 <simpara>When reading, the values are read from the system, global and
\r
52 repository local configuration files by default, and options
\r
53 <emphasis>--system</emphasis>, <emphasis>--global</emphasis>, <emphasis>--local</emphasis> and <emphasis>--file <filename></emphasis> can be
\r
54 used to tell the command to read from only that location (see <xref linkend="FILES"/>).</simpara>
\r
55 <simpara>When writing, the new value is written to the repository local
\r
56 configuration file by default, and options <emphasis>--system</emphasis>, <emphasis>--global</emphasis>,
\r
57 <emphasis>--file <filename></emphasis> can be used to tell the command to write to
\r
58 that location (you can say <emphasis>--local</emphasis> but that is the default).</simpara>
\r
59 <simpara>This command will fail (with exit code ret) if:</simpara>
\r
60 <orderedlist numeration="arabic">
\r
63 The config file is invalid (ret=3),
\r
68 can not write to the config file (ret=4),
\r
73 no section or name was provided (ret=2),
\r
78 the section or key is invalid (ret=1),
\r
83 you try to unset an option which does not exist (ret=5),
\r
88 you try to unset/set an option for which multiple lines match (ret=5),
\r
93 you try to use an invalid regexp (ret=6), or
\r
98 you use <emphasis>--global</emphasis> option without $HOME being properly set (ret=128).
\r
102 <simpara>On success, the command returns the exit code 0.</simpara>
\r
104 <simplesect id="_options">
\r
105 <title>OPTIONS</title>
\r
113 Default behavior is to replace at most one line. This replaces
\r
114 all lines matching the key (and optionally the value_regex).
\r
124 Adds a new line to the option without altering any existing
\r
125 values. This is the same as providing <emphasis>^$</emphasis> as the value_regex
\r
126 in <emphasis>--replace-all</emphasis>.
\r
136 Get the value for a given key (optionally filtered by a regex
\r
137 matching the value). Returns error code 1 if the key was not
\r
138 found and error code 2 if multiple key values were found.
\r
148 Like get, but does not fail if the number of values for the key
\r
149 is not exactly one.
\r
159 Like --get-all, but interprets the name as a regular expression and
\r
160 writes out the key names. Regular expression matching is currently
\r
161 case-sensitive and done against a canonicalized version of the key
\r
162 in which section and variable names are lowercased, but subsection
\r
173 For writing options: write to global ~/.gitconfig file rather than
\r
174 the repository .git/config.
\r
176 <simpara>For reading options: read only from global ~/.gitconfig rather than
\r
177 from all available files.</simpara>
\r
178 <simpara>See also <xref linkend="FILES"/>.</simpara>
\r
187 For writing options: write to system-wide $(prefix)/etc/gitconfig
\r
188 rather than the repository .git/config.
\r
190 <simpara>For reading options: read only from system-wide $(prefix)/etc/gitconfig
\r
191 rather than from all available files.</simpara>
\r
192 <simpara>See also <xref linkend="FILES"/>.</simpara>
\r
204 Use the given config file instead of the one specified by GIT_CONFIG.
\r
214 Remove the given section from the configuration file.
\r
224 Rename the given section to a new name.
\r
234 Remove the line matching the key from config file.
\r
244 Remove all lines matching the key from config file.
\r
257 List all variables set in config file.
\r
267 <emphasis>git config</emphasis> will ensure that the output is "true" or "false"
\r
277 <emphasis>git config</emphasis> will ensure that the output is a simple
\r
278 decimal number. An optional value suffix of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis>
\r
279 in the config file will cause the value to be multiplied
\r
280 by 1024, 1048576, or 1073741824 prior to output.
\r
290 <emphasis>git config</emphasis> will ensure that the output matches the format of
\r
291 either --bool or --int, as described above.
\r
301 <emphasis>git-config</emphasis> will expand leading <emphasis>~</emphasis> to the value of
\r
302 <emphasis>$HOME</emphasis>, and <emphasis>~user</emphasis> to the home directory for the
\r
303 specified user. This option has no effect when setting the
\r
304 value (but you can use <emphasis>git config bla ~/</emphasis> from the
\r
305 command line to let your shell do the expansion).
\r
318 For all options that output values and/or keys, always
\r
319 end values with the null character (instead of a
\r
320 newline). Use newline instead as a delimiter between
\r
321 key and value. This allows for secure parsing of the
\r
322 output without getting confused e.g. by values that
\r
323 contain line breaks.
\r
329 --get-colorbool name [stdout-is-tty]
\r
333 Find the color setting for <emphasis>name</emphasis> (e.g. <emphasis>color.diff</emphasis>) and output
\r
334 "true" or "false". <emphasis>stdout-is-tty</emphasis> should be either "true" or
\r
335 "false", and is taken into account when configuration says
\r
336 "auto". If <emphasis>stdout-is-tty</emphasis> is missing, then checks the standard
\r
337 output of the command itself, and exits with status 0 if color
\r
338 is to be used, or exits with status 1 otherwise.
\r
339 When the color setting for <emphasis>name</emphasis> is undefined, the command uses
\r
340 <emphasis>color.ui</emphasis> as fallback.
\r
346 --get-color name [default]
\r
350 Find the color configured for <emphasis>name</emphasis> (e.g. <emphasis>color.diff.new</emphasis>) and
\r
351 output it as the ANSI color escape sequence to the standard
\r
352 output. The optional <emphasis>default</emphasis> parameter is used instead, if
\r
353 there is no color configured for <emphasis>name</emphasis>.
\r
366 Opens an editor to modify the specified config file; either
\r
367 <emphasis>--system</emphasis>, <emphasis>--global</emphasis>, or repository (default).
\r
380 Respect <emphasis>include.*</emphasis> directives in config files when looking up
\r
381 values. Defaults to on.
\r
387 <simplesect id="FILES">
\r
388 <title>FILES</title>
\r
389 <simpara>If not set explicitly with <emphasis>--file</emphasis>, there are three files where
\r
390 <emphasis>git config</emphasis> will search for configuration options:</simpara>
\r
398 Repository specific configuration file.
\r
408 User-specific configuration file. Also called "global"
\r
409 configuration file.
\r
415 $(prefix)/etc/gitconfig
\r
419 System-wide configuration file.
\r
424 <simpara>If no further options are given, all reading options will read all of these
\r
425 files that are available. If the global or the system-wide configuration
\r
426 file are not available they will be ignored. If the repository configuration
\r
427 file is not available or readable, <emphasis>git config</emphasis> will exit with a non-zero
\r
428 error code. However, in neither case will an error message be issued.</simpara>
\r
429 <simpara>All writing options will per default write to the repository specific
\r
430 configuration file. Note that this also affects options like <emphasis>--replace-all</emphasis>
\r
431 and <emphasis>--unset</emphasis>. <emphasis role="strong"><emphasis>git config</emphasis> will only ever change one file at a time</emphasis>.</simpara>
\r
432 <simpara>You can override these rules either by command line options or by environment
\r
433 variables. The <emphasis>--global</emphasis> and the <emphasis>--system</emphasis> options will limit the file used
\r
434 to the global or system-wide file respectively. The GIT_CONFIG environment
\r
435 variable has a similar effect, but you can specify any filename you want.</simpara>
\r
437 <simplesect id="_environment">
\r
438 <title>ENVIRONMENT</title>
\r
446 Take the configuration from the given file instead of .git/config.
\r
447 Using the "--global" option forces this to ~/.gitconfig. Using the
\r
448 "--system" option forces this to $(prefix)/etc/gitconfig.
\r
453 <simpara>See also <xref linkend="FILES"/>.</simpara>
\r
455 <simplesect id="EXAMPLES">
\r
456 <title>EXAMPLES</title>
\r
457 <simpara>Given a .git/config like this:</simpara>
\r
458 <literallayout class="monospaced">#
\r
459 # This is the config file, and
\r
460 # a '#' or ';' character indicates
\r
463 <literallayout class="monospaced">; core variables
\r
465 ; Don't trust file modes
\r
466 filemode = false</literallayout>
\r
467 <literallayout class="monospaced">; Our diff algorithm
\r
469 external = /usr/local/bin/diff-wrapper
\r
470 renames = true</literallayout>
\r
471 <literallayout class="monospaced">; Proxy settings
\r
473 gitproxy="proxy-command" for kernel.org
\r
474 gitproxy=default-proxy ; for all the rest</literallayout>
\r
475 <simpara>you can set the filemode to true with</simpara>
\r
476 <screen>% git config core.filemode true</screen>
\r
477 <simpara>The hypothetical proxy command entries actually have a postfix to discern
\r
478 what URL they apply to. Here is how to change the entry for kernel.org
\r
479 to "ssh".</simpara>
\r
480 <screen>% git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</screen>
\r
481 <simpara>This makes sure that only the key/value pair for kernel.org is replaced.</simpara>
\r
482 <simpara>To delete the entry for renames, do</simpara>
\r
483 <screen>% git config --unset diff.renames</screen>
\r
484 <simpara>If you want to delete an entry for a multivar (like core.gitproxy above),
\r
485 you have to provide a regex matching the value of exactly one line.</simpara>
\r
486 <simpara>To query the value for a given key, do</simpara>
\r
487 <screen>% git config --get core.filemode</screen>
\r
488 <simpara>or</simpara>
\r
489 <screen>% git config core.filemode</screen>
\r
490 <simpara>or, to query a multivar:</simpara>
\r
491 <screen>% git config --get core.gitproxy "for kernel.org$"</screen>
\r
492 <simpara>If you want to know all the values for a multivar, do:</simpara>
\r
493 <screen>% git config --get-all core.gitproxy</screen>
\r
494 <simpara>If you like to live dangerously, you can replace <emphasis role="strong">all</emphasis> core.gitproxy by a
\r
495 new one with</simpara>
\r
496 <screen>% git config --replace-all core.gitproxy ssh</screen>
\r
497 <simpara>However, if you really only want to replace the line for the default proxy,
\r
498 i.e. the one without a "for …" postfix, do something like this:</simpara>
\r
499 <screen>% git config core.gitproxy ssh '! for '</screen>
\r
500 <simpara>To actually match only values with an exclamation mark, you have to</simpara>
\r
501 <screen>% git config section.key value '[!]'</screen>
\r
502 <simpara>To add a new proxy, without altering any of the existing ones, use</simpara>
\r
503 <screen>% git config core.gitproxy '"proxy-command" for example.com'</screen>
\r
504 <simpara>An example to use customized color from the configuration in your
\r
507 WS=$(git config --get-color color.diff.whitespace "blue reverse")
\r
508 RESET=$(git config --get-color "" "reset")
\r
509 echo "${WS}your whitespace color or blue reverse${RESET}"</screen>
\r
511 <simplesect id="_configuration_file">
\r
512 <title>CONFIGURATION FILE</title>
\r
513 <simpara>The git configuration file contains a number of variables that affect
\r
514 the git command's behavior. The <emphasis>.git/config</emphasis> file in each repository
\r
515 is used to store the configuration for that repository, and
\r
516 <emphasis>$HOME/.gitconfig</emphasis> is used to store a per-user configuration as
\r
517 fallback values for the <emphasis>.git/config</emphasis> file. The file <emphasis>/etc/gitconfig</emphasis>
\r
518 can be used to store a system-wide default configuration.</simpara>
\r
519 <simpara>The configuration variables are used by both the git plumbing
\r
520 and the porcelains. The variables are divided into sections, wherein
\r
521 the fully qualified variable name of the variable itself is the last
\r
522 dot-separated segment and the section name is everything before the last
\r
523 dot. The variable names are case-insensitive, allow only alphanumeric
\r
524 characters and <emphasis>-</emphasis>, and must start with an alphabetic character. Some
\r
525 variables may appear multiple times.</simpara>
\r
526 <section id="_syntax">
\r
527 <title>Syntax</title>
\r
528 <simpara>The syntax is fairly flexible and permissive; whitespaces are mostly
\r
529 ignored. The <emphasis>#</emphasis> and <emphasis>;</emphasis> characters begin comments to the end of line,
\r
530 blank lines are ignored.</simpara>
\r
531 <simpara>The file consists of sections and variables. A section begins with
\r
532 the name of the section in square brackets and continues until the next
\r
533 section begins. Section names are not case sensitive. Only alphanumeric
\r
534 characters, <emphasis>-</emphasis> and <emphasis>.</emphasis> are allowed in section names. Each variable
\r
535 must belong to some section, which means that there must be a section
\r
536 header before the first setting of a variable.</simpara>
\r
537 <simpara>Sections can be further divided into subsections. To begin a subsection
\r
538 put its name in double quotes, separated by space from the section name,
\r
539 in the section header, like in the example below:</simpara>
\r
540 <screen> [section "subsection"]</screen>
\r
541 <simpara>Subsection names are case sensitive and can contain any characters except
\r
542 newline (doublequote <emphasis>"</emphasis> and backslash have to be escaped as <emphasis>\"</emphasis> and <emphasis>\\</emphasis>,
\r
543 respectively). Section headers cannot span multiple
\r
544 lines. Variables may belong directly to a section or to a given subsection.
\r
545 You can have <emphasis>[section]</emphasis> if you have <emphasis>[section "subsection"]</emphasis>, but you
\r
546 don't need to.</simpara>
\r
547 <simpara>There is also a deprecated <emphasis>[section.subsection]</emphasis> syntax. With this
\r
548 syntax, the subsection name is converted to lower-case and is also
\r
549 compared case sensitively. These subsection names follow the same
\r
550 restrictions as section names.</simpara>
\r
551 <simpara>All the other lines (and the remainder of the line after the section
\r
552 header) are recognized as setting variables, in the form
\r
553 <emphasis>name = value</emphasis>. If there is no equal sign on the line, the entire line
\r
554 is taken as <emphasis>name</emphasis> and the variable is recognized as boolean "true".
\r
555 The variable names are case-insensitive, allow only alphanumeric characters
\r
556 and <emphasis>-</emphasis>, and must start with an alphabetic character. There can be more
\r
557 than one value for a given variable; we say then that the variable is
\r
558 multivalued.</simpara>
\r
559 <simpara>Leading and trailing whitespace in a variable value is discarded.
\r
560 Internal whitespace within a variable value is retained verbatim.</simpara>
\r
561 <simpara>The values following the equals sign in variable assign are all either
\r
562 a string, an integer, or a boolean. Boolean values may be given as yes/no,
\r
563 1/0, true/false or on/off. Case is not significant in boolean values, when
\r
564 converting value to the canonical form using <emphasis>--bool</emphasis> type specifier;
\r
565 <emphasis>git config</emphasis> will ensure that the output is "true" or "false".</simpara>
\r
566 <simpara>String values may be entirely or partially enclosed in double quotes.
\r
567 You need to enclose variable values in double quotes if you want to
\r
568 preserve leading or trailing whitespace, or if the variable value contains
\r
569 comment characters (i.e. it contains <emphasis>#</emphasis> or <emphasis>;</emphasis>).
\r
570 Double quote <emphasis>"</emphasis> and backslash <emphasis>\</emphasis> characters in variable values must
\r
571 be escaped: use <emphasis>\"</emphasis> for <emphasis>"</emphasis> and <emphasis>\\</emphasis> for <emphasis>\</emphasis>.</simpara>
\r
572 <simpara>The following escape sequences (beside <emphasis>\"</emphasis> and <emphasis>\\</emphasis>) are recognized:
\r
573 <emphasis>\n</emphasis> for newline character (NL), <emphasis>\t</emphasis> for horizontal tabulation (HT, TAB)
\r
574 and <emphasis>\b</emphasis> for backspace (BS). No other char escape sequence, nor octal
\r
575 char sequences are valid.</simpara>
\r
576 <simpara>Variable values ending in a <emphasis>\</emphasis> are continued on the next line in the
\r
577 customary UNIX fashion.</simpara>
\r
578 <simpara>Some variables may require a special value format.</simpara>
\r
580 <section id="_includes">
\r
581 <title>Includes</title>
\r
582 <simpara>You can include one config file from another by setting the special
\r
583 <emphasis>include.path</emphasis> variable to the name of the file to be included. The
\r
584 included file is expanded immediately, as if its contents had been
\r
585 found at the location of the include directive. If the value of the
\r
586 <emphasis>include.path</emphasis> variable is a relative path, the path is considered to be
\r
587 relative to the configuration file in which the include directive was
\r
588 found. The value of <emphasis>include.path</emphasis> is subject to tilde expansion: <emphasis>{tilde}/</emphasis>
\r
589 is expanded to the value of <emphasis>$HOME</emphasis>, and <emphasis>{tilde}user/</emphasis> to the specified
\r
590 user's home directory. See below for examples.</simpara>
\r
592 <section id="_example">
\r
593 <title>Example</title>
\r
594 <literallayout class="monospaced"># Core variables
\r
596 ; Don't trust file modes
\r
597 filemode = false</literallayout>
\r
598 <literallayout class="monospaced"># Our diff algorithm
\r
600 external = /usr/local/bin/diff-wrapper
\r
601 renames = true</literallayout>
\r
602 <literallayout class="monospaced">[branch "devel"]
\r
604 merge = refs/heads/devel</literallayout>
\r
605 <literallayout class="monospaced"># Proxy settings
\r
607 gitProxy="ssh" for "kernel.org"
\r
608 gitProxy=default-proxy ; for the rest</literallayout>
\r
609 <literallayout class="monospaced">[include]
\r
610 path = /path/to/foo.inc ; include by absolute path
\r
611 path = foo ; expand "foo" relative to the current file
\r
612 path = ~/foo ; expand "foo" in your $HOME directory</literallayout>
\r
614 <section id="_variables">
\r
615 <title>Variables</title>
\r
616 <simpara>Note that this list is non-comprehensive and not necessarily complete.
\r
617 For command-specific variables, you will find a more detailed description
\r
618 in the appropriate manual page. You will find a description of non-core
\r
619 porcelain configuration variables in the respective porcelain documentation.</simpara>
\r
627 These variables control various optional help messages designed to
\r
628 aid new users. All <emphasis>advice.*</emphasis> variables default to <emphasis>true</emphasis>, and you
\r
629 can tell Git that you do not need help by setting these to <emphasis>false</emphasis>:
\r
638 Set this variable to <emphasis>false</emphasis> if you want to disable
\r
639 <emphasis>pushNonFFCurrent</emphasis>, <emphasis>pushNonFFDefault</emphasis>, and
\r
640 <emphasis>pushNonFFMatching</emphasis> simultaneously.
\r
650 Advice shown when <xref linkend="git-push(1)" /> fails due to a
\r
651 non-fast-forward update to the current branch.
\r
661 Advice to set <emphasis>push.default</emphasis> to <emphasis>upstream</emphasis> or <emphasis>current</emphasis>
\r
662 when you ran <xref linkend="git-push(1)" /> and pushed <emphasis>matching
\r
663 refs</emphasis> by default (i.e. you did not provide an explicit
\r
664 refspec, and no <emphasis>push.default</emphasis> configuration was set)
\r
665 and it resulted in a non-fast-forward error.
\r
675 Advice shown when you ran <xref linkend="git-push(1)" /> and pushed
\r
676 <emphasis>matching refs</emphasis> explicitly (i.e. you used <emphasis>:</emphasis>, or
\r
677 specified a refspec that isn't your current branch) and
\r
678 it resulted in a non-fast-forward error.
\r
688 Directions on how to stage/unstage/add shown in the
\r
689 output of <xref linkend="git-status(1)" /> and the template shown
\r
690 when writing commit messages.
\r
700 Advice shown when <xref linkend="git-merge(1)" /> refuses to
\r
701 merge to avoid overwriting local changes.
\r
711 Advices shown by various commands when conflicts
\r
712 prevent the operation from being performed.
\r
722 Advice on how to set your identity configuration when
\r
723 your information is guessed from the system username and
\r
734 Advice shown when you used <xref linkend="git-checkout(1)" /> to
\r
735 move to the detach HEAD state, to instruct how to create
\r
736 a local branch after the fact.
\r
749 If false, the executable bit differences between the index and
\r
750 the working tree are ignored; useful on broken filesystems like FAT.
\r
751 See <xref linkend="git-update-index(1)" />.
\r
753 <simpara>The default is true, except <xref linkend="git-clone(1)" /> or <xref linkend="git-init(1)" />
\r
754 will probe and set core.fileMode false if appropriate when the
\r
755 repository is created.</simpara>
\r
760 core.ignoreCygwinFSTricks
\r
764 This option is only used by Cygwin implementation of Git. If false,
\r
765 the Cygwin stat() and lstat() functions are used. This may be useful
\r
766 if your repository consists of a few separate directories joined in
\r
767 one hierarchy using Cygwin mount. If true, Git uses native Win32 API
\r
768 whenever it is possible and falls back to Cygwin functions only to
\r
769 handle symbol links. The native mode is more than twice faster than
\r
770 normal Cygwin l/stat() functions. True by default, unless core.filemode
\r
771 is true, in which case ignoreCygwinFSTricks is ignored as Cygwin's
\r
772 POSIX emulation is required to support core.filemode.
\r
782 If true, this option enables various workarounds to enable
\r
783 git to work better on filesystems that are not case sensitive,
\r
784 like FAT. For example, if a directory listing finds
\r
785 "makefile" when git expects "Makefile", git will assume
\r
786 it is really the same file, and continue to remember it as
\r
789 <simpara>The default is false, except <xref linkend="git-clone(1)" /> or <xref linkend="git-init(1)" />
\r
790 will probe and set core.ignorecase true if appropriate when the repository
\r
791 is created.</simpara>
\r
800 If false, the ctime differences between the index and the
\r
801 working tree are ignored; useful when the inode change time
\r
802 is regularly modified by something outside Git (file system
\r
803 crawlers and some backup systems).
\r
804 See <xref linkend="git-update-index(1)" />. True by default.
\r
814 The commands that output paths (e.g. <emphasis>ls-files</emphasis>,
\r
815 <emphasis>diff</emphasis>), when not given the <emphasis>-z</emphasis> option, will quote
\r
816 "unusual" characters in the pathname by enclosing the
\r
817 pathname in a double-quote pair and with backslashes the
\r
818 same way strings in C source code are quoted. If this
\r
819 variable is set to false, the bytes higher than 0x80 are
\r
820 not quoted but output as verbatim. Note that double
\r
821 quote, backslash and control characters are always
\r
822 quoted without <emphasis>-z</emphasis> regardless of the setting of this
\r
833 Sets the line ending type to use in the working directory for
\r
834 files that have the <emphasis>text</emphasis> property set. Alternatives are
\r
835 <emphasis>lf</emphasis>, <emphasis>crlf</emphasis> and <emphasis>native</emphasis>, which uses the platform's native
\r
836 line ending. The default value is <emphasis>native</emphasis>. See
\r
837 <xref linkend="gitattributes(5)" /> for more information on end-of-line
\r
848 If true, makes git check if converting <emphasis>CRLF</emphasis> is reversible when
\r
849 end-of-line conversion is active. Git will verify if a command
\r
850 modifies a file in the work tree either directly or indirectly.
\r
851 For example, committing a file followed by checking out the
\r
852 same file should yield the original file in the work tree. If
\r
853 this is not the case for the current setting of
\r
854 <emphasis>core.autocrlf</emphasis>, git will reject the file. The variable can
\r
855 be set to "warn", in which case git will only warn about an
\r
856 irreversible conversion but continue the operation.
\r
858 <simpara>CRLF conversion bears a slight chance of corrupting data.
\r
859 When it is enabled, git will convert CRLF to LF during commit and LF to
\r
860 CRLF during checkout. A file that contains a mixture of LF and
\r
861 CRLF before the commit cannot be recreated by git. For text
\r
862 files this is the right thing to do: it corrects line endings
\r
863 such that we have only LF line endings in the repository.
\r
864 But for binary files that are accidentally classified as text the
\r
865 conversion can corrupt data.</simpara>
\r
866 <simpara>If you recognize such corruption early you can easily fix it by
\r
867 setting the conversion type explicitly in .gitattributes. Right
\r
868 after committing you still have the original file in your work
\r
869 tree and this file is not yet corrupted. You can explicitly tell
\r
870 git that this file is binary and git will handle the file
\r
871 appropriately.</simpara>
\r
872 <simpara>Unfortunately, the desired effect of cleaning up text files with
\r
873 mixed line endings and the undesired effect of corrupting binary
\r
874 files cannot be distinguished. In both cases CRLFs are removed
\r
875 in an irreversible way. For text files this is the right thing
\r
876 to do because CRLFs are line endings, while for binary files
\r
877 converting CRLFs corrupts data.</simpara>
\r
878 <simpara>Note, this safety check does not mean that a checkout will generate a
\r
879 file identical to the original file for a different setting of
\r
880 <emphasis>core.eol</emphasis> and <emphasis>core.autocrlf</emphasis>, but only for the current one. For
\r
881 example, a text file with <emphasis>LF</emphasis> would be accepted with <emphasis>core.eol=lf</emphasis>
\r
882 and could later be checked out with <emphasis>core.eol=crlf</emphasis>, in which case the
\r
883 resulting file would contain <emphasis>CRLF</emphasis>, although the original file
\r
884 contained <emphasis>LF</emphasis>. However, in both work trees the line endings would be
\r
885 consistent, that is either all <emphasis>LF</emphasis> or all <emphasis>CRLF</emphasis>, but never mixed. A
\r
886 file with mixed line endings would be reported by the <emphasis>core.safecrlf</emphasis>
\r
887 mechanism.</simpara>
\r
896 Setting this variable to "true" is almost the same as setting
\r
897 the <emphasis>text</emphasis> attribute to "auto" on all files except that text
\r
898 files are not guaranteed to be normalized: files that contain
\r
899 <emphasis>CRLF</emphasis> in the repository will not be touched. Use this
\r
900 setting if you want to have <emphasis>CRLF</emphasis> line endings in your
\r
901 working directory even though the repository does not have
\r
902 normalized line endings. This variable can be set to <emphasis>input</emphasis>,
\r
903 in which case no output conversion is performed.
\r
913 If false, symbolic links are checked out as small plain files that
\r
914 contain the link text. <xref linkend="git-update-index(1)" /> and
\r
915 <xref linkend="git-add(1)" /> will not change the recorded type to regular
\r
916 file. Useful on filesystems like FAT that do not support
\r
919 <simpara>The default is true, except <xref linkend="git-clone(1)" /> or <xref linkend="git-init(1)" />
\r
920 will probe and set core.symlinks false if appropriate when the repository
\r
921 is created.</simpara>
\r
930 A "proxy command" to execute (as <emphasis>command host port</emphasis>) instead
\r
931 of establishing direct connection to the remote server when
\r
932 using the git protocol for fetching. If the variable value is
\r
933 in the "COMMAND for DOMAIN" format, the command is applied only
\r
934 on hostnames ending with the specified domain string. This variable
\r
935 may be set multiple times and is matched in the given order;
\r
936 the first match wins.
\r
938 <simpara>Can be overridden by the <emphasis>GIT_PROXY_COMMAND</emphasis> environment variable
\r
939 (which always applies universally, without the special "for"
\r
940 handling).</simpara>
\r
941 <simpara>The special string <emphasis>none</emphasis> can be used as the proxy command to
\r
942 specify that no proxy be used for a given domain pattern.
\r
943 This is useful for excluding servers inside a firewall from
\r
944 proxy use, while defaulting to a common proxy for external domains.</simpara>
\r
953 If true, commands which modify both the working tree and the index
\r
954 will mark the updated paths with the "assume unchanged" bit in the
\r
955 index. These marked files are then assumed to stay unchanged in the
\r
956 working tree, until you mark them otherwise manually - Git will not
\r
957 detect the file changes by lstat() calls. This is useful on systems
\r
958 where those are very slow, such as Microsoft Windows.
\r
959 See <xref linkend="git-update-index(1)" />.
\r
966 core.preferSymlinkRefs
\r
970 Instead of the default "symref" format for HEAD
\r
971 and other symbolic reference files, use symbolic links.
\r
972 This is sometimes needed to work with old scripts that
\r
973 expect HEAD to be a symbolic link.
\r
983 If true this repository is assumed to be <emphasis>bare</emphasis> and has no
\r
984 working directory associated with it. If this is the case a
\r
985 number of commands that require a working directory will be
\r
986 disabled, such as <xref linkend="git-add(1)" /> or <xref linkend="git-merge(1)" />.
\r
988 <simpara>This setting is automatically guessed by <xref linkend="git-clone(1)" /> or
\r
989 <xref linkend="git-init(1)" /> when the repository was created. By default a
\r
990 repository that ends in "/.git" is assumed to be not bare (bare =
\r
991 false), while all other repositories are assumed to be bare (bare
\r
1001 Set the path to the root of the working tree.
\r
1002 This can be overridden by the GIT_WORK_TREE environment
\r
1003 variable and the <emphasis>--work-tree</emphasis> command line option.
\r
1004 The value can be an absolute path or relative to the path to
\r
1005 the .git directory, which is either specified by --git-dir
\r
1006 or GIT_DIR, or automatically discovered.
\r
1007 If --git-dir or GIT_DIR is specified but none of
\r
1008 --work-tree, GIT_WORK_TREE and core.worktree is specified,
\r
1009 the current working directory is regarded as the top level
\r
1010 of your working tree.
\r
1012 <simpara>Note that this variable is honored even when set in a configuration
\r
1013 file in a ".git" subdirectory of a directory and its value differs
\r
1014 from the latter directory (e.g. "/path/to/.git/config" has
\r
1015 core.worktree set to "/different/path"), which is most likely a
\r
1016 misconfiguration. Running git commands in the "/path/to" directory will
\r
1017 still use "/different/path" as the root of the work tree and can cause
\r
1018 confusion unless you know what you are doing (e.g. you are creating a
\r
1019 read-only snapshot of the same index to a location different from the
\r
1020 repository's usual working tree).</simpara>
\r
1025 core.logAllRefUpdates
\r
1029 Enable the reflog. Updates to a ref <ref> is logged to the file
\r
1030 "$GIT_DIR/logs/<ref>", by appending the new and old
\r
1031 SHA1, the date/time and the reason of the update, but
\r
1032 only when the file exists. If this configuration
\r
1033 variable is set to true, missing "$GIT_DIR/logs/<ref>"
\r
1034 file is automatically created for branch heads (i.e. under
\r
1035 refs/heads/), remote refs (i.e. under refs/remotes/),
\r
1036 note refs (i.e. under refs/notes/), and the symbolic ref HEAD.
\r
1038 <simpara>This information can be used to determine what commit
\r
1039 was the tip of a branch "2 days ago".</simpara>
\r
1040 <simpara>This value is true by default in a repository that has
\r
1041 a working directory associated with it, and false by
\r
1042 default in a bare repository.</simpara>
\r
1047 core.repositoryFormatVersion
\r
1051 Internal variable identifying the repository format and layout
\r
1058 core.sharedRepository
\r
1062 When <emphasis>group</emphasis> (or <emphasis>true</emphasis>), the repository is made shareable between
\r
1063 several users in a group (making sure all the files and objects are
\r
1064 group-writable). When <emphasis>all</emphasis> (or <emphasis>world</emphasis> or <emphasis>everybody</emphasis>), the
\r
1065 repository will be readable by all users, additionally to being
\r
1066 group-shareable. When <emphasis>umask</emphasis> (or <emphasis>false</emphasis>), git will use permissions
\r
1067 reported by umask(2). When <emphasis>0xxx</emphasis>, where <emphasis>0xxx</emphasis> is an octal number,
\r
1068 files in the repository will have this mode value. <emphasis>0xxx</emphasis> will override
\r
1069 user's umask value (whereas the other options will only override
\r
1070 requested parts of the user's umask value). Examples: <emphasis>0660</emphasis> will make
\r
1071 the repo read/write-able for the owner and group, but inaccessible to
\r
1072 others (equivalent to <emphasis>group</emphasis> unless umask is e.g. <emphasis>0022</emphasis>). <emphasis>0640</emphasis> is a
\r
1073 repository that is group-readable but not group-writable.
\r
1074 See <xref linkend="git-init(1)" />. False by default.
\r
1080 core.warnAmbiguousRefs
\r
1084 If true, git will warn you if the ref name you passed it is ambiguous
\r
1085 and might match multiple refs in the .git/refs/ tree. True by default.
\r
1095 An integer -1..9, indicating a default compression level.
\r
1096 -1 is the zlib default. 0 means no compression,
\r
1097 and 1..9 are various speed/size tradeoffs, 9 being slowest.
\r
1098 If set, this provides a default to other compression variables,
\r
1099 such as <emphasis>core.loosecompression</emphasis> and <emphasis>pack.compression</emphasis>.
\r
1105 core.loosecompression
\r
1109 An integer -1..9, indicating the compression level for objects that
\r
1110 are not in a pack file. -1 is the zlib default. 0 means no
\r
1111 compression, and 1..9 are various speed/size tradeoffs, 9 being
\r
1112 slowest. If not set, defaults to core.compression. If that is
\r
1113 not set, defaults to 1 (best speed).
\r
1119 core.packedGitWindowSize
\r
1123 Number of bytes of a pack file to map into memory in a
\r
1124 single mapping operation. Larger window sizes may allow
\r
1125 your system to process a smaller number of large pack files
\r
1126 more quickly. Smaller window sizes will negatively affect
\r
1127 performance due to increased calls to the operating system's
\r
1128 memory manager, but may improve performance when accessing
\r
1129 a large number of large pack files.
\r
1131 <simpara>Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
\r
1132 MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
\r
1133 be reasonable for all users/operating systems. You probably do
\r
1134 not need to adjust this value.</simpara>
\r
1135 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
1140 core.packedGitLimit
\r
1144 Maximum number of bytes to map simultaneously into memory
\r
1145 from pack files. If Git needs to access more than this many
\r
1146 bytes at once to complete an operation it will unmap existing
\r
1147 regions to reclaim virtual address space within the process.
\r
1149 <simpara>Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.
\r
1150 This should be reasonable for all users/operating systems, except on
\r
1151 the largest projects. You probably do not need to adjust this value.</simpara>
\r
1152 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
1157 core.deltaBaseCacheLimit
\r
1161 Maximum number of bytes to reserve for caching base objects
\r
1162 that may be referenced by multiple deltified objects. By storing the
\r
1163 entire decompressed base objects in a cache Git is able
\r
1164 to avoid unpacking and decompressing frequently used base
\r
1165 objects multiple times.
\r
1167 <simpara>Default is 16 MiB on all platforms. This should be reasonable
\r
1168 for all users/operating systems, except on the largest projects.
\r
1169 You probably do not need to adjust this value.</simpara>
\r
1170 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
1175 core.bigFileThreshold
\r
1179 Files larger than this size are stored deflated, without
\r
1180 attempting delta compression. Storing large files without
\r
1181 delta compression avoids excessive memory usage, at the
\r
1182 slight expense of increased disk usage.
\r
1184 <simpara>Default is 512 MiB on all platforms. This should be reasonable
\r
1185 for most projects as source code and other text files can still
\r
1186 be delta compressed, but larger binary media files won't be.</simpara>
\r
1187 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
1196 In addition to <emphasis>.gitignore</emphasis> (per-directory) and
\r
1197 <emphasis>.git/info/exclude</emphasis>, git looks into this file for patterns
\r
1198 of files which are not meant to be tracked. "<emphasis>~/</emphasis>" is expanded
\r
1199 to the value of <emphasis>$HOME</emphasis> and "<emphasis>~user/</emphasis>" to the specified user's
\r
1200 home directory. See <xref linkend="gitignore(5)" />.
\r
1210 Some commands (e.g. svn and http interfaces) that interactively
\r
1211 ask for a password can be told to use an external program given
\r
1212 via the value of this variable. Can be overridden by the <emphasis>GIT_ASKPASS</emphasis>
\r
1213 environment variable. If not set, fall back to the value of the
\r
1214 <emphasis>SSH_ASKPASS</emphasis> environment variable or, failing that, a simple password
\r
1215 prompt. The external program shall be given a suitable prompt as
\r
1216 command line argument and write the password on its STDOUT.
\r
1222 core.attributesfile
\r
1226 In addition to <emphasis>.gitattributes</emphasis> (per-directory) and
\r
1227 <emphasis>.git/info/attributes</emphasis>, git looks into this file for attributes
\r
1228 (see <xref linkend="gitattributes(5)" />). Path expansions are made the same
\r
1229 way as for <emphasis>core.excludesfile</emphasis>.
\r
1239 Commands such as <emphasis>commit</emphasis> and <emphasis>tag</emphasis> that lets you edit
\r
1240 messages by launching an editor uses the value of this
\r
1241 variable when it is set, and the environment variable
\r
1242 <emphasis>GIT_EDITOR</emphasis> is not set. See <xref linkend="git-var(1)" />.
\r
1252 Text editor used by <emphasis>git rebase -i</emphasis> for editing the rebase insn file.
\r
1253 The value is meant to be interpreted by the shell when it is used.
\r
1254 It can be overridden by the <emphasis>GIT_SEQUENCE_EDITOR</emphasis> environment variable.
\r
1255 When not configured the default commit message editor is used instead.
\r
1265 The command that git will use to paginate output. Can
\r
1266 be overridden with the <emphasis>GIT_PAGER</emphasis> environment
\r
1267 variable. Note that git sets the <emphasis>LESS</emphasis> environment
\r
1268 variable to <emphasis>FRSX</emphasis> if it is unset when it runs the
\r
1269 pager. One can change these settings by setting the
\r
1270 <emphasis>LESS</emphasis> variable to some other value. Alternately,
\r
1271 these settings can be overridden on a project or
\r
1272 global basis by setting the <emphasis>core.pager</emphasis> option.
\r
1273 Setting <emphasis>core.pager</emphasis> has no affect on the <emphasis>LESS</emphasis>
\r
1274 environment variable behaviour above, so if you want
\r
1275 to override git's default settings this way, you need
\r
1276 to be explicit. For example, to disable the S option
\r
1277 in a backward compatible manner, set <emphasis>core.pager</emphasis>
\r
1278 to <emphasis>less -+$LESS -FRX</emphasis>. This will be passed to the
\r
1279 shell by git, which will translate the final command to
\r
1280 <emphasis>LESS=FRSX less -+FRSX -FRX</emphasis>.
\r
1290 A comma separated list of common whitespace problems to
\r
1291 notice. <emphasis>git diff</emphasis> will use <emphasis>color.diff.whitespace</emphasis> to
\r
1292 highlight them, and <emphasis>git apply --whitespace=error</emphasis> will
\r
1293 consider them as errors. You can prefix <emphasis>-</emphasis> to disable
\r
1294 any of them (e.g. <emphasis>-trailing-space</emphasis>):
\r
1299 <emphasis>blank-at-eol</emphasis> treats trailing whitespaces at the end of the line
\r
1300 as an error (enabled by default).
\r
1305 <emphasis>space-before-tab</emphasis> treats a space character that appears immediately
\r
1306 before a tab character in the initial indent part of the line as an
\r
1307 error (enabled by default).
\r
1312 <emphasis>indent-with-non-tab</emphasis> treats a line that is indented with 8 or more
\r
1313 space characters as an error (not enabled by default).
\r
1318 <emphasis>tab-in-indent</emphasis> treats a tab character in the initial indent part of
\r
1319 the line as an error (not enabled by default).
\r
1324 <emphasis>blank-at-eof</emphasis> treats blank lines added at the end of file as an error
\r
1325 (enabled by default).
\r
1330 <emphasis>trailing-space</emphasis> is a short-hand to cover both <emphasis>blank-at-eol</emphasis> and
\r
1331 <emphasis>blank-at-eof</emphasis>.
\r
1336 <emphasis>cr-at-eol</emphasis> treats a carriage-return at the end of line as
\r
1337 part of the line terminator, i.e. with it, <emphasis>trailing-space</emphasis>
\r
1338 does not trigger if the character before such a carriage-return
\r
1339 is not a whitespace (not enabled by default).
\r
1344 <emphasis>tabwidth=<n></emphasis> tells how many character positions a tab occupies; this
\r
1345 is relevant for <emphasis>indent-with-non-tab</emphasis> and when git fixes <emphasis>tab-in-indent</emphasis>
\r
1346 errors. The default tab width is 8. Allowed values are 1 to 63.
\r
1354 core.fsyncobjectfiles
\r
1358 This boolean will enable <emphasis>fsync()</emphasis> when writing object files.
\r
1360 <simpara>This is a total waste of time and effort on a filesystem that orders
\r
1361 data writes properly, but can be useful for filesystems that do not use
\r
1362 journalling (traditional UNIX filesystems) or that only journal metadata
\r
1363 and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").</simpara>
\r
1372 Enable parallel index preload for operations like <emphasis>git diff</emphasis>
\r
1374 <simpara>This can speed up operations like <emphasis>git diff</emphasis> and <emphasis>git status</emphasis> especially
\r
1375 on filesystems like NFS that have weak caching semantics and thus
\r
1376 relatively high IO latencies. With this set to <emphasis>true</emphasis>, git will do the
\r
1377 index comparison to the filesystem data in parallel, allowing
\r
1378 overlapping IO's.</simpara>
\r
1387 You can set this to <emphasis>link</emphasis>, in which case a hardlink followed by
\r
1388 a delete of the source are used to make sure that object creation
\r
1389 will not overwrite existing objects.
\r
1391 <simpara>On some file system/operating system combinations, this is unreliable.
\r
1392 Set this config setting to <emphasis>rename</emphasis> there; However, This will remove the
\r
1393 check that makes sure that existing object files will not get overwritten.</simpara>
\r
1402 When showing commit messages, also show notes which are stored in
\r
1403 the given ref. The ref must be fully qualified. If the given
\r
1404 ref does not exist, it is not an error but means that no
\r
1405 notes should be printed.
\r
1407 <simpara>This setting defaults to "refs/notes/commits", and it can be overridden by
\r
1408 the <emphasis>GIT_NOTES_REF</emphasis> environment variable. See <xref linkend="git-notes(1)" />.</simpara>
\r
1413 core.sparseCheckout
\r
1417 Enable "sparse checkout" feature. See section "Sparse checkout" in
\r
1418 <xref linkend="git-read-tree(1)" /> for more information.
\r
1428 Set the length object names are abbreviated to. If unspecified,
\r
1429 many commands abbreviate to 7 hexdigits, which may not be enough
\r
1430 for abbreviated object names to stay unique for sufficiently long
\r
1444 Tells <emphasis>git add</emphasis> to continue adding files when some files cannot be
\r
1445 added due to indexing errors. Equivalent to the <emphasis>--ignore-errors</emphasis>
\r
1446 option of <xref linkend="git-add(1)" />. Older versions of git accept only
\r
1447 <emphasis>add.ignore-errors</emphasis>, which does not follow the usual naming
\r
1448 convention for configuration variables. Newer versions of git
\r
1449 honor <emphasis>add.ignoreErrors</emphasis> as well.
\r
1459 Command aliases for the <xref linkend="git(1)" /> command wrapper - e.g.
\r
1460 after defining "alias.last = cat-file commit HEAD", the invocation
\r
1461 "git last" is equivalent to "git cat-file commit HEAD". To avoid
\r
1462 confusion and troubles with script usage, aliases that
\r
1463 hide existing git commands are ignored. Arguments are split by
\r
1464 spaces, the usual shell quoting and escaping is supported.
\r
1465 quote pair and a backslash can be used to quote them.
\r
1467 <simpara>If the alias expansion is prefixed with an exclamation point,
\r
1468 it will be treated as a shell command. For example, defining
\r
1469 "alias.new = !gitk --all --not ORIG_HEAD", the invocation
\r
1470 "git new" is equivalent to running the shell command
\r
1471 "gitk --all --not ORIG_HEAD". Note that shell commands will be
\r
1472 executed from the top-level directory of a repository, which may
\r
1473 not necessarily be the current directory.
\r
1474 <emphasis>GIT_PREFIX</emphasis> is set as returned by running <emphasis>git rev-parse --show-prefix</emphasis>
\r
1475 from the original current directory. See <xref linkend="git-rev-parse(1)" />.</simpara>
\r
1484 If true, git-am will call git-mailsplit for patches in mbox format
\r
1485 with parameter <emphasis>--keep-cr</emphasis>. In this case git-mailsplit will
\r
1486 not remove <emphasis>\r</emphasis> from lines ending with <emphasis>\r\n</emphasis>. Can be overridden
\r
1487 by giving <emphasis>--no-keep-cr</emphasis> from the command line.
\r
1488 See <xref linkend="git-am(1)" />, <xref linkend="git-mailsplit(1)" />.
\r
1494 apply.ignorewhitespace
\r
1498 When set to <emphasis>change</emphasis>, tells <emphasis>git apply</emphasis> to ignore changes in
\r
1499 whitespace, in the same way as the <emphasis>--ignore-space-change</emphasis>
\r
1501 When set to one of: no, none, never, false tells <emphasis>git apply</emphasis> to
\r
1502 respect all whitespace differences.
\r
1503 See <xref linkend="git-apply(1)" />.
\r
1513 Tells <emphasis>git apply</emphasis> how to handle whitespaces, in the same way
\r
1514 as the <emphasis>--whitespace</emphasis> option. See <xref linkend="git-apply(1)" />.
\r
1520 branch.autosetupmerge
\r
1524 Tells <emphasis>git branch</emphasis> and <emphasis>git checkout</emphasis> to set up new branches
\r
1525 so that <xref linkend="git-pull(1)" /> will appropriately merge from the
\r
1526 starting point branch. Note that even if this option is not set,
\r
1527 this behavior can be chosen per-branch using the <emphasis>--track</emphasis>
\r
1528 and <emphasis>--no-track</emphasis> options. The valid settings are: <emphasis>false</emphasis> -- no
\r
1529 automatic setup is done; <emphasis>true</emphasis> -- automatic setup is done when the
\r
1530 starting point is a remote-tracking branch; <emphasis>always</emphasis> --
\r
1531 automatic setup is done when the starting point is either a
\r
1532 local branch or remote-tracking
\r
1533 branch. This option defaults to true.
\r
1539 branch.autosetuprebase
\r
1543 When a new branch is created with <emphasis>git branch</emphasis> or <emphasis>git checkout</emphasis>
\r
1544 that tracks another branch, this variable tells git to set
\r
1545 up pull to rebase instead of merge (see "branch.<name>.rebase").
\r
1546 When <emphasis>never</emphasis>, rebase is never automatically set to true.
\r
1547 When <emphasis>local</emphasis>, rebase is set to true for tracked branches of
\r
1548 other local branches.
\r
1549 When <emphasis>remote</emphasis>, rebase is set to true for tracked branches of
\r
1550 remote-tracking branches.
\r
1551 When <emphasis>always</emphasis>, rebase will be set to true for all tracking
\r
1553 See "branch.autosetupmerge" for details on how to set up a
\r
1554 branch to track another branch.
\r
1555 This option defaults to never.
\r
1561 branch.<name>.remote
\r
1565 When in branch <name>, it tells <emphasis>git fetch</emphasis> and <emphasis>git push</emphasis> which
\r
1566 remote to fetch from/push to. It defaults to <emphasis>origin</emphasis> if no remote is
\r
1567 configured. <emphasis>origin</emphasis> is also used if you are not on any branch.
\r
1573 branch.<name>.merge
\r
1577 Defines, together with branch.<name>.remote, the upstream branch
\r
1578 for the given branch. It tells <emphasis>git fetch</emphasis>/<emphasis>git pull</emphasis>/<emphasis>git rebase</emphasis> which
\r
1579 branch to merge and can also affect <emphasis>git push</emphasis> (see push.default).
\r
1580 When in branch <name>, it tells <emphasis>git fetch</emphasis> the default
\r
1581 refspec to be marked for merging in FETCH_HEAD. The value is
\r
1582 handled like the remote part of a refspec, and must match a
\r
1583 ref which is fetched from the remote given by
\r
1584 "branch.<name>.remote".
\r
1585 The merge information is used by <emphasis>git pull</emphasis> (which at first calls
\r
1586 <emphasis>git fetch</emphasis>) to lookup the default branch for merging. Without
\r
1587 this option, <emphasis>git pull</emphasis> defaults to merge the first refspec fetched.
\r
1588 Specify multiple values to get an octopus merge.
\r
1589 If you wish to setup <emphasis>git pull</emphasis> so that it merges into <name> from
\r
1590 another branch in the local repository, you can point
\r
1591 branch.<name>.merge to the desired branch, and use the special setting
\r
1592 <emphasis>.</emphasis> (a period) for branch.<name>.remote.
\r
1598 branch.<name>.mergeoptions
\r
1602 Sets default options for merging into branch <name>. The syntax and
\r
1603 supported options are the same as those of <xref linkend="git-merge(1)" />, but
\r
1604 option values containing whitespace characters are currently not
\r
1611 branch.<name>.rebase
\r
1615 When true, rebase the branch <name> on top of the fetched branch,
\r
1616 instead of merging the default branch from the default remote when
\r
1617 "git pull" is run. See "pull.rebase" for doing this in a non
\r
1618 branch-specific manner.
\r
1620 <simpara><emphasis role="strong">NOTE</emphasis>: this is a possibly dangerous operation; do <emphasis role="strong">not</emphasis> use
\r
1621 it unless you understand the implications (see <xref linkend="git-rebase(1)" />
\r
1622 for details).</simpara>
\r
1627 browser.<tool>.cmd
\r
1631 Specify the command to invoke the specified browser. The
\r
1632 specified command is evaluated in shell with the URLs passed
\r
1633 as arguments. (See <xref linkend="git-web--browse(1)" />.)
\r
1639 browser.<tool>.path
\r
1643 Override the path for the given tool that may be used to
\r
1644 browse HTML help (see <emphasis>-w</emphasis> option in <xref linkend="git-help(1)" />) or a
\r
1645 working repository in gitweb (see <xref linkend="git-instaweb(1)" />).
\r
1651 clean.requireForce
\r
1655 A boolean to make git-clean do nothing unless given -f
\r
1656 or -n. Defaults to true.
\r
1666 A boolean to enable/disable color in the output of
\r
1667 <xref linkend="git-branch(1)" />. May be set to <emphasis>always</emphasis>,
\r
1668 <emphasis>false</emphasis> (or <emphasis>never</emphasis>) or <emphasis>auto</emphasis> (or <emphasis>true</emphasis>), in which case colors are used
\r
1669 only when the output is to a terminal. Defaults to false.
\r
1675 color.branch.<slot>
\r
1679 Use customized color for branch coloration. <emphasis><slot></emphasis> is one of
\r
1680 <emphasis>current</emphasis> (the current branch), <emphasis>local</emphasis> (a local branch),
\r
1681 <emphasis>remote</emphasis> (a remote-tracking branch in refs/remotes/), <emphasis>plain</emphasis> (other
\r
1684 <simpara>The value for these configuration variables is a list of colors (at most
\r
1685 two) and attributes (at most one), separated by spaces. The colors
\r
1686 accepted are <emphasis>normal</emphasis>, <emphasis>black</emphasis>, <emphasis>red</emphasis>, <emphasis>green</emphasis>, <emphasis>yellow</emphasis>, <emphasis>blue</emphasis>,
\r
1687 <emphasis>magenta</emphasis>, <emphasis>cyan</emphasis> and <emphasis>white</emphasis>; the attributes are <emphasis>bold</emphasis>, <emphasis>dim</emphasis>, <emphasis>ul</emphasis>,
\r
1688 <emphasis>blink</emphasis> and <emphasis>reverse</emphasis>. The first color given is the foreground; the
\r
1689 second is the background. The position of the attribute, if any,
\r
1690 doesn't matter.</simpara>
\r
1699 Whether to use ANSI escape sequences to add color to patches.
\r
1700 If this is set to <emphasis>always</emphasis>, <xref linkend="git-diff(1)" />,
\r
1701 <xref linkend="git-log(1)" />, and <xref linkend="git-show(1)" /> will use color
\r
1702 for all patches. If it is set to <emphasis>true</emphasis> or <emphasis>auto</emphasis>, those
\r
1703 commands will only use color when output is to the terminal.
\r
1704 Defaults to false.
\r
1706 <simpara>This does not affect <xref linkend="git-format-patch(1)" /> nor the
\r
1707 <emphasis>git-diff-*</emphasis> plumbing commands. Can be overridden on the
\r
1708 command line with the <emphasis>--color[=<when>]</emphasis> option.</simpara>
\r
1713 color.diff.<slot>
\r
1717 Use customized color for diff colorization. <emphasis><slot></emphasis> specifies
\r
1718 which part of the patch to use the specified color, and is one
\r
1719 of <emphasis>plain</emphasis> (context text), <emphasis>meta</emphasis> (metainformation), <emphasis>frag</emphasis>
\r
1720 (hunk header), <emphasis>func</emphasis> (function in hunk header), <emphasis>old</emphasis> (removed lines),
\r
1721 <emphasis>new</emphasis> (added lines), <emphasis>commit</emphasis> (commit headers), or <emphasis>whitespace</emphasis>
\r
1722 (highlighting whitespace errors). The values of these variables may be
\r
1723 specified as in color.branch.<slot>.
\r
1729 color.decorate.<slot>
\r
1733 Use customized color for <emphasis>git log --decorate</emphasis> output. <emphasis><slot></emphasis> is one
\r
1734 of <emphasis>branch</emphasis>, <emphasis>remoteBranch</emphasis>, <emphasis>tag</emphasis>, <emphasis>stash</emphasis> or <emphasis>HEAD</emphasis> for local
\r
1735 branches, remote-tracking branches, tags, stash and HEAD, respectively.
\r
1745 When set to <emphasis>always</emphasis>, always highlight matches. When <emphasis>false</emphasis> (or
\r
1746 <emphasis>never</emphasis>), never. When set to <emphasis>true</emphasis> or <emphasis>auto</emphasis>, use color only
\r
1747 when the output is written to the terminal. Defaults to <emphasis>false</emphasis>.
\r
1753 color.grep.<slot>
\r
1757 Use customized color for grep colorization. <emphasis><slot></emphasis> specifies which
\r
1758 part of the line to use the specified color, and is one of
\r
1763 <emphasis>context</emphasis>
\r
1767 non-matching text in context lines (when using <emphasis>-A</emphasis>, <emphasis>-B</emphasis>, or <emphasis>-C</emphasis>)
\r
1773 <emphasis>filename</emphasis>
\r
1777 filename prefix (when not using <emphasis>-h</emphasis>)
\r
1783 <emphasis>function</emphasis>
\r
1787 function name lines (when using <emphasis>-p</emphasis>)
\r
1793 <emphasis>linenumber</emphasis>
\r
1797 line number prefix (when using <emphasis>-n</emphasis>)
\r
1803 <emphasis>match</emphasis>
\r
1813 <emphasis>selected</emphasis>
\r
1817 non-matching text in selected lines
\r
1823 <emphasis>separator</emphasis>
\r
1827 separators between fields on a line (<emphasis>:</emphasis>, <emphasis>-</emphasis>, and <emphasis>=</emphasis>)
\r
1828 and between hunks (<emphasis>--</emphasis>)
\r
1833 <simpara>The values of these variables may be specified as in color.branch.<slot>.</simpara>
\r
1842 When set to <emphasis>always</emphasis>, always use colors for interactive prompts
\r
1843 and displays (such as those used by "git-add --interactive").
\r
1844 When false (or <emphasis>never</emphasis>), never. When set to <emphasis>true</emphasis> or <emphasis>auto</emphasis>, use
\r
1845 colors only when the output is to the terminal. Defaults to false.
\r
1851 color.interactive.<slot>
\r
1855 Use customized color for <emphasis>git add --interactive</emphasis>
\r
1856 output. <emphasis><slot></emphasis> may be <emphasis>prompt</emphasis>, <emphasis>header</emphasis>, <emphasis>help</emphasis> or <emphasis>error</emphasis>, for
\r
1857 four distinct types of normal output from interactive
\r
1858 commands. The values of these variables may be specified as
\r
1859 in color.branch.<slot>.
\r
1869 A boolean to enable/disable colored output when the pager is in
\r
1870 use (default is true).
\r
1880 A boolean to enable/disable color in the output of
\r
1881 <xref linkend="git-show-branch(1)" />. May be set to <emphasis>always</emphasis>,
\r
1882 <emphasis>false</emphasis> (or <emphasis>never</emphasis>) or <emphasis>auto</emphasis> (or <emphasis>true</emphasis>), in which case colors are used
\r
1883 only when the output is to a terminal. Defaults to false.
\r
1893 A boolean to enable/disable color in the output of
\r
1894 <xref linkend="git-status(1)" />. May be set to <emphasis>always</emphasis>,
\r
1895 <emphasis>false</emphasis> (or <emphasis>never</emphasis>) or <emphasis>auto</emphasis> (or <emphasis>true</emphasis>), in which case colors are used
\r
1896 only when the output is to a terminal. Defaults to false.
\r
1902 color.status.<slot>
\r
1906 Use customized color for status colorization. <emphasis><slot></emphasis> is
\r
1907 one of <emphasis>header</emphasis> (the header text of the status message),
\r
1908 <emphasis>added</emphasis> or <emphasis>updated</emphasis> (files which are added but not committed),
\r
1909 <emphasis>changed</emphasis> (files which are changed but not added in the index),
\r
1910 <emphasis>untracked</emphasis> (files which are not tracked by git),
\r
1911 <emphasis>branch</emphasis> (the current branch), or
\r
1912 <emphasis>nobranch</emphasis> (the color the <emphasis>no branch</emphasis> warning is shown in, defaulting
\r
1913 to red). The values of these variables may be specified as in
\r
1914 color.branch.<slot>.
\r
1924 This variable determines the default value for variables such
\r
1925 as <emphasis>color.diff</emphasis> and <emphasis>color.grep</emphasis> that control the use of color
\r
1926 per command family. Its scope will expand as more commands learn
\r
1927 configuration to set a default for the <emphasis>--color</emphasis> option. Set it
\r
1928 to <emphasis>always</emphasis> if you want all output not intended for machine
\r
1929 consumption to use color, to <emphasis>true</emphasis> or <emphasis>auto</emphasis> if you want such
\r
1930 output to use color when written to the terminal, or to <emphasis>false</emphasis> or
\r
1931 <emphasis>never</emphasis> if you prefer git commands not to use color unless enabled
\r
1932 explicitly with some other configuration or the <emphasis>--color</emphasis> option.
\r
1942 A boolean to enable/disable inclusion of status information in the
\r
1943 commit message template when using an editor to prepare the commit
\r
1944 message. Defaults to true.
\r
1954 Specify a file to use as the template for new commit messages.
\r
1955 "<emphasis>~/</emphasis>" is expanded to the value of <emphasis>$HOME</emphasis> and "<emphasis>~user/</emphasis>" to the
\r
1956 specified user's home directory.
\r
1966 Specify an external helper to be called when a username or
\r
1967 password credential is needed; the helper may consult external
\r
1968 storage to avoid prompting the user for the credentials. See
\r
1969 <xref linkend="gitcredentials(7)" /> for details.
\r
1975 credential.useHttpPath
\r
1979 When acquiring credentials, consider the "path" component of an http
\r
1980 or https URL to be important. Defaults to false. See
\r
1981 <xref linkend="gitcredentials(7)" /> for more information.
\r
1987 credential.username
\r
1991 If no username is set for a network authentication, use this username
\r
1992 by default. See credential.<context>.* below, and
\r
1993 <xref linkend="gitcredentials(7)" />.
\r
1999 credential.<url>.*
\r
2003 Any of the credential.* options above can be applied selectively to
\r
2004 some credentials. For example "credential.https://example.com.username"
\r
2005 would set the default username only for https connections to
\r
2006 example.com. See <xref linkend="gitcredentials(7)" /> for details on how URLs are
\r
2013 diff.autorefreshindex
\r
2017 When using <emphasis>git diff</emphasis> to compare with work tree
\r
2018 files, do not consider stat-only change as changed.
\r
2019 Instead, silently run <emphasis>git update-index --refresh</emphasis> to
\r
2020 update the cached stat information for paths whose
\r
2021 contents in the work tree match the contents in the
\r
2022 index. This option defaults to true. Note that this
\r
2023 affects only <emphasis>git diff</emphasis> Porcelain, and not lower level
\r
2024 <emphasis>diff</emphasis> commands such as <emphasis>git diff-files</emphasis>.
\r
2034 A comma separated list of <emphasis>--dirstat</emphasis> parameters specifying the
\r
2035 default behavior of the <emphasis>--dirstat</emphasis> option to <xref linkend="git-diff(1)" />`
\r
2036 and friends. The defaults can be overridden on the command line
\r
2037 (using <emphasis>--dirstat=<param1,param2,...></emphasis>). The fallback defaults
\r
2038 (when not changed by <emphasis>diff.dirstat</emphasis>) are <emphasis>changes,noncumulative,3</emphasis>.
\r
2039 The following parameters are available:
\r
2044 <emphasis>changes</emphasis>
\r
2048 Compute the dirstat numbers by counting the lines that have been
\r
2049 removed from the source, or added to the destination. This ignores
\r
2050 the amount of pure code movements within a file. In other words,
\r
2051 rearranging lines in a file is not counted as much as other changes.
\r
2052 This is the default behavior when no parameter is given.
\r
2058 <emphasis>lines</emphasis>
\r
2062 Compute the dirstat numbers by doing the regular line-based diff
\r
2063 analysis, and summing the removed/added line counts. (For binary
\r
2064 files, count 64-byte chunks instead, since binary files have no
\r
2065 natural concept of lines). This is a more expensive <emphasis>--dirstat</emphasis>
\r
2066 behavior than the <emphasis>changes</emphasis> behavior, but it does count rearranged
\r
2067 lines within a file as much as other changes. The resulting output
\r
2068 is consistent with what you get from the other <emphasis>--*stat</emphasis> options.
\r
2074 <emphasis>files</emphasis>
\r
2078 Compute the dirstat numbers by counting the number of files changed.
\r
2079 Each changed file counts equally in the dirstat analysis. This is
\r
2080 the computationally cheapest <emphasis>--dirstat</emphasis> behavior, since it does
\r
2081 not have to look at the file contents at all.
\r
2087 <emphasis>cumulative</emphasis>
\r
2091 Count changes in a child directory for the parent directory as well.
\r
2092 Note that when using <emphasis>cumulative</emphasis>, the sum of the percentages
\r
2093 reported may exceed 100%. The default (non-cumulative) behavior can
\r
2094 be specified with the <emphasis>noncumulative</emphasis> parameter.
\r
2104 An integer parameter specifies a cut-off percent (3% by default).
\r
2105 Directories contributing less than this percentage of the changes
\r
2106 are not shown in the output.
\r
2111 <simpara>Example: The following will count changed files, while ignoring
\r
2112 directories with less than 10% of the total amount of changed files,
\r
2113 and accumulating child directory counts in the parent directories:
\r
2114 <emphasis>files,10,cumulative</emphasis>.</simpara>
\r
2119 diff.statGraphWidth
\r
2123 Limit the width of the graph part in --stat output. If set, applies
\r
2124 to all commands generating --stat outuput except format-patch.
\r
2134 If this config variable is set, diff generation is not
\r
2135 performed using the internal diff machinery, but using the
\r
2136 given command. Can be overridden with the GIT_EXTERNAL_DIFF
\r
2137 environment variable. The command is called with parameters
\r
2138 as described under "git Diffs" in <xref linkend="git(1)" />. Note: if
\r
2139 you want to use an external diff program only on a subset of
\r
2140 your files, you might want to use <xref linkend="gitattributes(5)" /> instead.
\r
2146 diff.ignoreSubmodules
\r
2150 Sets the default value of --ignore-submodules. Note that this
\r
2151 affects only <emphasis>git diff</emphasis> Porcelain, and not lower level <emphasis>diff</emphasis>
\r
2152 commands such as <emphasis>git diff-files</emphasis>. <emphasis>git checkout</emphasis> also honors
\r
2153 this setting when reporting uncommitted changes.
\r
2159 diff.mnemonicprefix
\r
2163 If set, <emphasis>git diff</emphasis> uses a prefix pair that is different from the
\r
2164 standard "a/" and "b/" depending on what is being compared. When
\r
2165 this configuration is in effect, reverse diff output also swaps
\r
2166 the order of the prefixes:
\r
2171 <emphasis>git diff</emphasis>
\r
2175 compares the (i)ndex and the (w)ork tree;
\r
2181 <emphasis>git diff HEAD</emphasis>
\r
2185 compares a (c)ommit and the (w)ork tree;
\r
2191 <emphasis>git diff --cached</emphasis>
\r
2195 compares a (c)ommit and the (i)ndex;
\r
2201 <emphasis>git diff HEAD:file1 file2</emphasis>
\r
2205 compares an (o)bject and a (w)ork tree entity;
\r
2211 <emphasis>git diff --no-index a b</emphasis>
\r
2215 compares two non-git things (1) and (2).
\r
2228 If set, <emphasis>git diff</emphasis> does not show any source or destination prefix.
\r
2238 The number of files to consider when performing the copy/rename
\r
2239 detection; equivalent to the <emphasis>git diff</emphasis> option <emphasis>-l</emphasis>.
\r
2249 Tells git to detect renames. If set to any boolean value, it
\r
2250 will enable basic rename detection. If set to "copies" or
\r
2251 "copy", it will detect copies, as well.
\r
2257 diff.suppressBlankEmpty
\r
2261 A boolean to inhibit the standard behavior of printing a space
\r
2262 before each empty output line. Defaults to false.
\r
2268 diff.<driver>.command
\r
2272 The custom diff driver command. See <xref linkend="gitattributes(5)" />
\r
2279 diff.<driver>.xfuncname
\r
2283 The regular expression that the diff driver should use to
\r
2284 recognize the hunk header. A built-in pattern may also be used.
\r
2285 See <xref linkend="gitattributes(5)" /> for details.
\r
2291 diff.<driver>.binary
\r
2295 Set this option to true to make the diff driver treat files as
\r
2296 binary. See <xref linkend="gitattributes(5)" /> for details.
\r
2302 diff.<driver>.textconv
\r
2306 The command that the diff driver should call to generate the
\r
2307 text-converted version of a file. The result of the
\r
2308 conversion is used to generate a human-readable diff. See
\r
2309 <xref linkend="gitattributes(5)" /> for details.
\r
2315 diff.<driver>.wordregex
\r
2319 The regular expression that the diff driver should use to
\r
2320 split words in a line. See <xref linkend="gitattributes(5)" /> for
\r
2327 diff.<driver>.cachetextconv
\r
2331 Set this option to true to make the diff driver cache the text
\r
2332 conversion outputs. See <xref linkend="gitattributes(5)" /> for details.
\r
2342 The diff tool to be used by <xref linkend="git-difftool(1)" />. This
\r
2343 option overrides <emphasis>merge.tool</emphasis>, and has the same valid built-in
\r
2344 values as <emphasis>merge.tool</emphasis> minus "tortoisemerge" and plus
\r
2345 "kompare". Any other value is treated as a custom diff tool,
\r
2346 and there must be a corresponding <emphasis>difftool.<tool>.cmd</emphasis>
\r
2353 difftool.<tool>.path
\r
2357 Override the path for the given tool. This is useful in case
\r
2358 your tool is not in the PATH.
\r
2364 difftool.<tool>.cmd
\r
2368 Specify the command to invoke the specified diff tool.
\r
2369 The specified command is evaluated in shell with the following
\r
2370 variables available: <emphasis>LOCAL</emphasis> is set to the name of the temporary
\r
2371 file containing the contents of the diff pre-image and <emphasis>REMOTE</emphasis>
\r
2372 is set to the name of the temporary file containing the contents
\r
2373 of the diff post-image.
\r
2383 Prompt before each invocation of the diff tool.
\r
2393 A POSIX Extended Regular Expression used to determine what is a "word"
\r
2394 when performing word-by-word difference calculations. Character
\r
2395 sequences that match the regular expression are "words", all other
\r
2396 characters are <emphasis role="strong">ignorable</emphasis> whitespace.
\r
2402 fetch.recurseSubmodules
\r
2406 This option can be either set to a boolean value or to <emphasis>on-demand</emphasis>.
\r
2407 Setting it to a boolean changes the behavior of fetch and pull to
\r
2408 unconditionally recurse into submodules when set to true or to not
\r
2409 recurse at all when set to false. When set to <emphasis>on-demand</emphasis> (the default
\r
2410 value), fetch and pull will only recurse into a populated submodule
\r
2411 when its superproject retrieves a commit that updates the submodule's
\r
2422 If it is set to true, git-fetch-pack will check all fetched
\r
2423 objects. It will abort in the case of a malformed object or a
\r
2424 broken link. The result of an abort are only dangling objects.
\r
2425 Defaults to false. If not set, the value of <emphasis>transfer.fsckObjects</emphasis>
\r
2436 If the number of objects fetched over the git native
\r
2437 transfer is below this
\r
2438 limit, then the objects will be unpacked into loose object
\r
2439 files. However if the number of received objects equals or
\r
2440 exceeds this limit then the received pack will be stored as
\r
2441 a pack, after adding any missing delta bases. Storing the
\r
2442 pack from a push can make the push operation complete faster,
\r
2443 especially on slow filesystems. If not set, the value of
\r
2444 <emphasis>transfer.unpackLimit</emphasis> is used instead.
\r
2454 Enable multipart/mixed attachments as the default for
\r
2455 <emphasis>format-patch</emphasis>. The value can also be a double quoted string
\r
2456 which will enable attachments as the default and set the
\r
2457 value as the boundary. See the --attach option in
\r
2458 <xref linkend="git-format-patch(1)" />.
\r
2468 A boolean which can enable or disable sequence numbers in patch
\r
2469 subjects. It defaults to "auto" which enables it only if there
\r
2470 is more than one patch. It can be enabled or disabled for all
\r
2471 messages by setting it to "true" or "false". See --numbered
\r
2472 option in <xref linkend="git-format-patch(1)" />.
\r
2482 Additional email headers to include in a patch to be submitted
\r
2483 by mail. See <xref linkend="git-format-patch(1)" />.
\r
2496 Additional recipients to include in a patch to be submitted
\r
2497 by mail. See the --to and --cc options in
\r
2498 <xref linkend="git-format-patch(1)" />.
\r
2504 format.subjectprefix
\r
2508 The default for format-patch is to output files with the <emphasis>[PATCH]</emphasis>
\r
2509 subject prefix. Use this variable to change that prefix.
\r
2519 The default for format-patch is to output a signature containing
\r
2520 the git version number. Use this variable to change that default.
\r
2521 Set this variable to the empty string ("") to suppress
\r
2522 signature generation.
\r
2532 The default for format-patch is to output files with the suffix
\r
2533 <emphasis>.patch</emphasis>. Use this variable to change that suffix (make sure to
\r
2534 include the dot if you want it).
\r
2544 The default pretty format for log/show/whatchanged command,
\r
2545 See <xref linkend="git-log(1)" />, <xref linkend="git-show(1)" />,
\r
2546 <xref linkend="git-whatchanged(1)" />.
\r
2556 The default threading style for <emphasis>git format-patch</emphasis>. Can be
\r
2557 a boolean value, or <emphasis>shallow</emphasis> or <emphasis>deep</emphasis>. <emphasis>shallow</emphasis> threading
\r
2558 makes every mail a reply to the head of the series,
\r
2559 where the head is chosen from the cover letter, the
\r
2560 <emphasis>--in-reply-to</emphasis>, and the first patch mail, in this order.
\r
2561 <emphasis>deep</emphasis> threading makes every mail a reply to the previous one.
\r
2562 A true boolean value is the same as <emphasis>shallow</emphasis>, and a false
\r
2563 value disables threading.
\r
2573 A boolean value which lets you enable the <emphasis>-s/--signoff</emphasis> option of
\r
2574 format-patch by default. <emphasis role="strong">Note:</emphasis> Adding the Signed-off-by: line to a
\r
2575 patch should be a conscious act and means that you certify you have
\r
2576 the rights to submit this work under the same open source license.
\r
2577 Please see the <emphasis>SubmittingPatches</emphasis> document for further discussion.
\r
2583 filter.<driver>.clean
\r
2587 The command which is used to convert the content of a worktree
\r
2588 file to a blob upon checkin. See <xref linkend="gitattributes(5)" /> for
\r
2595 filter.<driver>.smudge
\r
2599 The command which is used to convert the content of a blob
\r
2600 object to a worktree file upon checkout. See
\r
2601 <xref linkend="gitattributes(5)" /> for details.
\r
2607 gc.aggressiveWindow
\r
2611 The window size parameter used in the delta compression
\r
2612 algorithm used by <emphasis>git gc --aggressive</emphasis>. This defaults
\r
2623 When there are approximately more than this many loose
\r
2624 objects in the repository, <emphasis>git gc --auto</emphasis> will pack them.
\r
2625 Some Porcelain commands use this command to perform a
\r
2626 light-weight garbage collection from time to time. The
\r
2627 default value is 6700. Setting this to 0 disables it.
\r
2637 When there are more than this many packs that are not
\r
2638 marked with <emphasis>*.keep</emphasis> file in the repository, <emphasis>git gc
\r
2639 --auto</emphasis> consolidates them into one larger pack. The
\r
2640 default value is 50. Setting this to 0 disables it.
\r
2650 Running <emphasis>git pack-refs</emphasis> in a repository renders it
\r
2651 unclonable by Git versions prior to 1.5.1.2 over dumb
\r
2652 transports such as HTTP. This variable determines whether
\r
2653 <emphasis>git gc</emphasis> runs <emphasis>git pack-refs</emphasis>. This can be set to <emphasis>notbare</emphasis>
\r
2654 to enable it within all non-bare repos or it can be set to a
\r
2655 boolean value. The default is <emphasis>true</emphasis>.
\r
2665 When <emphasis>git gc</emphasis> is run, it will call <emphasis>prune --expire 2.weeks.ago</emphasis>.
\r
2666 Override the grace period with this config variable. The value
\r
2667 "now" may be used to disable this grace period and always prune
\r
2668 unreachable objects immediately.
\r
2677 gc.<pattern>.reflogexpire
\r
2681 <emphasis>git reflog expire</emphasis> removes reflog entries older than
\r
2682 this time; defaults to 90 days. With "<pattern>" (e.g.
\r
2683 "refs/stash") in the middle the setting applies only to
\r
2684 the refs that match the <pattern>.
\r
2690 gc.reflogexpireunreachable
\r
2693 gc.<ref>.reflogexpireunreachable
\r
2697 <emphasis>git reflog expire</emphasis> removes reflog entries older than
\r
2698 this time and are not reachable from the current tip;
\r
2699 defaults to 30 days. With "<pattern>" (e.g. "refs/stash")
\r
2700 in the middle, the setting applies only to the refs that
\r
2701 match the <pattern>.
\r
2711 Records of conflicted merge you resolved earlier are
\r
2712 kept for this many days when <emphasis>git rerere gc</emphasis> is run.
\r
2713 The default is 60 days. See <xref linkend="git-rerere(1)" />.
\r
2719 gc.rerereunresolved
\r
2723 Records of conflicted merge you have not resolved are
\r
2724 kept for this many days when <emphasis>git rerere gc</emphasis> is run.
\r
2725 The default is 15 days. See <xref linkend="git-rerere(1)" />.
\r
2731 gitcvs.commitmsgannotation
\r
2735 Append this string to each commit message. Set to empty string
\r
2736 to disable this feature. Defaults to "via git-CVS emulator".
\r
2746 Whether the CVS server interface is enabled for this repository.
\r
2747 See <xref linkend="git-cvsserver(1)" />.
\r
2757 Path to a log file where the CVS server interface well… logs
\r
2758 various stuff. See <xref linkend="git-cvsserver(1)" />.
\r
2764 gitcvs.usecrlfattr
\r
2768 If true, the server will look up the end-of-line conversion
\r
2769 attributes for files to determine the <emphasis>-k</emphasis> modes to use. If
\r
2770 the attributes force git to treat a file as text,
\r
2771 the <emphasis>-k</emphasis> mode will be left blank so CVS clients will
\r
2772 treat it as text. If they suppress text conversion, the file
\r
2773 will be set with <emphasis>-kb</emphasis> mode, which suppresses any newline munging
\r
2774 the client might otherwise do. If the attributes do not allow
\r
2775 the file type to be determined, then <emphasis>gitcvs.allbinary</emphasis> is
\r
2776 used. See <xref linkend="gitattributes(5)" />.
\r
2786 This is used if <emphasis>gitcvs.usecrlfattr</emphasis> does not resolve
\r
2787 the correct <emphasis>-kb</emphasis> mode to use. If true, all
\r
2788 unresolved files are sent to the client in
\r
2789 mode <emphasis>-kb</emphasis>. This causes the client to treat them
\r
2790 as binary files, which suppresses any newline munging it
\r
2791 otherwise might do. Alternatively, if it is set to "guess",
\r
2792 then the contents of the file are examined to decide if
\r
2793 it is binary, similar to <emphasis>core.autocrlf</emphasis>.
\r
2803 Database used by git-cvsserver to cache revision information
\r
2804 derived from the git repository. The exact meaning depends on the
\r
2805 used database driver, for SQLite (which is the default driver) this
\r
2806 is a filename. Supports variable substitution (see
\r
2807 <xref linkend="git-cvsserver(1)" /> for details). May not contain semicolons (<emphasis>;</emphasis>).
\r
2808 Default: <emphasis>%Ggitcvs.%m.sqlite</emphasis>
\r
2818 Used Perl DBI driver. You can specify any available driver
\r
2819 for this here, but it might not work. git-cvsserver is tested
\r
2820 with <emphasis>DBD::SQLite</emphasis>, reported to work with <emphasis>DBD::Pg</emphasis>, and
\r
2821 reported <emphasis role="strong">not</emphasis> to work with <emphasis>DBD::mysql</emphasis>. Experimental feature.
\r
2822 May not contain double colons (<emphasis>:</emphasis>). Default: <emphasis>SQLite</emphasis>.
\r
2823 See <xref linkend="git-cvsserver(1)" />.
\r
2829 gitcvs.dbuser, gitcvs.dbpass
\r
2833 Database user and password. Only useful if setting <emphasis>gitcvs.dbdriver</emphasis>,
\r
2834 since SQLite has no concept of database users and/or passwords.
\r
2835 <emphasis>gitcvs.dbuser</emphasis> supports variable substitution (see
\r
2836 <xref linkend="git-cvsserver(1)" /> for details).
\r
2842 gitcvs.dbTableNamePrefix
\r
2846 Database table name prefix. Prepended to the names of any
\r
2847 database tables used, allowing a single database to be used
\r
2848 for several repositories. Supports variable substitution (see
\r
2849 <xref linkend="git-cvsserver(1)" /> for details). Any non-alphabetic
\r
2850 characters will be replaced with underscores.
\r
2855 <simpara>All gitcvs variables except for <emphasis>gitcvs.usecrlfattr</emphasis> and
\r
2856 <emphasis>gitcvs.allbinary</emphasis> can also be specified as
\r
2857 <emphasis>gitcvs.<access_method>.<varname></emphasis> (where <emphasis>access_method</emphasis>
\r
2858 is one of "ext" and "pserver") to make them apply only for the given
\r
2859 access method.</simpara>
\r
2866 gitweb.description
\r
2876 See <xref linkend="gitweb(1)" /> for description.
\r
2900 gitweb.remote_heads
\r
2910 See <xref linkend="gitweb.conf(5)" /> for description.
\r
2920 If set to true, enable <emphasis>-n</emphasis> option by default.
\r
2926 grep.extendedRegexp
\r
2930 If set to true, enable <emphasis>--extended-regexp</emphasis> option by default.
\r
2940 Use this custom program instead of "gpg" found on $PATH when
\r
2941 making or verifying a PGP signature. The program must support the
\r
2942 same command line interface as GPG, namely, to verify a detached
\r
2943 signature, "gpg --verify $file - <$signature" is run, and the
\r
2944 program is expected to signal a good signature by exiting with
\r
2945 code 0, and to generate an ascii-armored detached signature, the
\r
2946 standard input of "gpg -bsau $key" is fed with the contents to be
\r
2947 signed, and the program is expected to send the result to its
\r
2954 gui.commitmsgwidth
\r
2958 Defines how wide the commit message window is in the
\r
2959 <xref linkend="git-gui(1)" />. "75" is the default.
\r
2969 Specifies how many context lines should be used in calls to diff
\r
2970 made by the <xref linkend="git-gui(1)" />. The default is "5".
\r
2980 Specifies the default encoding to use for displaying of
\r
2981 file contents in <xref linkend="git-gui(1)" /> and <xref linkend="gitk(1)" />.
\r
2982 It can be overridden by setting the <emphasis>encoding</emphasis> attribute
\r
2983 for relevant files (see <xref linkend="gitattributes(5)" />).
\r
2984 If this option is not set, the tools default to the
\r
2991 gui.matchtrackingbranch
\r
2995 Determines if new branches created with <xref linkend="git-gui(1)" /> should
\r
2996 default to tracking remote branches with matching names or
\r
2997 not. Default: "false".
\r
3003 gui.newbranchtemplate
\r
3007 Is used as suggested name when creating new branches using the
\r
3008 <xref linkend="git-gui(1)" />.
\r
3014 gui.pruneduringfetch
\r
3018 "true" if <xref linkend="git-gui(1)" /> should prune remote-tracking branches when
\r
3019 performing a fetch. The default value is "false".
\r
3029 Determines if <xref linkend="git-gui(1)" /> should trust the file modification
\r
3030 timestamp or not. By default the timestamps are not trusted.
\r
3036 gui.spellingdictionary
\r
3040 Specifies the dictionary used for spell checking commit messages in
\r
3041 the <xref linkend="git-gui(1)" />. When set to "none" spell checking is turned
\r
3052 If true, <emphasis>git gui blame</emphasis> uses <emphasis>-C</emphasis> instead of <emphasis>-C -C</emphasis> for original
\r
3053 location detection. It makes blame significantly faster on huge
\r
3054 repositories at the expense of less thorough copy detection.
\r
3060 gui.copyblamethreshold
\r
3064 Specifies the threshold to use in <emphasis>git gui blame</emphasis> original location
\r
3065 detection, measured in alphanumeric characters. See the
\r
3066 <xref linkend="git-blame(1)" /> manual for more information on copy detection.
\r
3072 gui.blamehistoryctx
\r
3076 Specifies the radius of history context in days to show in
\r
3077 <xref linkend="gitk(1)" /> for the selected commit, when the <emphasis>Show History
\r
3078 Context</emphasis> menu item is invoked from <emphasis>git gui blame</emphasis>. If this
\r
3079 variable is set to zero, the whole history is shown.
\r
3085 guitool.<name>.cmd
\r
3089 Specifies the shell command line to execute when the corresponding item
\r
3090 of the <xref linkend="git-gui(1)" /> <emphasis>Tools</emphasis> menu is invoked. This option is
\r
3091 mandatory for every tool. The command is executed from the root of
\r
3092 the working directory, and in the environment it receives the name of
\r
3093 the tool as <emphasis>GIT_GUITOOL</emphasis>, the name of the currently selected file as
\r
3094 <emphasis>FILENAME</emphasis>, and the name of the current branch as <emphasis>CUR_BRANCH</emphasis> (if
\r
3095 the head is detached, <emphasis>CUR_BRANCH</emphasis> is empty).
\r
3101 guitool.<name>.needsfile
\r
3105 Run the tool only if a diff is selected in the GUI. It guarantees
\r
3106 that <emphasis>FILENAME</emphasis> is not empty.
\r
3112 guitool.<name>.noconsole
\r
3116 Run the command silently, without creating a window to display its
\r
3123 guitool.<name>.norescan
\r
3127 Don't rescan the working directory for changes after the tool
\r
3128 finishes execution.
\r
3134 guitool.<name>.confirm
\r
3138 Show a confirmation dialog before actually running the tool.
\r
3144 guitool.<name>.argprompt
\r
3148 Request a string argument from the user, and pass it to the tool
\r
3149 through the <emphasis>ARGS</emphasis> environment variable. Since requesting an
\r
3150 argument implies confirmation, the <emphasis>confirm</emphasis> option has no effect
\r
3151 if this is enabled. If the option is set to <emphasis>true</emphasis>, <emphasis>yes</emphasis>, or <emphasis>1</emphasis>,
\r
3152 the dialog uses a built-in generic prompt; otherwise the exact
\r
3153 value of the variable is used.
\r
3159 guitool.<name>.revprompt
\r
3163 Request a single valid revision from the user, and set the
\r
3164 <emphasis>REVISION</emphasis> environment variable. In other aspects this option
\r
3165 is similar to <emphasis>argprompt</emphasis>, and can be used together with it.
\r
3171 guitool.<name>.revunmerged
\r
3175 Show only unmerged branches in the <emphasis>revprompt</emphasis> subdialog.
\r
3176 This is useful for tools similar to merge or rebase, but not
\r
3177 for things like checkout or reset.
\r
3183 guitool.<name>.title
\r
3187 Specifies the title to use for the prompt dialog. The default
\r
3194 guitool.<name>.prompt
\r
3198 Specifies the general prompt string to display at the top of
\r
3199 the dialog, before subsections for <emphasis>argprompt</emphasis> and <emphasis>revprompt</emphasis>.
\r
3200 The default value includes the actual command.
\r
3210 Specify the browser that will be used to display help in the
\r
3211 <emphasis>web</emphasis> format. See <xref linkend="git-help(1)" />.
\r
3221 Override the default help format used by <xref linkend="git-help(1)" />.
\r
3222 Values <emphasis>man</emphasis>, <emphasis>info</emphasis>, <emphasis>web</emphasis> and <emphasis>html</emphasis> are supported. <emphasis>man</emphasis> is
\r
3223 the default. <emphasis>web</emphasis> and <emphasis>html</emphasis> are the same.
\r
3233 Automatically correct and execute mistyped commands after
\r
3234 waiting for the given number of deciseconds (0.1 sec). If more
\r
3235 than one command can be deduced from the entered text, nothing
\r
3236 will be executed. If the value of this option is negative,
\r
3237 the corrected command will be executed immediately. If the
\r
3238 value is 0 - the command will be just shown but not executed.
\r
3239 This is the default.
\r
3249 Override the HTTP proxy, normally configured using the <emphasis>http_proxy</emphasis>,
\r
3250 <emphasis>https_proxy</emphasis>, and <emphasis>all_proxy</emphasis> environment variables (see
\r
3251 <emphasis>curl(1)</emphasis>). This can be overridden on a per-remote basis; see
\r
3252 remote.<name>.proxy
\r
3262 File containing previously stored cookie lines which should be used
\r
3263 in the git http session, if they match the server. The file format
\r
3264 of the file to read cookies from should be plain HTTP headers or
\r
3265 the Netscape/Mozilla cookie file format (see <xref linkend="curl(1)" />).
\r
3266 NOTE that the file specified with http.cookiefile is only used as
\r
3267 input. No cookies will be stored in the file.
\r
3277 Whether to verify the SSL certificate when fetching or pushing
\r
3278 over HTTPS. Can be overridden by the <emphasis>GIT_SSL_NO_VERIFY</emphasis> environment
\r
3289 File containing the SSL certificate when fetching or pushing
\r
3290 over HTTPS. Can be overridden by the <emphasis>GIT_SSL_CERT</emphasis> environment
\r
3301 File containing the SSL private key when fetching or pushing
\r
3302 over HTTPS. Can be overridden by the <emphasis>GIT_SSL_KEY</emphasis> environment
\r
3309 http.sslCertPasswordProtected
\r
3313 Enable git's password prompt for the SSL certificate. Otherwise
\r
3314 OpenSSL will prompt the user, possibly many times, if the
\r
3315 certificate or private key is encrypted. Can be overridden by the
\r
3316 <emphasis>GIT_SSL_CERT_PASSWORD_PROTECTED</emphasis> environment variable.
\r
3326 File containing the certificates to verify the peer with when
\r
3327 fetching or pushing over HTTPS. Can be overridden by the
\r
3328 <emphasis>GIT_SSL_CAINFO</emphasis> environment variable.
\r
3338 Path containing files with the CA certificates to verify the peer
\r
3339 with when fetching or pushing over HTTPS. Can be overridden
\r
3340 by the <emphasis>GIT_SSL_CAPATH</emphasis> environment variable.
\r
3350 How many HTTP requests to launch in parallel. Can be overridden
\r
3351 by the <emphasis>GIT_HTTP_MAX_REQUESTS</emphasis> environment variable. Default is 5.
\r
3361 The number of curl sessions (counted across slots) to be kept across
\r
3362 requests. They will not be ended with curl_easy_cleanup() until
\r
3363 http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this
\r
3364 value will be capped at 1. Defaults to 1.
\r
3374 Maximum size in bytes of the buffer used by smart HTTP
\r
3375 transports when POSTing data to the remote system.
\r
3376 For requests larger than this buffer size, HTTP/1.1 and
\r
3377 Transfer-Encoding: chunked is used to avoid creating a
\r
3378 massive pack file locally. Default is 1 MiB, which is
\r
3379 sufficient for most requests.
\r
3385 http.lowSpeedLimit, http.lowSpeedTime
\r
3389 If the HTTP transfer speed is less than <emphasis>http.lowSpeedLimit</emphasis>
\r
3390 for longer than <emphasis>http.lowSpeedTime</emphasis> seconds, the transfer is aborted.
\r
3391 Can be overridden by the <emphasis>GIT_HTTP_LOW_SPEED_LIMIT</emphasis> and
\r
3392 <emphasis>GIT_HTTP_LOW_SPEED_TIME</emphasis> environment variables.
\r
3402 A boolean which disables using of EPSV ftp command by curl.
\r
3403 This can helpful with some "poor" ftp servers which don't
\r
3404 support EPSV mode. Can be overridden by the <emphasis>GIT_CURL_FTP_NO_EPSV</emphasis>
\r
3405 environment variable. Default is false (curl will use EPSV).
\r
3415 The HTTP USER_AGENT string presented to an HTTP server. The default
\r
3416 value represents the version of the client git such as git/1.7.1.
\r
3417 This option allows you to override this value to a more common value
\r
3418 such as Mozilla/4.0. This may be necessary, for instance, if
\r
3419 connecting through a firewall that restricts HTTP connections to a set
\r
3420 of common USER_AGENT strings (but not including those like git/1.7.1).
\r
3421 Can be overridden by the <emphasis>GIT_HTTP_USER_AGENT</emphasis> environment variable.
\r
3427 i18n.commitEncoding
\r
3431 Character encoding the commit messages are stored in; git itself
\r
3432 does not care per se, but this information is necessary e.g. when
\r
3433 importing commits from emails or in the gitk graphical history
\r
3434 browser (and possibly at other places in the future or in other
\r
3435 porcelains). See e.g. <xref linkend="git-mailinfo(1)" />. Defaults to <emphasis>utf-8</emphasis>.
\r
3441 i18n.logOutputEncoding
\r
3445 Character encoding the commit messages are converted to when
\r
3446 running <emphasis>git log</emphasis> and friends.
\r
3456 The configuration variables in the <emphasis>imap</emphasis> section are described
\r
3457 in <xref linkend="git-imap-send(1)" />.
\r
3467 Specify the directory from which templates will be copied.
\r
3468 (See the "TEMPLATE DIRECTORY" section of <xref linkend="git-init(1)" />.)
\r
3478 Specify the program that will be used to browse your working
\r
3479 repository in gitweb. See <xref linkend="git-instaweb(1)" />.
\r
3489 The HTTP daemon command-line to start gitweb on your working
\r
3490 repository. See <xref linkend="git-instaweb(1)" />.
\r
3500 If true the web server started by <xref linkend="git-instaweb(1)" /> will
\r
3501 be bound to the local IP (127.0.0.1).
\r
3507 instaweb.modulepath
\r
3511 The default module path for <xref linkend="git-instaweb(1)" /> to use
\r
3512 instead of /usr/lib/apache2/modules. Only used if httpd
\r
3523 The port number to bind the gitweb httpd to. See
\r
3524 <xref linkend="git-instaweb(1)" />.
\r
3530 interactive.singlekey
\r
3534 In interactive commands, allow the user to provide one-letter
\r
3535 input with a single key (i.e., without hitting enter).
\r
3536 Currently this is used by the <emphasis>--patch</emphasis> mode of
\r
3537 <xref linkend="git-add(1)" />, <xref linkend="git-checkout(1)" />, <xref linkend="git-commit(1)" />,
\r
3538 <xref linkend="git-reset(1)" />, and <xref linkend="git-stash(1)" />. Note that this
\r
3539 setting is silently ignored if portable keystroke input
\r
3550 If true, makes <xref linkend="git-log(1)" />, <xref linkend="git-show(1)" />, and
\r
3551 <xref linkend="git-whatchanged(1)" /> assume <emphasis>--abbrev-commit</emphasis>. You may
\r
3552 override this option with <emphasis>--no-abbrev-commit</emphasis>.
\r
3562 Set the default date-time mode for the <emphasis>log</emphasis> command.
\r
3563 Setting a value for log.date is similar to using <emphasis>git log</emphasis>'s
\r
3564 <emphasis>--date</emphasis> option. Possible values are <emphasis>relative</emphasis>, <emphasis>local</emphasis>,
\r
3565 <emphasis>default</emphasis>, <emphasis>iso</emphasis>, <emphasis>rfc</emphasis>, and <emphasis>short</emphasis>; see <xref linkend="git-log(1)" />
\r
3576 Print out the ref names of any commits that are shown by the log
\r
3577 command. If <emphasis>short</emphasis> is specified, the ref name prefixes <emphasis>refs/heads/</emphasis>,
\r
3578 <emphasis>refs/tags/</emphasis> and <emphasis>refs/remotes/</emphasis> will not be printed. If <emphasis>full</emphasis> is
\r
3579 specified, the full ref name (including prefix) will be printed.
\r
3580 This is the same as the log commands <emphasis>--decorate</emphasis> option.
\r
3590 If true, the initial commit will be shown as a big creation event.
\r
3591 This is equivalent to a diff against an empty tree.
\r
3592 Tools like <xref linkend="git-log(1)" /> or <xref linkend="git-whatchanged(1)" />, which
\r
3593 normally hide the root commit will now show it. True by default.
\r
3603 The location of an augmenting mailmap file. The default
\r
3604 mailmap, located in the root of the repository, is loaded
\r
3605 first, then the mailmap file pointed to by this variable.
\r
3606 The location of the mailmap file may be in a repository
\r
3607 subdirectory, or somewhere outside of the repository itself.
\r
3608 See <xref linkend="git-shortlog(1)" /> and <xref linkend="git-blame(1)" />.
\r
3618 Specify the programs that may be used to display help in the
\r
3619 <emphasis>man</emphasis> format. See <xref linkend="git-help(1)" />.
\r
3625 man.<tool>.cmd
\r
3629 Specify the command to invoke the specified man viewer. The
\r
3630 specified command is evaluated in shell with the man page
\r
3631 passed as argument. (See <xref linkend="git-help(1)" />.)
\r
3637 man.<tool>.path
\r
3641 Override the path for the given tool that may be used to
\r
3642 display help in the <emphasis>man</emphasis> format. See <xref linkend="git-help(1)" />.
\r
3648 merge.conflictstyle
\r
3652 Specify the style in which conflicted hunks are written out to
\r
3653 working tree files upon merge. The default is "merge", which
\r
3654 shows a <emphasis><<<<<<<</emphasis> conflict marker, changes made by one side,
\r
3655 a <emphasis>=======</emphasis> marker, changes made by the other side, and then
\r
3656 a <emphasis>>>>>>>></emphasis> marker. An alternate style, "diff3", adds a <emphasis>|||||||</emphasis>
\r
3657 marker and the original text before the <emphasis>=======</emphasis> marker.
\r
3663 merge.defaultToUpstream
\r
3667 If merge is called without any commit argument, merge the upstream
\r
3668 branches configured for the current branch by using their last
\r
3669 observed values stored in their remote tracking branches.
\r
3670 The values of the <emphasis>branch.<current branch>.merge</emphasis> that name the
\r
3671 branches at the remote named by <emphasis>branch.<current branch>.remote</emphasis>
\r
3672 are consulted, and then they are mapped via <emphasis>remote.<remote>.fetch</emphasis>
\r
3673 to their corresponding remote tracking branches, and the tips of
\r
3674 these tracking branches are merged.
\r
3684 By default, git does not create an extra merge commit when merging
\r
3685 a commit that is a descendant of the current commit. Instead, the
\r
3686 tip of the current branch is fast-forwarded. When set to <emphasis>false</emphasis>,
\r
3687 this variable tells git to create an extra merge commit in such
\r
3688 a case (equivalent to giving the <emphasis>--no-ff</emphasis> option from the command
\r
3689 line). When set to <emphasis>only</emphasis>, only such fast-forward merges are
\r
3690 allowed (equivalent to giving the <emphasis>--ff-only</emphasis> option from the
\r
3701 In addition to branch names, populate the log message with at
\r
3702 most the specified number of one-line descriptions from the
\r
3703 actual commits that are being merged. Defaults to false, and
\r
3704 true is a synonym for 20.
\r
3714 The number of files to consider when performing rename detection
\r
3715 during a merge; if not specified, defaults to the value of
\r
3726 Tell git that canonical representation of files in the
\r
3727 repository has changed over time (e.g. earlier commits record
\r
3728 text files with CRLF line endings, but recent ones use LF line
\r
3729 endings). In such a repository, git can convert the data
\r
3730 recorded in commits to a canonical form before performing a
\r
3731 merge to reduce unnecessary conflicts. For more information,
\r
3732 see section "Merging branches with differing checkin/checkout
\r
3733 attributes" in <xref linkend="gitattributes(5)" />.
\r
3743 Whether to print the diffstat between ORIG_HEAD and the merge result
\r
3744 at the end of the merge. True by default.
\r
3754 Controls which merge resolution program is used by
\r
3755 <xref linkend="git-mergetool(1)" />. Valid built-in values are: "araxis",
\r
3756 "bc3", "diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld",
\r
3757 "opendiff", "p4merge", "tkdiff", "tortoisemerge", "vimdiff"
\r
3758 and "xxdiff". Any other value is treated is custom merge tool
\r
3759 and there must be a corresponding mergetool.<tool>.cmd option.
\r
3769 Controls the amount of output shown by the recursive merge
\r
3770 strategy. Level 0 outputs nothing except a final error
\r
3771 message if conflicts were detected. Level 1 outputs only
\r
3772 conflicts, 2 outputs conflicts and file changes. Level 5 and
\r
3773 above outputs debugging information. The default is level 2.
\r
3774 Can be overridden by the <emphasis>GIT_MERGE_VERBOSITY</emphasis> environment variable.
\r
3780 merge.<driver>.name
\r
3784 Defines a human-readable name for a custom low-level
\r
3785 merge driver. See <xref linkend="gitattributes(5)" /> for details.
\r
3791 merge.<driver>.driver
\r
3795 Defines the command that implements a custom low-level
\r
3796 merge driver. See <xref linkend="gitattributes(5)" /> for details.
\r
3802 merge.<driver>.recursive
\r
3806 Names a low-level merge driver to be used when
\r
3807 performing an internal merge between common ancestors.
\r
3808 See <xref linkend="gitattributes(5)" /> for details.
\r
3814 mergetool.<tool>.path
\r
3818 Override the path for the given tool. This is useful in case
\r
3819 your tool is not in the PATH.
\r
3825 mergetool.<tool>.cmd
\r
3829 Specify the command to invoke the specified merge tool. The
\r
3830 specified command is evaluated in shell with the following
\r
3831 variables available: <emphasis>BASE</emphasis> is the name of a temporary file
\r
3832 containing the common base of the files to be merged, if available;
\r
3833 <emphasis>LOCAL</emphasis> is the name of a temporary file containing the contents of
\r
3834 the file on the current branch; <emphasis>REMOTE</emphasis> is the name of a temporary
\r
3835 file containing the contents of the file from the branch being
\r
3836 merged; <emphasis>MERGED</emphasis> contains the name of the file to which the merge
\r
3837 tool should write the results of a successful merge.
\r
3843 mergetool.<tool>.trustExitCode
\r
3847 For a custom merge command, specify whether the exit code of
\r
3848 the merge command can be used to determine whether the merge was
\r
3849 successful. If this is not set to true then the merge target file
\r
3850 timestamp is checked and the merge assumed to have been successful
\r
3851 if the file has been updated, otherwise the user is prompted to
\r
3852 indicate the success of the merge.
\r
3858 mergetool.keepBackup
\r
3862 After performing a merge, the original file with conflict markers
\r
3863 can be saved as a file with a <emphasis>.orig</emphasis> extension. If this variable
\r
3864 is set to <emphasis>false</emphasis> then this file is not preserved. Defaults to
\r
3865 <emphasis>true</emphasis> (i.e. keep the backup files).
\r
3871 mergetool.keepTemporaries
\r
3875 When invoking a custom merge tool, git uses a set of temporary
\r
3876 files to pass to the tool. If the tool returns an error and this
\r
3877 variable is set to <emphasis>true</emphasis>, then these temporary files will be
\r
3878 preserved, otherwise they will be removed after the tool has
\r
3879 exited. Defaults to <emphasis>false</emphasis>.
\r
3889 Prompt before each invocation of the merge resolution program.
\r
3899 The (fully qualified) refname from which to show notes when
\r
3900 showing commit messages. The value of this variable can be set
\r
3901 to a glob, in which case notes from all matching refs will be
\r
3902 shown. You may also specify this configuration variable
\r
3903 several times. A warning will be issued for refs that do not
\r
3904 exist, but a glob that does not match any refs is silently
\r
3907 <simpara>This setting can be overridden with the <emphasis>GIT_NOTES_DISPLAY_REF</emphasis>
\r
3908 environment variable, which must be a colon separated list of refs or
\r
3910 <simpara>The effective value of "core.notesRef" (possibly overridden by
\r
3911 GIT_NOTES_REF) is also implicitly added to the list of refs to be
\r
3912 displayed.</simpara>
\r
3917 notes.rewrite.<command>
\r
3921 When rewriting commits with <command> (currently <emphasis>amend</emphasis> or
\r
3922 <emphasis>rebase</emphasis>) and this variable is set to <emphasis>true</emphasis>, git
\r
3923 automatically copies your notes from the original to the
\r
3924 rewritten commit. Defaults to <emphasis>true</emphasis>, but see
\r
3925 "notes.rewriteRef" below.
\r
3935 When copying notes during a rewrite (see the
\r
3936 "notes.rewrite.<command>" option), determines what to do if
\r
3937 the target commit already has a note. Must be one of
\r
3938 <emphasis>overwrite</emphasis>, <emphasis>concatenate</emphasis>, or <emphasis>ignore</emphasis>. Defaults to
\r
3939 <emphasis>concatenate</emphasis>.
\r
3941 <simpara>This setting can be overridden with the <emphasis>GIT_NOTES_REWRITE_MODE</emphasis>
\r
3942 environment variable.</simpara>
\r
3951 When copying notes during a rewrite, specifies the (fully
\r
3952 qualified) ref whose notes should be copied. The ref may be a
\r
3953 glob, in which case notes in all matching refs will be copied.
\r
3954 You may also specify this configuration several times.
\r
3956 <simpara>Does not have a default value; you must configure this variable to
\r
3957 enable note rewriting. Set it to <emphasis>refs/notes/commits</emphasis> to enable
\r
3958 rewriting for the default commit notes.</simpara>
\r
3959 <simpara>This setting can be overridden with the <emphasis>GIT_NOTES_REWRITE_REF</emphasis>
\r
3960 environment variable, which must be a colon separated list of refs or
\r
3970 The size of the window used by <xref linkend="git-pack-objects(1)" /> when no
\r
3971 window size is given on the command line. Defaults to 10.
\r
3981 The maximum delta depth used by <xref linkend="git-pack-objects(1)" /> when no
\r
3982 maximum depth is given on the command line. Defaults to 50.
\r
3992 The window memory size limit used by <xref linkend="git-pack-objects(1)" />
\r
3993 when no limit is given on the command line. The value can be
\r
3994 suffixed with "k", "m", or "g". Defaults to 0, meaning no
\r
4005 An integer -1..9, indicating the compression level for objects
\r
4006 in a pack file. -1 is the zlib default. 0 means no
\r
4007 compression, and 1..9 are various speed/size tradeoffs, 9 being
\r
4008 slowest. If not set, defaults to core.compression. If that is
\r
4009 not set, defaults to -1, the zlib default, which is "a default
\r
4010 compromise between speed and compression (currently equivalent
\r
4013 <simpara>Note that changing the compression level will not automatically recompress
\r
4014 all existing objects. You can force recompression by passing the -F option
\r
4015 to <xref linkend="git-repack(1)" />.</simpara>
\r
4020 pack.deltaCacheSize
\r
4024 The maximum memory in bytes used for caching deltas in
\r
4025 <xref linkend="git-pack-objects(1)" /> before writing them out to a pack.
\r
4026 This cache is used to speed up the writing object phase by not
\r
4027 having to recompute the final delta result once the best match
\r
4028 for all objects is found. Repacking large repositories on machines
\r
4029 which are tight with memory might be badly impacted by this though,
\r
4030 especially if this cache pushes the system into swapping.
\r
4031 A value of 0 means no limit. The smallest size of 1 byte may be
\r
4032 used to virtually disable this cache. Defaults to 256 MiB.
\r
4038 pack.deltaCacheLimit
\r
4042 The maximum size of a delta, that is cached in
\r
4043 <xref linkend="git-pack-objects(1)" />. This cache is used to speed up the
\r
4044 writing object phase by not having to recompute the final delta
\r
4045 result once the best match for all objects is found. Defaults to 1000.
\r
4055 Specifies the number of threads to spawn when searching for best
\r
4056 delta matches. This requires that <xref linkend="git-pack-objects(1)" />
\r
4057 be compiled with pthreads otherwise this option is ignored with a
\r
4058 warning. This is meant to reduce packing time on multiprocessor
\r
4059 machines. The required amount of memory for the delta search window
\r
4060 is however multiplied by the number of threads.
\r
4061 Specifying 0 will cause git to auto-detect the number of CPU's
\r
4062 and set the number of threads accordingly.
\r
4072 Specify the default pack index version. Valid values are 1 for
\r
4073 legacy pack index used by Git versions prior to 1.5.2, and 2 for
\r
4074 the new pack index with capabilities for packs larger than 4 GB
\r
4075 as well as proper protection against the repacking of corrupted
\r
4076 packs. Version 2 is the default. Note that version 2 is enforced
\r
4077 and this config option ignored whenever the corresponding pack is
\r
4080 <simpara>If you have an old git that does not understand the version 2 <emphasis>*.idx</emphasis> file,
\r
4081 cloning or fetching over a non native protocol (e.g. "http" and "rsync")
\r
4082 that will copy both <emphasis>*.pack</emphasis> file and corresponding <emphasis>*.idx</emphasis> file from the
\r
4083 other side may give you a repository that cannot be accessed with your
\r
4084 older version of git. If the <emphasis>*.pack</emphasis> file is smaller than 2 GB, however,
\r
4085 you can use <xref linkend="git-index-pack(1)" /> on the *.pack file to regenerate
\r
4086 the <emphasis>*.idx</emphasis> file.</simpara>
\r
4091 pack.packSizeLimit
\r
4095 The maximum size of a pack. This setting only affects
\r
4096 packing to a file when repacking, i.e. the git:// protocol
\r
4097 is unaffected. It can be overridden by the <emphasis>--max-pack-size</emphasis>
\r
4098 option of <xref linkend="git-repack(1)" />. The minimum size allowed is
\r
4099 limited to 1 MiB. The default is unlimited.
\r
4100 Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are
\r
4111 If the value is boolean, turns on or off pagination of the
\r
4112 output of a particular git subcommand when writing to a tty.
\r
4113 Otherwise, turns on pagination for the subcommand using the
\r
4114 pager specified by the value of <emphasis>pager.<cmd></emphasis>. If <emphasis>--paginate</emphasis>
\r
4115 or <emphasis>--no-pager</emphasis> is specified on the command line, it takes
\r
4116 precedence over this option. To disable pagination for all
\r
4117 commands, set <emphasis>core.pager</emphasis> or <emphasis>GIT_PAGER</emphasis> to <emphasis>cat</emphasis>.
\r
4123 pretty.<name>
\r
4127 Alias for a --pretty= format string, as specified in
\r
4128 <xref linkend="git-log(1)" />. Any aliases defined here can be used just
\r
4129 as the built-in pretty formats could. For example,
\r
4130 running <emphasis>git config pretty.changelog "format:* %H %s"</emphasis>
\r
4131 would cause the invocation <emphasis>git log --pretty=changelog</emphasis>
\r
4132 to be equivalent to running <emphasis>git log "--pretty=format:* %H %s"</emphasis>.
\r
4133 Note that an alias with the same name as a built-in format
\r
4134 will be silently ignored.
\r
4144 When true, rebase branches on top of the fetched branch, instead
\r
4145 of merging the default branch from the default remote when "git
\r
4146 pull" is run. See "branch.<name>.rebase" for setting this on a
\r
4149 <simpara><emphasis role="strong">NOTE</emphasis>: this is a possibly dangerous operation; do <emphasis role="strong">not</emphasis> use
\r
4150 it unless you understand the implications (see <xref linkend="git-rebase(1)" />
\r
4151 for details).</simpara>
\r
4160 The default merge strategy to use when pulling multiple branches
\r
4171 The default merge strategy to use when pulling a single branch.
\r
4181 Defines the action git push should take if no refspec is given
\r
4182 on the command line, no refspec is configured in the remote, and
\r
4183 no refspec is implied by any of the options given on the command
\r
4184 line. Possible values are:
\r
4189 <emphasis>nothing</emphasis> - do not push anything.
\r
4194 <emphasis>matching</emphasis> - push all matching branches.
\r
4195 All branches having the same name in both ends are considered to be
\r
4196 matching. This is the default.
\r
4201 <emphasis>upstream</emphasis> - push the current branch to its upstream branch.
\r
4206 <emphasis>tracking</emphasis> - deprecated synonym for <emphasis>upstream</emphasis>.
\r
4211 <emphasis>current</emphasis> - push the current branch to a branch of the same name.
\r
4223 Whether to show a diffstat of what changed upstream since the last
\r
4224 rebase. False by default.
\r
4234 If set to true enable <emphasis>--autosquash</emphasis> option by default.
\r
4244 By default, git-receive-pack will run "git-gc --auto" after
\r
4245 receiving data from git-push and updating refs. You can stop
\r
4246 it by setting this variable to false.
\r
4252 receive.fsckObjects
\r
4256 If it is set to true, git-receive-pack will check all received
\r
4257 objects. It will abort in the case of a malformed object or a
\r
4258 broken link. The result of an abort are only dangling objects.
\r
4259 Defaults to false. If not set, the value of <emphasis>transfer.fsckObjects</emphasis>
\r
4266 receive.unpackLimit
\r
4270 If the number of objects received in a push is below this
\r
4271 limit then the objects will be unpacked into loose object
\r
4272 files. However if the number of received objects equals or
\r
4273 exceeds this limit then the received pack will be stored as
\r
4274 a pack, after adding any missing delta bases. Storing the
\r
4275 pack from a push can make the push operation complete faster,
\r
4276 especially on slow filesystems. If not set, the value of
\r
4277 <emphasis>transfer.unpackLimit</emphasis> is used instead.
\r
4283 receive.denyDeletes
\r
4287 If set to true, git-receive-pack will deny a ref update that deletes
\r
4288 the ref. Use this to prevent such a ref deletion via a push.
\r
4294 receive.denyDeleteCurrent
\r
4298 If set to true, git-receive-pack will deny a ref update that
\r
4299 deletes the currently checked out branch of a non-bare repository.
\r
4305 receive.denyCurrentBranch
\r
4309 If set to true or "refuse", git-receive-pack will deny a ref update
\r
4310 to the currently checked out branch of a non-bare repository.
\r
4311 Such a push is potentially dangerous because it brings the HEAD
\r
4312 out of sync with the index and working tree. If set to "warn",
\r
4313 print a warning of such a push to stderr, but allow the push to
\r
4314 proceed. If set to false or "ignore", allow such pushes with no
\r
4315 message. Defaults to "refuse".
\r
4321 receive.denyNonFastForwards
\r
4325 If set to true, git-receive-pack will deny a ref update which is
\r
4326 not a fast-forward. Use this to prevent such an update via a push,
\r
4327 even if that push is forced. This configuration variable is
\r
4328 set when initializing a shared repository.
\r
4334 receive.updateserverinfo
\r
4338 If set to true, git-receive-pack will run git-update-server-info
\r
4339 after receiving data from git-push and updating refs.
\r
4345 remote.<name>.url
\r
4349 The URL of a remote repository. See <xref linkend="git-fetch(1)" /> or
\r
4350 <xref linkend="git-push(1)" />.
\r
4356 remote.<name>.pushurl
\r
4360 The push URL of a remote repository. See <xref linkend="git-push(1)" />.
\r
4366 remote.<name>.proxy
\r
4370 For remotes that require curl (http, https and ftp), the URL to
\r
4371 the proxy to use for that remote. Set to the empty string to
\r
4372 disable proxying for that remote.
\r
4378 remote.<name>.fetch
\r
4382 The default set of "refspec" for <xref linkend="git-fetch(1)" />. See
\r
4383 <xref linkend="git-fetch(1)" />.
\r
4389 remote.<name>.push
\r
4393 The default set of "refspec" for <xref linkend="git-push(1)" />. See
\r
4394 <xref linkend="git-push(1)" />.
\r
4400 remote.<name>.mirror
\r
4404 If true, pushing to this remote will automatically behave
\r
4405 as if the <emphasis>--mirror</emphasis> option was given on the command line.
\r
4411 remote.<name>.skipDefaultUpdate
\r
4415 If true, this remote will be skipped by default when updating
\r
4416 using <xref linkend="git-fetch(1)" /> or the <emphasis>update</emphasis> subcommand of
\r
4417 <xref linkend="git-remote(1)" />.
\r
4423 remote.<name>.skipFetchAll
\r
4427 If true, this remote will be skipped by default when updating
\r
4428 using <xref linkend="git-fetch(1)" /> or the <emphasis>update</emphasis> subcommand of
\r
4429 <xref linkend="git-remote(1)" />.
\r
4435 remote.<name>.receivepack
\r
4439 The default program to execute on the remote side when pushing. See
\r
4440 option --receive-pack of <xref linkend="git-push(1)" />.
\r
4446 remote.<name>.uploadpack
\r
4450 The default program to execute on the remote side when fetching. See
\r
4451 option --upload-pack of <xref linkend="git-fetch-pack(1)" />.
\r
4457 remote.<name>.tagopt
\r
4461 Setting this value to --no-tags disables automatic tag following when
\r
4462 fetching from remote <name>. Setting it to --tags will fetch every
\r
4463 tag from remote <name>, even if they are not reachable from remote
\r
4464 branch heads. Passing these flags directly to <xref linkend="git-fetch(1)" /> can
\r
4465 override this setting. See options --tags and --no-tags of
\r
4466 <xref linkend="git-fetch(1)" />.
\r
4472 remote.<name>.vcs
\r
4476 Setting this to a value <vcs> will cause git to interact with
\r
4477 the remote with the git-remote-<vcs> helper.
\r
4483 remotes.<group>
\r
4487 The list of remotes which are fetched by "git remote update
\r
4488 <group>". See <xref linkend="git-remote(1)" />.
\r
4494 repack.usedeltabaseoffset
\r
4498 By default, <xref linkend="git-repack(1)" /> creates packs that use
\r
4499 delta-base offset. If you need to share your repository with
\r
4500 git older than version 1.4.4, either directly or via a dumb
\r
4501 protocol such as http, then you need to set this option to
\r
4502 "false" and repack. Access from old git versions over the
\r
4503 native protocol are unaffected by this option.
\r
4513 When set to true, <emphasis>git-rerere</emphasis> updates the index with the
\r
4514 resulting contents after it cleanly resolves conflicts using
\r
4515 previously recorded resolution. Defaults to false.
\r
4525 Activate recording of resolved conflicts, so that identical
\r
4526 conflict hunks can be resolved automatically, should they be
\r
4527 encountered again. By default, <xref linkend="git-rerere(1)" /> is
\r
4528 enabled if there is an <emphasis>rr-cache</emphasis> directory under the
\r
4529 <emphasis>$GIT_DIR</emphasis>, e.g. if "rerere" was previously used in the
\r
4536 sendemail.identity
\r
4540 A configuration identity. When given, causes values in the
\r
4541 <emphasis>sendemail.<identity></emphasis> subsection to take precedence over
\r
4542 values in the <emphasis>sendemail</emphasis> section. The default identity is
\r
4543 the value of <emphasis>sendemail.identity</emphasis>.
\r
4549 sendemail.smtpencryption
\r
4553 See <xref linkend="git-send-email(1)" /> for description. Note that this
\r
4554 setting is not subject to the <emphasis>identity</emphasis> mechanism.
\r
4564 Deprecated alias for <emphasis>sendemail.smtpencryption = ssl</emphasis>.
\r
4570 sendemail.<identity>.*
\r
4574 Identity-specific versions of the <emphasis>sendemail.*</emphasis> parameters
\r
4575 found below, taking precedence over those when the this
\r
4576 identity is selected, through command-line or
\r
4577 <emphasis>sendemail.identity</emphasis>.
\r
4583 sendemail.aliasesfile
\r
4586 sendemail.aliasfiletype
\r
4598 sendemail.chainreplyto
\r
4604 sendemail.envelopesender
\r
4610 sendemail.multiedit
\r
4613 sendemail.signedoffbycc
\r
4616 sendemail.smtppass
\r
4619 sendemail.suppresscc
\r
4622 sendemail.suppressfrom
\r
4628 sendemail.smtpdomain
\r
4631 sendemail.smtpserver
\r
4634 sendemail.smtpserverport
\r
4637 sendemail.smtpserveroption
\r
4640 sendemail.smtpuser
\r
4646 sendemail.validate
\r
4650 See <xref linkend="git-send-email(1)" /> for description.
\r
4656 sendemail.signedoffcc
\r
4660 Deprecated alias for <emphasis>sendemail.signedoffbycc</emphasis>.
\r
4666 showbranch.default
\r
4670 The default set of branches for <xref linkend="git-show-branch(1)" />.
\r
4671 See <xref linkend="git-show-branch(1)" />.
\r
4677 status.relativePaths
\r
4681 By default, <xref linkend="git-status(1)" /> shows paths relative to the
\r
4682 current directory. Setting this variable to <emphasis>false</emphasis> shows paths
\r
4683 relative to the repository root (this was the default for git
\r
4690 status.showUntrackedFiles
\r
4694 By default, <xref linkend="git-status(1)" /> and <xref linkend="git-commit(1)" /> show
\r
4695 files which are not currently tracked by Git. Directories which
\r
4696 contain only untracked files, are shown with the directory name
\r
4697 only. Showing untracked files means that Git needs to lstat() all
\r
4698 all the files in the whole repository, which might be slow on some
\r
4699 systems. So, this variable controls how the commands displays
\r
4700 the untracked files. Possible values are:
\r
4705 <emphasis>no</emphasis> - Show no untracked files.
\r
4710 <emphasis>normal</emphasis> - Show untracked files and directories.
\r
4715 <emphasis>all</emphasis> - Show also individual files in untracked directories.
\r
4719 <simpara>If this variable is not specified, it defaults to <emphasis>normal</emphasis>.
\r
4720 This variable can be overridden with the -u|--untracked-files option
\r
4721 of <xref linkend="git-status(1)" /> and <xref linkend="git-commit(1)" />.</simpara>
\r
4726 status.submodulesummary
\r
4730 Defaults to false.
\r
4731 If this is set to a non zero number or true (identical to -1 or an
\r
4732 unlimited number), the submodule summary will be enabled and a
\r
4733 summary of commits for modified submodules will be shown (see
\r
4734 --summary-limit option of <xref linkend="git-submodule(1)" />).
\r
4740 submodule.<name>.path
\r
4743 submodule.<name>.url
\r
4746 submodule.<name>.update
\r
4750 The path within this project, URL, and the updating strategy
\r
4751 for a submodule. These variables are initially populated
\r
4752 by <emphasis>git submodule init</emphasis>; edit them to override the
\r
4753 URL and other values found in the <emphasis>.gitmodules</emphasis> file. See
\r
4754 <xref linkend="git-submodule(1)" /> and <xref linkend="gitmodules(5)" /> for details.
\r
4760 submodule.<name>.fetchRecurseSubmodules
\r
4764 This option can be used to control recursive fetching of this
\r
4765 submodule. It can be overridden by using the --[no-]recurse-submodules
\r
4766 command line option to "git fetch" and "git pull".
\r
4767 This setting will override that from in the <xref linkend="gitmodules(5)" />
\r
4774 submodule.<name>.ignore
\r
4778 Defines under what circumstances "git status" and the diff family show
\r
4779 a submodule as modified. When set to "all", it will never be considered
\r
4780 modified, "dirty" will ignore all changes to the submodules work tree and
\r
4781 takes only differences between the HEAD of the submodule and the commit
\r
4782 recorded in the superproject into account. "untracked" will additionally
\r
4783 let submodules with modified tracked files in their work tree show up.
\r
4784 Using "none" (the default when this option is not set) also shows
\r
4785 submodules that have untracked files in their work tree as changed.
\r
4786 This setting overrides any setting made in .gitmodules for this submodule,
\r
4787 both settings can be overridden on the command line by using the
\r
4788 "--ignore-submodules" option.
\r
4798 This variable can be used to restrict the permission bits of
\r
4799 tar archive entries. The default is 0002, which turns off the
\r
4800 world write bit. The special value "user" indicates that the
\r
4801 archiving user's umask will be used instead. See umask(2) and
\r
4802 <xref linkend="git-archive(1)" />.
\r
4808 transfer.fsckObjects
\r
4812 When <emphasis>fetch.fsckObjects</emphasis> or <emphasis>receive.fsckObjects</emphasis> are
\r
4813 not set, the value of this variable is used instead.
\r
4814 Defaults to false.
\r
4820 transfer.unpackLimit
\r
4824 When <emphasis>fetch.unpackLimit</emphasis> or <emphasis>receive.unpackLimit</emphasis> are
\r
4825 not set, the value of this variable is used instead.
\r
4826 The default value is 100.
\r
4832 url.<base>.insteadOf
\r
4836 Any URL that starts with this value will be rewritten to
\r
4837 start, instead, with <base>. In cases where some site serves a
\r
4838 large number of repositories, and serves them with multiple
\r
4839 access methods, and some users need to use different access
\r
4840 methods, this feature allows people to specify any of the
\r
4841 equivalent URLs and have git automatically rewrite the URL to
\r
4842 the best alternative for the particular user, even for a
\r
4843 never-before-seen repository on the site. When more than one
\r
4844 insteadOf strings match a given URL, the longest match is used.
\r
4850 url.<base>.pushInsteadOf
\r
4854 Any URL that starts with this value will not be pushed to;
\r
4855 instead, it will be rewritten to start with <base>, and the
\r
4856 resulting URL will be pushed to. In cases where some site serves
\r
4857 a large number of repositories, and serves them with multiple
\r
4858 access methods, some of which do not allow push, this feature
\r
4859 allows people to specify a pull-only URL and have git
\r
4860 automatically use an appropriate URL to push, even for a
\r
4861 never-before-seen repository on the site. When more than one
\r
4862 pushInsteadOf strings match a given URL, the longest match is
\r
4863 used. If a remote has an explicit pushurl, git will ignore this
\r
4864 setting for that remote.
\r
4874 Your email address to be recorded in any newly created commits.
\r
4875 Can be overridden by the <emphasis>GIT_AUTHOR_EMAIL</emphasis>, <emphasis>GIT_COMMITTER_EMAIL</emphasis>, and
\r
4876 <emphasis>EMAIL</emphasis> environment variables. See <xref linkend="git-commit-tree(1)" />.
\r
4886 Your full name to be recorded in any newly created commits.
\r
4887 Can be overridden by the <emphasis>GIT_AUTHOR_NAME</emphasis> and <emphasis>GIT_COMMITTER_NAME</emphasis>
\r
4888 environment variables. See <xref linkend="git-commit-tree(1)" />.
\r
4898 If <xref linkend="git-tag(1)" /> is not selecting the key you want it to
\r
4899 automatically when creating a signed tag, you can override the
\r
4900 default selection with this variable. This option is passed
\r
4901 unchanged to gpg's --local-user parameter, so you may specify a key
\r
4902 using any method that gpg supports.
\r
4912 Specify a web browser that may be used by some commands.
\r
4913 Currently only <xref linkend="git-instaweb(1)" /> and <xref linkend="git-help(1)" />
\r
4921 <simplesect id="_git">
\r
4922 <title>GIT</title>
\r
4923 <simpara>Part of the <xref linkend="git(1)" /> suite</simpara>
\r