1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <!DOCTYPE sect2 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
\r
4 <sect2 lang="en" id="git-config(1)">
\r
5 <title>git-config(1)</title>
\r
7 <primary>git-config(1)</primary>
\r
9 <simplesect id="git-config(1)__name">
\r
11 <simpara>git-config - Get and set repository or global options</simpara>
\r
13 <simplesect id="git-config(1)__synopsis">
\r
14 <title>SYNOPSIS</title>
\r
16 <literallayout><emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] name [value [value_regex]]
\r
17 <emphasis>git config</emphasis> [<file-option>] [type] --add name value
\r
18 <emphasis>git config</emphasis> [<file-option>] [type] --replace-all name value [value_regex]
\r
19 <emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] --get name [value_regex]
\r
20 <emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] --get-all name [value_regex]
\r
21 <emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] --get-regexp name_regex [value_regex]
\r
22 <emphasis>git config</emphasis> [<file-option>] --unset name [value_regex]
\r
23 <emphasis>git config</emphasis> [<file-option>] --unset-all name [value_regex]
\r
24 <emphasis>git config</emphasis> [<file-option>] --rename-section old_name new_name
\r
25 <emphasis>git config</emphasis> [<file-option>] --remove-section name
\r
26 <emphasis>git config</emphasis> [<file-option>] [-z|--null] -l | --list
\r
27 <emphasis>git config</emphasis> [<file-option>] --get-color name [default]
\r
28 <emphasis>git config</emphasis> [<file-option>] --get-colorbool name [stdout-is-tty]
\r
29 <emphasis>git config</emphasis> [<file-option>] -e | --edit</literallayout>
\r
32 <simplesect id="git-config(1)__description">
\r
33 <title>DESCRIPTION</title>
\r
34 <simpara>You can query/set/replace/unset options with this command. The name is
\r
35 actually the section and the key separated by a dot, and the value will be
\r
37 <simpara>Multiple lines can be added to an option by using the <emphasis>--add</emphasis> option.
\r
38 If you want to update or unset an option which can occur on multiple
\r
39 lines, a POSIX regexp <emphasis>value_regex</emphasis> needs to be given. Only the
\r
40 existing values that match the regexp are updated or unset. If
\r
41 you want to handle the lines that do <emphasis role="strong">not</emphasis> match the regex, just
\r
42 prepend a single exclamation mark in front (see also <xref linkend="git-config(1)_EXAMPLES"/>).</simpara>
\r
43 <simpara>The type specifier can be either <emphasis>--int</emphasis> or <emphasis>--bool</emphasis>, to make
\r
44 <emphasis>git config</emphasis> ensure that the variable(s) are of the given type and
\r
45 convert the value to the canonical form (simple decimal number for int,
\r
46 a "true" or "false" string for bool), or <emphasis>--path</emphasis>, which does some
\r
47 path expansion (see <emphasis>--path</emphasis> below). If no type specifier is passed, no
\r
48 checks or transformations are performed on the value.</simpara>
\r
49 <simpara>When reading, the values are read from the system, global and
\r
50 repository local configuration files by default, and options
\r
51 <emphasis>--system</emphasis>, <emphasis>--global</emphasis>, <emphasis>--local</emphasis> and <emphasis>--file <filename></emphasis> can be
\r
52 used to tell the command to read from only that location (see <xref linkend="git-config(1)_FILES"/>).</simpara>
\r
53 <simpara>When writing, the new value is written to the repository local
\r
54 configuration file by default, and options <emphasis>--system</emphasis>, <emphasis>--global</emphasis>,
\r
55 <emphasis>--file <filename></emphasis> can be used to tell the command to write to
\r
56 that location (you can say <emphasis>--local</emphasis> but that is the default).</simpara>
\r
57 <simpara>This command will fail with non-zero status upon error. Some exit
\r
58 codes are:</simpara>
\r
59 <orderedlist numeration="arabic">
\r
62 The config file is invalid (ret=3),
\r
67 can not write to the config file (ret=4),
\r
72 no section or name was provided (ret=2),
\r
77 the section or key is invalid (ret=1),
\r
82 you try to unset an option which does not exist (ret=5),
\r
87 you try to unset/set an option for which multiple lines match (ret=5), or
\r
92 you try to use an invalid regexp (ret=6).
\r
96 <simpara>On success, the command returns the exit code 0.</simpara>
\r
98 <simplesect id="git-config(1)__options">
\r
99 <title>OPTIONS</title>
\r
107 Default behavior is to replace at most one line. This replaces
\r
108 all lines matching the key (and optionally the value_regex).
\r
118 Adds a new line to the option without altering any existing
\r
119 values. This is the same as providing <emphasis>^$</emphasis> as the value_regex
\r
120 in <emphasis>--replace-all</emphasis>.
\r
130 Get the value for a given key (optionally filtered by a regex
\r
131 matching the value). Returns error code 1 if the key was not
\r
132 found and error code 2 if multiple key values were found.
\r
142 Like get, but does not fail if the number of values for the key
\r
143 is not exactly one.
\r
153 Like --get-all, but interprets the name as a regular expression and
\r
154 writes out the key names. Regular expression matching is currently
\r
155 case-sensitive and done against a canonicalized version of the key
\r
156 in which section and variable names are lowercased, but subsection
\r
167 For writing options: write to global <subscript>/.gitconfig file rather than
\r
168 the repository .git/config, write to $XDG_CONFIG_HOME/git/config file
\r
169 if this file exists and the </subscript>/.gitconfig file doesn't.
\r
171 <simpara>For reading options: read only from global ~/.gitconfig and from
\r
172 $XDG_CONFIG_HOME/git/config rather than from all available files.</simpara>
\r
173 <simpara>See also <xref linkend="git-config(1)_FILES"/>.</simpara>
\r
182 For writing options: write to system-wide $(prefix)/etc/gitconfig
\r
183 rather than the repository .git/config.
\r
185 <simpara>For reading options: read only from system-wide $(prefix)/etc/gitconfig
\r
186 rather than from all available files.</simpara>
\r
187 <simpara>See also <xref linkend="git-config(1)_FILES"/>.</simpara>
\r
199 Use the given config file instead of the one specified by GIT_CONFIG.
\r
209 Remove the given section from the configuration file.
\r
219 Rename the given section to a new name.
\r
229 Remove the line matching the key from config file.
\r
239 Remove all lines matching the key from config file.
\r
252 List all variables set in config file.
\r
262 <emphasis>git config</emphasis> will ensure that the output is "true" or "false"
\r
272 <emphasis>git config</emphasis> will ensure that the output is a simple
\r
273 decimal number. An optional value suffix of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis>
\r
274 in the config file will cause the value to be multiplied
\r
275 by 1024, 1048576, or 1073741824 prior to output.
\r
285 <emphasis>git config</emphasis> will ensure that the output matches the format of
\r
286 either --bool or --int, as described above.
\r
296 <emphasis>git-config</emphasis> will expand leading <emphasis>~</emphasis> to the value of
\r
297 <emphasis>$HOME</emphasis>, and <emphasis>~user</emphasis> to the home directory for the
\r
298 specified user. This option has no effect when setting the
\r
299 value (but you can use <emphasis>git config bla ~/</emphasis> from the
\r
300 command line to let your shell do the expansion).
\r
313 For all options that output values and/or keys, always
\r
314 end values with the null character (instead of a
\r
315 newline). Use newline instead as a delimiter between
\r
316 key and value. This allows for secure parsing of the
\r
317 output without getting confused e.g. by values that
\r
318 contain line breaks.
\r
324 --get-colorbool name [stdout-is-tty]
\r
328 Find the color setting for <emphasis>name</emphasis> (e.g. <emphasis>color.diff</emphasis>) and output
\r
329 "true" or "false". <emphasis>stdout-is-tty</emphasis> should be either "true" or
\r
330 "false", and is taken into account when configuration says
\r
331 "auto". If <emphasis>stdout-is-tty</emphasis> is missing, then checks the standard
\r
332 output of the command itself, and exits with status 0 if color
\r
333 is to be used, or exits with status 1 otherwise.
\r
334 When the color setting for <emphasis>name</emphasis> is undefined, the command uses
\r
335 <emphasis>color.ui</emphasis> as fallback.
\r
341 --get-color name [default]
\r
345 Find the color configured for <emphasis>name</emphasis> (e.g. <emphasis>color.diff.new</emphasis>) and
\r
346 output it as the ANSI color escape sequence to the standard
\r
347 output. The optional <emphasis>default</emphasis> parameter is used instead, if
\r
348 there is no color configured for <emphasis>name</emphasis>.
\r
361 Opens an editor to modify the specified config file; either
\r
362 <emphasis>--system</emphasis>, <emphasis>--global</emphasis>, or repository (default).
\r
375 Respect <emphasis>include.*</emphasis> directives in config files when looking up
\r
376 values. Defaults to on.
\r
382 <simplesect id="git-config(1)_FILES">
\r
383 <title>FILES</title>
\r
384 <simpara>If not set explicitly with <emphasis>--file</emphasis>, there are four files where
\r
385 <emphasis>git config</emphasis> will search for configuration options:</simpara>
\r
393 Repository specific configuration file.
\r
403 User-specific configuration file. Also called "global"
\r
404 configuration file.
\r
410 $XDG_CONFIG_HOME/git/config
\r
414 Second user-specific configuration file. If $XDG_CONFIG_HOME is not set
\r
415 or empty, $HOME/.config/git/config will be used. Any single-valued
\r
416 variable set in this file will be overwritten by whatever is in
\r
417 ~/.gitconfig. It is a good idea not to create this file if
\r
418 you sometimes use older versions of Git, as support for this
\r
419 file was added fairly recently.
\r
425 $(prefix)/etc/gitconfig
\r
429 System-wide configuration file.
\r
434 <simpara>If no further options are given, all reading options will read all of these
\r
435 files that are available. If the global or the system-wide configuration
\r
436 file are not available they will be ignored. If the repository configuration
\r
437 file is not available or readable, <emphasis>git config</emphasis> will exit with a non-zero
\r
438 error code. However, in neither case will an error message be issued.</simpara>
\r
439 <simpara>All writing options will per default write to the repository specific
\r
440 configuration file. Note that this also affects options like <emphasis>--replace-all</emphasis>
\r
441 and <emphasis>--unset</emphasis>. <emphasis role="strong"><emphasis>git config</emphasis> will only ever change one file at a time</emphasis>.</simpara>
\r
442 <simpara>You can override these rules either by command line options or by environment
\r
443 variables. The <emphasis>--global</emphasis> and the <emphasis>--system</emphasis> options will limit the file used
\r
444 to the global or system-wide file respectively. The GIT_CONFIG environment
\r
445 variable has a similar effect, but you can specify any filename you want.</simpara>
\r
447 <simplesect id="git-config(1)__environment">
\r
448 <title>ENVIRONMENT</title>
\r
456 Take the configuration from the given file instead of .git/config.
\r
457 Using the "--global" option forces this to ~/.gitconfig. Using the
\r
458 "--system" option forces this to $(prefix)/etc/gitconfig.
\r
463 <simpara>See also <xref linkend="git-config(1)_FILES"/>.</simpara>
\r
465 <simplesect id="git-config(1)_EXAMPLES">
\r
466 <title>EXAMPLES</title>
\r
467 <simpara>Given a .git/config like this:</simpara>
\r
468 <literallayout class="monospaced">#
\r
469 # This is the config file, and
\r
470 # a '#' or ';' character indicates
\r
473 <literallayout class="monospaced">; core variables
\r
475 ; Don't trust file modes
\r
476 filemode = false</literallayout>
\r
477 <literallayout class="monospaced">; Our diff algorithm
\r
479 external = /usr/local/bin/diff-wrapper
\r
480 renames = true</literallayout>
\r
481 <literallayout class="monospaced">; Proxy settings
\r
483 gitproxy=proxy-command for kernel.org
\r
484 gitproxy=default-proxy ; for all the rest</literallayout>
\r
485 <simpara>you can set the filemode to true with</simpara>
\r
486 <screen>% git config core.filemode true</screen>
\r
487 <simpara>The hypothetical proxy command entries actually have a postfix to discern
\r
488 what URL they apply to. Here is how to change the entry for kernel.org
\r
489 to "ssh".</simpara>
\r
490 <screen>% git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</screen>
\r
491 <simpara>This makes sure that only the key/value pair for kernel.org is replaced.</simpara>
\r
492 <simpara>To delete the entry for renames, do</simpara>
\r
493 <screen>% git config --unset diff.renames</screen>
\r
494 <simpara>If you want to delete an entry for a multivar (like core.gitproxy above),
\r
495 you have to provide a regex matching the value of exactly one line.</simpara>
\r
496 <simpara>To query the value for a given key, do</simpara>
\r
497 <screen>% git config --get core.filemode</screen>
\r
498 <simpara>or</simpara>
\r
499 <screen>% git config core.filemode</screen>
\r
500 <simpara>or, to query a multivar:</simpara>
\r
501 <screen>% git config --get core.gitproxy "for kernel.org$"</screen>
\r
502 <simpara>If you want to know all the values for a multivar, do:</simpara>
\r
503 <screen>% git config --get-all core.gitproxy</screen>
\r
504 <simpara>If you like to live dangerously, you can replace <emphasis role="strong">all</emphasis> core.gitproxy by a
\r
505 new one with</simpara>
\r
506 <screen>% git config --replace-all core.gitproxy ssh</screen>
\r
507 <simpara>However, if you really only want to replace the line for the default proxy,
\r
508 i.e. the one without a "for …" postfix, do something like this:</simpara>
\r
509 <screen>% git config core.gitproxy ssh '! for '</screen>
\r
510 <simpara>To actually match only values with an exclamation mark, you have to</simpara>
\r
511 <screen>% git config section.key value '[!]'</screen>
\r
512 <simpara>To add a new proxy, without altering any of the existing ones, use</simpara>
\r
513 <screen>% git config --add core.gitproxy '"proxy-command" for example.com'</screen>
\r
514 <simpara>An example to use customized color from the configuration in your
\r
517 WS=$(git config --get-color color.diff.whitespace "blue reverse")
\r
518 RESET=$(git config --get-color "" "reset")
\r
519 echo "${WS}your whitespace color or blue reverse${RESET}"</screen>
\r
521 <simplesect id="git-config(1)__configuration_file">
\r
522 <title>CONFIGURATION FILE</title>
\r
523 <simpara>The git configuration file contains a number of variables that affect
\r
524 the git command's behavior. The <emphasis>.git/config</emphasis> file in each repository
\r
525 is used to store the configuration for that repository, and
\r
526 <emphasis>$HOME/.gitconfig</emphasis> is used to store a per-user configuration as
\r
527 fallback values for the <emphasis>.git/config</emphasis> file. The file <emphasis>/etc/gitconfig</emphasis>
\r
528 can be used to store a system-wide default configuration.</simpara>
\r
529 <simpara>The configuration variables are used by both the git plumbing
\r
530 and the porcelains. The variables are divided into sections, wherein
\r
531 the fully qualified variable name of the variable itself is the last
\r
532 dot-separated segment and the section name is everything before the last
\r
533 dot. The variable names are case-insensitive, allow only alphanumeric
\r
534 characters and <emphasis>-</emphasis>, and must start with an alphabetic character. Some
\r
535 variables may appear multiple times.</simpara>
\r
536 <section id="git-config(1)__syntax">
\r
537 <title>Syntax</title>
\r
538 <simpara>The syntax is fairly flexible and permissive; whitespaces are mostly
\r
539 ignored. The <emphasis>#</emphasis> and <emphasis>;</emphasis> characters begin comments to the end of line,
\r
540 blank lines are ignored.</simpara>
\r
541 <simpara>The file consists of sections and variables. A section begins with
\r
542 the name of the section in square brackets and continues until the next
\r
543 section begins. Section names are not case sensitive. Only alphanumeric
\r
544 characters, <emphasis>-</emphasis> and <emphasis>.</emphasis> are allowed in section names. Each variable
\r
545 must belong to some section, which means that there must be a section
\r
546 header before the first setting of a variable.</simpara>
\r
547 <simpara>Sections can be further divided into subsections. To begin a subsection
\r
548 put its name in double quotes, separated by space from the section name,
\r
549 in the section header, like in the example below:</simpara>
\r
550 <screen> [section "subsection"]</screen>
\r
551 <simpara>Subsection names are case sensitive and can contain any characters except
\r
552 newline (doublequote <emphasis>"</emphasis> and backslash have to be escaped as <emphasis>\"</emphasis> and <emphasis>\\</emphasis>,
\r
553 respectively). Section headers cannot span multiple
\r
554 lines. Variables may belong directly to a section or to a given subsection.
\r
555 You can have <emphasis>[section]</emphasis> if you have <emphasis>[section "subsection"]</emphasis>, but you
\r
556 don't need to.</simpara>
\r
557 <simpara>There is also a deprecated <emphasis>[section.subsection]</emphasis> syntax. With this
\r
558 syntax, the subsection name is converted to lower-case and is also
\r
559 compared case sensitively. These subsection names follow the same
\r
560 restrictions as section names.</simpara>
\r
561 <simpara>All the other lines (and the remainder of the line after the section
\r
562 header) are recognized as setting variables, in the form
\r
563 <emphasis>name = value</emphasis>. If there is no equal sign on the line, the entire line
\r
564 is taken as <emphasis>name</emphasis> and the variable is recognized as boolean "true".
\r
565 The variable names are case-insensitive, allow only alphanumeric characters
\r
566 and <emphasis>-</emphasis>, and must start with an alphabetic character. There can be more
\r
567 than one value for a given variable; we say then that the variable is
\r
568 multivalued.</simpara>
\r
569 <simpara>Leading and trailing whitespace in a variable value is discarded.
\r
570 Internal whitespace within a variable value is retained verbatim.</simpara>
\r
571 <simpara>The values following the equals sign in variable assign are all either
\r
572 a string, an integer, or a boolean. Boolean values may be given as yes/no,
\r
573 1/0, true/false or on/off. Case is not significant in boolean values, when
\r
574 converting value to the canonical form using <emphasis>--bool</emphasis> type specifier;
\r
575 <emphasis>git config</emphasis> will ensure that the output is "true" or "false".</simpara>
\r
576 <simpara>String values may be entirely or partially enclosed in double quotes.
\r
577 You need to enclose variable values in double quotes if you want to
\r
578 preserve leading or trailing whitespace, or if the variable value contains
\r
579 comment characters (i.e. it contains <emphasis>#</emphasis> or <emphasis>;</emphasis>).
\r
580 Double quote <emphasis>"</emphasis> and backslash <emphasis>\</emphasis> characters in variable values must
\r
581 be escaped: use <emphasis>\"</emphasis> for <emphasis>"</emphasis> and <emphasis>\\</emphasis> for <emphasis>\</emphasis>.</simpara>
\r
582 <simpara>The following escape sequences (beside <emphasis>\"</emphasis> and <emphasis>\\</emphasis>) are recognized:
\r
583 <emphasis>\n</emphasis> for newline character (NL), <emphasis>\t</emphasis> for horizontal tabulation (HT, TAB)
\r
584 and <emphasis>\b</emphasis> for backspace (BS). No other char escape sequence, nor octal
\r
585 char sequences are valid.</simpara>
\r
586 <simpara>Variable values ending in a <emphasis>\</emphasis> are continued on the next line in the
\r
587 customary UNIX fashion.</simpara>
\r
588 <simpara>Some variables may require a special value format.</simpara>
\r
590 <section id="git-config(1)__includes">
\r
591 <title>Includes</title>
\r
592 <simpara>You can include one config file from another by setting the special
\r
593 <emphasis>include.path</emphasis> variable to the name of the file to be included. The
\r
594 included file is expanded immediately, as if its contents had been
\r
595 found at the location of the include directive. If the value of the
\r
596 <emphasis>include.path</emphasis> variable is a relative path, the path is considered to be
\r
597 relative to the configuration file in which the include directive was
\r
598 found. The value of <emphasis>include.path</emphasis> is subject to tilde expansion: <emphasis>~/</emphasis>
\r
599 is expanded to the value of <emphasis>$HOME</emphasis>, and <emphasis>~user/</emphasis> to the specified
\r
600 user's home directory. See below for examples.</simpara>
\r
602 <section id="git-config(1)__example">
\r
603 <title>Example</title>
\r
604 <literallayout class="monospaced"># Core variables
\r
606 ; Don't trust file modes
\r
607 filemode = false</literallayout>
\r
608 <literallayout class="monospaced"># Our diff algorithm
\r
610 external = /usr/local/bin/diff-wrapper
\r
611 renames = true</literallayout>
\r
612 <literallayout class="monospaced">[branch "devel"]
\r
614 merge = refs/heads/devel</literallayout>
\r
615 <literallayout class="monospaced"># Proxy settings
\r
617 gitProxy="ssh" for "kernel.org"
\r
618 gitProxy=default-proxy ; for the rest</literallayout>
\r
619 <literallayout class="monospaced">[include]
\r
620 path = /path/to/foo.inc ; include by absolute path
\r
621 path = foo ; expand "foo" relative to the current file
\r
622 path = ~/foo ; expand "foo" in your $HOME directory</literallayout>
\r
624 <section id="git-config(1)__variables">
\r
625 <title>Variables</title>
\r
626 <simpara>Note that this list is non-comprehensive and not necessarily complete.
\r
627 For command-specific variables, you will find a more detailed description
\r
628 in the appropriate manual page. You will find a description of non-core
\r
629 porcelain configuration variables in the respective porcelain documentation.</simpara>
\r
637 These variables control various optional help messages designed to
\r
638 aid new users. All <emphasis>advice.*</emphasis> variables default to <emphasis>true</emphasis>, and you
\r
639 can tell Git that you do not need help by setting these to <emphasis>false</emphasis>:
\r
648 Set this variable to <emphasis>false</emphasis> if you want to disable
\r
649 <emphasis>pushNonFFCurrent</emphasis>, <emphasis>pushNonFFDefault</emphasis>, and
\r
650 <emphasis>pushNonFFMatching</emphasis> simultaneously.
\r
660 Advice shown when <xref linkend="git-push(1)" /> fails due to a
\r
661 non-fast-forward update to the current branch.
\r
671 Advice to set <emphasis>push.default</emphasis> to <emphasis>upstream</emphasis> or <emphasis>current</emphasis>
\r
672 when you ran <xref linkend="git-push(1)" /> and pushed <emphasis>matching
\r
673 refs</emphasis> by default (i.e. you did not provide an explicit
\r
674 refspec, and no <emphasis>push.default</emphasis> configuration was set)
\r
675 and it resulted in a non-fast-forward error.
\r
685 Advice shown when you ran <xref linkend="git-push(1)" /> and pushed
\r
686 <emphasis>matching refs</emphasis> explicitly (i.e. you used <emphasis>:</emphasis>, or
\r
687 specified a refspec that isn't your current branch) and
\r
688 it resulted in a non-fast-forward error.
\r
698 Show directions on how to proceed from the current
\r
699 state in the output of <xref linkend="git-status(1)" />, in
\r
700 the template shown when writing commit messages in
\r
701 <xref linkend="git-commit(1)" />, and in the help message shown
\r
702 by <xref linkend="git-checkout(1)" /> when switching branch.
\r
712 Advice shown when <xref linkend="git-merge(1)" /> refuses to
\r
713 merge to avoid overwriting local changes.
\r
723 Advices shown by various commands when conflicts
\r
724 prevent the operation from being performed.
\r
734 Advice on how to set your identity configuration when
\r
735 your information is guessed from the system username and
\r
746 Advice shown when you used <xref linkend="git-checkout(1)" /> to
\r
747 move to the detach HEAD state, to instruct how to create
\r
748 a local branch after the fact.
\r
758 Advice that shows the location of the patch file when
\r
759 <xref linkend="git-am(1)" /> fails to apply it.
\r
772 If false, the executable bit differences between the index and
\r
773 the working tree are ignored; useful on broken filesystems like FAT.
\r
774 See <xref linkend="git-update-index(1)" />.
\r
776 <simpara>The default is true, except <xref linkend="git-clone(1)" /> or <xref linkend="git-init(1)" />
\r
777 will probe and set core.fileMode false if appropriate when the
\r
778 repository is created.</simpara>
\r
783 core.ignoreCygwinFSTricks
\r
787 This option is only used by Cygwin implementation of Git. If false,
\r
788 the Cygwin stat() and lstat() functions are used. This may be useful
\r
789 if your repository consists of a few separate directories joined in
\r
790 one hierarchy using Cygwin mount. If true, Git uses native Win32 API
\r
791 whenever it is possible and falls back to Cygwin functions only to
\r
792 handle symbol links. The native mode is more than twice faster than
\r
793 normal Cygwin l/stat() functions. True by default, unless core.filemode
\r
794 is true, in which case ignoreCygwinFSTricks is ignored as Cygwin's
\r
795 POSIX emulation is required to support core.filemode.
\r
805 If true, this option enables various workarounds to enable
\r
806 git to work better on filesystems that are not case sensitive,
\r
807 like FAT. For example, if a directory listing finds
\r
808 "makefile" when git expects "Makefile", git will assume
\r
809 it is really the same file, and continue to remember it as
\r
812 <simpara>The default is false, except <xref linkend="git-clone(1)" /> or <xref linkend="git-init(1)" />
\r
813 will probe and set core.ignorecase true if appropriate when the repository
\r
814 is created.</simpara>
\r
819 core.precomposeunicode
\r
823 This option is only used by Mac OS implementation of git.
\r
824 When core.precomposeunicode=true, git reverts the unicode decomposition
\r
825 of filenames done by Mac OS. This is useful when sharing a repository
\r
826 between Mac OS and Linux or Windows.
\r
827 (Git for Windows 1.7.10 or higher is needed, or git under cygwin 1.7).
\r
828 When false, file names are handled fully transparent by git,
\r
829 which is backward compatible with older versions of git.
\r
839 If false, the ctime differences between the index and the
\r
840 working tree are ignored; useful when the inode change time
\r
841 is regularly modified by something outside Git (file system
\r
842 crawlers and some backup systems).
\r
843 See <xref linkend="git-update-index(1)" />. True by default.
\r
853 The commands that output paths (e.g. <emphasis>ls-files</emphasis>,
\r
854 <emphasis>diff</emphasis>), when not given the <emphasis>-z</emphasis> option, will quote
\r
855 "unusual" characters in the pathname by enclosing the
\r
856 pathname in a double-quote pair and with backslashes the
\r
857 same way strings in C source code are quoted. If this
\r
858 variable is set to false, the bytes higher than 0x80 are
\r
859 not quoted but output as verbatim. Note that double
\r
860 quote, backslash and control characters are always
\r
861 quoted without <emphasis>-z</emphasis> regardless of the setting of this
\r
872 Sets the line ending type to use in the working directory for
\r
873 files that have the <emphasis>text</emphasis> property set. Alternatives are
\r
874 <emphasis>lf</emphasis>, <emphasis>crlf</emphasis> and <emphasis>native</emphasis>, which uses the platform's native
\r
875 line ending. The default value is <emphasis>native</emphasis>. See
\r
876 <xref linkend="gitattributes(5)" /> for more information on end-of-line
\r
887 If true, makes git check if converting <emphasis>CRLF</emphasis> is reversible when
\r
888 end-of-line conversion is active. Git will verify if a command
\r
889 modifies a file in the work tree either directly or indirectly.
\r
890 For example, committing a file followed by checking out the
\r
891 same file should yield the original file in the work tree. If
\r
892 this is not the case for the current setting of
\r
893 <emphasis>core.autocrlf</emphasis>, git will reject the file. The variable can
\r
894 be set to "warn", in which case git will only warn about an
\r
895 irreversible conversion but continue the operation.
\r
897 <simpara>CRLF conversion bears a slight chance of corrupting data.
\r
898 When it is enabled, git will convert CRLF to LF during commit and LF to
\r
899 CRLF during checkout. A file that contains a mixture of LF and
\r
900 CRLF before the commit cannot be recreated by git. For text
\r
901 files this is the right thing to do: it corrects line endings
\r
902 such that we have only LF line endings in the repository.
\r
903 But for binary files that are accidentally classified as text the
\r
904 conversion can corrupt data.</simpara>
\r
905 <simpara>If you recognize such corruption early you can easily fix it by
\r
906 setting the conversion type explicitly in .gitattributes. Right
\r
907 after committing you still have the original file in your work
\r
908 tree and this file is not yet corrupted. You can explicitly tell
\r
909 git that this file is binary and git will handle the file
\r
910 appropriately.</simpara>
\r
911 <simpara>Unfortunately, the desired effect of cleaning up text files with
\r
912 mixed line endings and the undesired effect of corrupting binary
\r
913 files cannot be distinguished. In both cases CRLFs are removed
\r
914 in an irreversible way. For text files this is the right thing
\r
915 to do because CRLFs are line endings, while for binary files
\r
916 converting CRLFs corrupts data.</simpara>
\r
917 <simpara>Note, this safety check does not mean that a checkout will generate a
\r
918 file identical to the original file for a different setting of
\r
919 <emphasis>core.eol</emphasis> and <emphasis>core.autocrlf</emphasis>, but only for the current one. For
\r
920 example, a text file with <emphasis>LF</emphasis> would be accepted with <emphasis>core.eol=lf</emphasis>
\r
921 and could later be checked out with <emphasis>core.eol=crlf</emphasis>, in which case the
\r
922 resulting file would contain <emphasis>CRLF</emphasis>, although the original file
\r
923 contained <emphasis>LF</emphasis>. However, in both work trees the line endings would be
\r
924 consistent, that is either all <emphasis>LF</emphasis> or all <emphasis>CRLF</emphasis>, but never mixed. A
\r
925 file with mixed line endings would be reported by the <emphasis>core.safecrlf</emphasis>
\r
926 mechanism.</simpara>
\r
935 Setting this variable to "true" is almost the same as setting
\r
936 the <emphasis>text</emphasis> attribute to "auto" on all files except that text
\r
937 files are not guaranteed to be normalized: files that contain
\r
938 <emphasis>CRLF</emphasis> in the repository will not be touched. Use this
\r
939 setting if you want to have <emphasis>CRLF</emphasis> line endings in your
\r
940 working directory even though the repository does not have
\r
941 normalized line endings. This variable can be set to <emphasis>input</emphasis>,
\r
942 in which case no output conversion is performed.
\r
952 If false, symbolic links are checked out as small plain files that
\r
953 contain the link text. <xref linkend="git-update-index(1)" /> and
\r
954 <xref linkend="git-add(1)" /> will not change the recorded type to regular
\r
955 file. Useful on filesystems like FAT that do not support
\r
958 <simpara>The default is true, except <xref linkend="git-clone(1)" /> or <xref linkend="git-init(1)" />
\r
959 will probe and set core.symlinks false if appropriate when the repository
\r
960 is created.</simpara>
\r
969 A "proxy command" to execute (as <emphasis>command host port</emphasis>) instead
\r
970 of establishing direct connection to the remote server when
\r
971 using the git protocol for fetching. If the variable value is
\r
972 in the "COMMAND for DOMAIN" format, the command is applied only
\r
973 on hostnames ending with the specified domain string. This variable
\r
974 may be set multiple times and is matched in the given order;
\r
975 the first match wins.
\r
977 <simpara>Can be overridden by the <emphasis>GIT_PROXY_COMMAND</emphasis> environment variable
\r
978 (which always applies universally, without the special "for"
\r
979 handling).</simpara>
\r
980 <simpara>The special string <emphasis>none</emphasis> can be used as the proxy command to
\r
981 specify that no proxy be used for a given domain pattern.
\r
982 This is useful for excluding servers inside a firewall from
\r
983 proxy use, while defaulting to a common proxy for external domains.</simpara>
\r
992 If true, commands which modify both the working tree and the index
\r
993 will mark the updated paths with the "assume unchanged" bit in the
\r
994 index. These marked files are then assumed to stay unchanged in the
\r
995 working tree, until you mark them otherwise manually - Git will not
\r
996 detect the file changes by lstat() calls. This is useful on systems
\r
997 where those are very slow, such as Microsoft Windows.
\r
998 See <xref linkend="git-update-index(1)" />.
\r
1005 core.preferSymlinkRefs
\r
1009 Instead of the default "symref" format for HEAD
\r
1010 and other symbolic reference files, use symbolic links.
\r
1011 This is sometimes needed to work with old scripts that
\r
1012 expect HEAD to be a symbolic link.
\r
1022 If true this repository is assumed to be <emphasis>bare</emphasis> and has no
\r
1023 working directory associated with it. If this is the case a
\r
1024 number of commands that require a working directory will be
\r
1025 disabled, such as <xref linkend="git-add(1)" /> or <xref linkend="git-merge(1)" />.
\r
1027 <simpara>This setting is automatically guessed by <xref linkend="git-clone(1)" /> or
\r
1028 <xref linkend="git-init(1)" /> when the repository was created. By default a
\r
1029 repository that ends in "/.git" is assumed to be not bare (bare =
\r
1030 false), while all other repositories are assumed to be bare (bare
\r
1031 = true).</simpara>
\r
1040 Set the path to the root of the working tree.
\r
1041 This can be overridden by the GIT_WORK_TREE environment
\r
1042 variable and the <emphasis>--work-tree</emphasis> command line option.
\r
1043 The value can be an absolute path or relative to the path to
\r
1044 the .git directory, which is either specified by --git-dir
\r
1045 or GIT_DIR, or automatically discovered.
\r
1046 If --git-dir or GIT_DIR is specified but none of
\r
1047 --work-tree, GIT_WORK_TREE and core.worktree is specified,
\r
1048 the current working directory is regarded as the top level
\r
1049 of your working tree.
\r
1051 <simpara>Note that this variable is honored even when set in a configuration
\r
1052 file in a ".git" subdirectory of a directory and its value differs
\r
1053 from the latter directory (e.g. "/path/to/.git/config" has
\r
1054 core.worktree set to "/different/path"), which is most likely a
\r
1055 misconfiguration. Running git commands in the "/path/to" directory will
\r
1056 still use "/different/path" as the root of the work tree and can cause
\r
1057 confusion unless you know what you are doing (e.g. you are creating a
\r
1058 read-only snapshot of the same index to a location different from the
\r
1059 repository's usual working tree).</simpara>
\r
1064 core.logAllRefUpdates
\r
1068 Enable the reflog. Updates to a ref <ref> is logged to the file
\r
1069 "$GIT_DIR/logs/<ref>", by appending the new and old
\r
1070 SHA1, the date/time and the reason of the update, but
\r
1071 only when the file exists. If this configuration
\r
1072 variable is set to true, missing "$GIT_DIR/logs/<ref>"
\r
1073 file is automatically created for branch heads (i.e. under
\r
1074 refs/heads/), remote refs (i.e. under refs/remotes/),
\r
1075 note refs (i.e. under refs/notes/), and the symbolic ref HEAD.
\r
1077 <simpara>This information can be used to determine what commit
\r
1078 was the tip of a branch "2 days ago".</simpara>
\r
1079 <simpara>This value is true by default in a repository that has
\r
1080 a working directory associated with it, and false by
\r
1081 default in a bare repository.</simpara>
\r
1086 core.repositoryFormatVersion
\r
1090 Internal variable identifying the repository format and layout
\r
1097 core.sharedRepository
\r
1101 When <emphasis>group</emphasis> (or <emphasis>true</emphasis>), the repository is made shareable between
\r
1102 several users in a group (making sure all the files and objects are
\r
1103 group-writable). When <emphasis>all</emphasis> (or <emphasis>world</emphasis> or <emphasis>everybody</emphasis>), the
\r
1104 repository will be readable by all users, additionally to being
\r
1105 group-shareable. When <emphasis>umask</emphasis> (or <emphasis>false</emphasis>), git will use permissions
\r
1106 reported by umask(2). When <emphasis>0xxx</emphasis>, where <emphasis>0xxx</emphasis> is an octal number,
\r
1107 files in the repository will have this mode value. <emphasis>0xxx</emphasis> will override
\r
1108 user's umask value (whereas the other options will only override
\r
1109 requested parts of the user's umask value). Examples: <emphasis>0660</emphasis> will make
\r
1110 the repo read/write-able for the owner and group, but inaccessible to
\r
1111 others (equivalent to <emphasis>group</emphasis> unless umask is e.g. <emphasis>0022</emphasis>). <emphasis>0640</emphasis> is a
\r
1112 repository that is group-readable but not group-writable.
\r
1113 See <xref linkend="git-init(1)" />. False by default.
\r
1119 core.warnAmbiguousRefs
\r
1123 If true, git will warn you if the ref name you passed it is ambiguous
\r
1124 and might match multiple refs in the .git/refs/ tree. True by default.
\r
1134 An integer -1..9, indicating a default compression level.
\r
1135 -1 is the zlib default. 0 means no compression,
\r
1136 and 1..9 are various speed/size tradeoffs, 9 being slowest.
\r
1137 If set, this provides a default to other compression variables,
\r
1138 such as <emphasis>core.loosecompression</emphasis> and <emphasis>pack.compression</emphasis>.
\r
1144 core.loosecompression
\r
1148 An integer -1..9, indicating the compression level for objects that
\r
1149 are not in a pack file. -1 is the zlib default. 0 means no
\r
1150 compression, and 1..9 are various speed/size tradeoffs, 9 being
\r
1151 slowest. If not set, defaults to core.compression. If that is
\r
1152 not set, defaults to 1 (best speed).
\r
1158 core.packedGitWindowSize
\r
1162 Number of bytes of a pack file to map into memory in a
\r
1163 single mapping operation. Larger window sizes may allow
\r
1164 your system to process a smaller number of large pack files
\r
1165 more quickly. Smaller window sizes will negatively affect
\r
1166 performance due to increased calls to the operating system's
\r
1167 memory manager, but may improve performance when accessing
\r
1168 a large number of large pack files.
\r
1170 <simpara>Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
\r
1171 MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
\r
1172 be reasonable for all users/operating systems. You probably do
\r
1173 not need to adjust this value.</simpara>
\r
1174 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
1179 core.packedGitLimit
\r
1183 Maximum number of bytes to map simultaneously into memory
\r
1184 from pack files. If Git needs to access more than this many
\r
1185 bytes at once to complete an operation it will unmap existing
\r
1186 regions to reclaim virtual address space within the process.
\r
1188 <simpara>Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.
\r
1189 This should be reasonable for all users/operating systems, except on
\r
1190 the largest projects. You probably do not need to adjust this value.</simpara>
\r
1191 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
1196 core.deltaBaseCacheLimit
\r
1200 Maximum number of bytes to reserve for caching base objects
\r
1201 that may be referenced by multiple deltified objects. By storing the
\r
1202 entire decompressed base objects in a cache Git is able
\r
1203 to avoid unpacking and decompressing frequently used base
\r
1204 objects multiple times.
\r
1206 <simpara>Default is 16 MiB on all platforms. This should be reasonable
\r
1207 for all users/operating systems, except on the largest projects.
\r
1208 You probably do not need to adjust this value.</simpara>
\r
1209 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
1214 core.bigFileThreshold
\r
1218 Files larger than this size are stored deflated, without
\r
1219 attempting delta compression. Storing large files without
\r
1220 delta compression avoids excessive memory usage, at the
\r
1221 slight expense of increased disk usage.
\r
1223 <simpara>Default is 512 MiB on all platforms. This should be reasonable
\r
1224 for most projects as source code and other text files can still
\r
1225 be delta compressed, but larger binary media files won't be.</simpara>
\r
1226 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
1235 In addition to <emphasis>.gitignore</emphasis> (per-directory) and
\r
1236 <emphasis>.git/info/exclude</emphasis>, git looks into this file for patterns
\r
1237 of files which are not meant to be tracked. "<emphasis>~/</emphasis>" is expanded
\r
1238 to the value of <emphasis>$HOME</emphasis> and "<emphasis>~user/</emphasis>" to the specified user's
\r
1239 home directory. Its default value is $XDG_CONFIG_HOME/git/ignore.
\r
1240 If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore
\r
1241 is used instead. See <xref linkend="gitignore(5)" />.
\r
1251 Some commands (e.g. svn and http interfaces) that interactively
\r
1252 ask for a password can be told to use an external program given
\r
1253 via the value of this variable. Can be overridden by the <emphasis>GIT_ASKPASS</emphasis>
\r
1254 environment variable. If not set, fall back to the value of the
\r
1255 <emphasis>SSH_ASKPASS</emphasis> environment variable or, failing that, a simple password
\r
1256 prompt. The external program shall be given a suitable prompt as
\r
1257 command line argument and write the password on its STDOUT.
\r
1263 core.attributesfile
\r
1267 In addition to <emphasis>.gitattributes</emphasis> (per-directory) and
\r
1268 <emphasis>.git/info/attributes</emphasis>, git looks into this file for attributes
\r
1269 (see <xref linkend="gitattributes(5)" />). Path expansions are made the same
\r
1270 way as for <emphasis>core.excludesfile</emphasis>. Its default value is
\r
1271 $XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not
\r
1272 set or empty, $HOME/.config/git/attributes is used instead.
\r
1282 Commands such as <emphasis>commit</emphasis> and <emphasis>tag</emphasis> that lets you edit
\r
1283 messages by launching an editor uses the value of this
\r
1284 variable when it is set, and the environment variable
\r
1285 <emphasis>GIT_EDITOR</emphasis> is not set. See <xref linkend="git-var(1)" />.
\r
1295 Text editor used by <emphasis>git rebase -i</emphasis> for editing the rebase insn file.
\r
1296 The value is meant to be interpreted by the shell when it is used.
\r
1297 It can be overridden by the <emphasis>GIT_SEQUENCE_EDITOR</emphasis> environment variable.
\r
1298 When not configured the default commit message editor is used instead.
\r
1308 The command that git will use to paginate output. Can
\r
1309 be overridden with the <emphasis>GIT_PAGER</emphasis> environment
\r
1310 variable. Note that git sets the <emphasis>LESS</emphasis> environment
\r
1311 variable to <emphasis>FRSX</emphasis> if it is unset when it runs the
\r
1312 pager. One can change these settings by setting the
\r
1313 <emphasis>LESS</emphasis> variable to some other value. Alternately,
\r
1314 these settings can be overridden on a project or
\r
1315 global basis by setting the <emphasis>core.pager</emphasis> option.
\r
1316 Setting <emphasis>core.pager</emphasis> has no effect on the <emphasis>LESS</emphasis>
\r
1317 environment variable behaviour above, so if you want
\r
1318 to override git's default settings this way, you need
\r
1319 to be explicit. For example, to disable the S option
\r
1320 in a backward compatible manner, set <emphasis>core.pager</emphasis>
\r
1321 to <emphasis>less -+S</emphasis>. This will be passed to the shell by
\r
1322 git, which will translate the final command to
\r
1323 <emphasis>LESS=FRSX less -+S</emphasis>.
\r
1333 A comma separated list of common whitespace problems to
\r
1334 notice. <emphasis>git diff</emphasis> will use <emphasis>color.diff.whitespace</emphasis> to
\r
1335 highlight them, and <emphasis>git apply --whitespace=error</emphasis> will
\r
1336 consider them as errors. You can prefix <emphasis>-</emphasis> to disable
\r
1337 any of them (e.g. <emphasis>-trailing-space</emphasis>):
\r
1342 <emphasis>blank-at-eol</emphasis> treats trailing whitespaces at the end of the line
\r
1343 as an error (enabled by default).
\r
1348 <emphasis>space-before-tab</emphasis> treats a space character that appears immediately
\r
1349 before a tab character in the initial indent part of the line as an
\r
1350 error (enabled by default).
\r
1355 <emphasis>indent-with-non-tab</emphasis> treats a line that is indented with space
\r
1356 characters instead of the equivalent tabs as an error (not enabled by
\r
1362 <emphasis>tab-in-indent</emphasis> treats a tab character in the initial indent part of
\r
1363 the line as an error (not enabled by default).
\r
1368 <emphasis>blank-at-eof</emphasis> treats blank lines added at the end of file as an error
\r
1369 (enabled by default).
\r
1374 <emphasis>trailing-space</emphasis> is a short-hand to cover both <emphasis>blank-at-eol</emphasis> and
\r
1375 <emphasis>blank-at-eof</emphasis>.
\r
1380 <emphasis>cr-at-eol</emphasis> treats a carriage-return at the end of line as
\r
1381 part of the line terminator, i.e. with it, <emphasis>trailing-space</emphasis>
\r
1382 does not trigger if the character before such a carriage-return
\r
1383 is not a whitespace (not enabled by default).
\r
1388 <emphasis>tabwidth=<n></emphasis> tells how many character positions a tab occupies; this
\r
1389 is relevant for <emphasis>indent-with-non-tab</emphasis> and when git fixes <emphasis>tab-in-indent</emphasis>
\r
1390 errors. The default tab width is 8. Allowed values are 1 to 63.
\r
1398 core.fsyncobjectfiles
\r
1402 This boolean will enable <emphasis>fsync()</emphasis> when writing object files.
\r
1404 <simpara>This is a total waste of time and effort on a filesystem that orders
\r
1405 data writes properly, but can be useful for filesystems that do not use
\r
1406 journalling (traditional UNIX filesystems) or that only journal metadata
\r
1407 and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").</simpara>
\r
1416 Enable parallel index preload for operations like <emphasis>git diff</emphasis>
\r
1418 <simpara>This can speed up operations like <emphasis>git diff</emphasis> and <emphasis>git status</emphasis> especially
\r
1419 on filesystems like NFS that have weak caching semantics and thus
\r
1420 relatively high IO latencies. With this set to <emphasis>true</emphasis>, git will do the
\r
1421 index comparison to the filesystem data in parallel, allowing
\r
1422 overlapping IO's.</simpara>
\r
1431 You can set this to <emphasis>link</emphasis>, in which case a hardlink followed by
\r
1432 a delete of the source are used to make sure that object creation
\r
1433 will not overwrite existing objects.
\r
1435 <simpara>On some file system/operating system combinations, this is unreliable.
\r
1436 Set this config setting to <emphasis>rename</emphasis> there; However, This will remove the
\r
1437 check that makes sure that existing object files will not get overwritten.</simpara>
\r
1446 When showing commit messages, also show notes which are stored in
\r
1447 the given ref. The ref must be fully qualified. If the given
\r
1448 ref does not exist, it is not an error but means that no
\r
1449 notes should be printed.
\r
1451 <simpara>This setting defaults to "refs/notes/commits", and it can be overridden by
\r
1452 the <emphasis>GIT_NOTES_REF</emphasis> environment variable. See <xref linkend="git-notes(1)" />.</simpara>
\r
1457 core.sparseCheckout
\r
1461 Enable "sparse checkout" feature. See section "Sparse checkout" in
\r
1462 <xref linkend="git-read-tree(1)" /> for more information.
\r
1472 Set the length object names are abbreviated to. If unspecified,
\r
1473 many commands abbreviate to 7 hexdigits, which may not be enough
\r
1474 for abbreviated object names to stay unique for sufficiently long
\r
1488 Tells <emphasis>git add</emphasis> to continue adding files when some files cannot be
\r
1489 added due to indexing errors. Equivalent to the <emphasis>--ignore-errors</emphasis>
\r
1490 option of <xref linkend="git-add(1)" />. Older versions of git accept only
\r
1491 <emphasis>add.ignore-errors</emphasis>, which does not follow the usual naming
\r
1492 convention for configuration variables. Newer versions of git
\r
1493 honor <emphasis>add.ignoreErrors</emphasis> as well.
\r
1503 Command aliases for the <xref linkend="git(1)" /> command wrapper - e.g.
\r
1504 after defining "alias.last = cat-file commit HEAD", the invocation
\r
1505 "git last" is equivalent to "git cat-file commit HEAD". To avoid
\r
1506 confusion and troubles with script usage, aliases that
\r
1507 hide existing git commands are ignored. Arguments are split by
\r
1508 spaces, the usual shell quoting and escaping is supported.
\r
1509 quote pair and a backslash can be used to quote them.
\r
1511 <simpara>If the alias expansion is prefixed with an exclamation point,
\r
1512 it will be treated as a shell command. For example, defining
\r
1513 "alias.new = !gitk --all --not ORIG_HEAD", the invocation
\r
1514 "git new" is equivalent to running the shell command
\r
1515 "gitk --all --not ORIG_HEAD". Note that shell commands will be
\r
1516 executed from the top-level directory of a repository, which may
\r
1517 not necessarily be the current directory.
\r
1518 <emphasis>GIT_PREFIX</emphasis> is set as returned by running <emphasis>git rev-parse --show-prefix</emphasis>
\r
1519 from the original current directory. See <xref linkend="git-rev-parse(1)" />.</simpara>
\r
1528 If true, git-am will call git-mailsplit for patches in mbox format
\r
1529 with parameter <emphasis>--keep-cr</emphasis>. In this case git-mailsplit will
\r
1530 not remove <emphasis>\r</emphasis> from lines ending with <emphasis>\r\n</emphasis>. Can be overridden
\r
1531 by giving <emphasis>--no-keep-cr</emphasis> from the command line.
\r
1532 See <xref linkend="git-am(1)" />, <xref linkend="git-mailsplit(1)" />.
\r
1538 apply.ignorewhitespace
\r
1542 When set to <emphasis>change</emphasis>, tells <emphasis>git apply</emphasis> to ignore changes in
\r
1543 whitespace, in the same way as the <emphasis>--ignore-space-change</emphasis>
\r
1545 When set to one of: no, none, never, false tells <emphasis>git apply</emphasis> to
\r
1546 respect all whitespace differences.
\r
1547 See <xref linkend="git-apply(1)" />.
\r
1557 Tells <emphasis>git apply</emphasis> how to handle whitespaces, in the same way
\r
1558 as the <emphasis>--whitespace</emphasis> option. See <xref linkend="git-apply(1)" />.
\r
1564 branch.autosetupmerge
\r
1568 Tells <emphasis>git branch</emphasis> and <emphasis>git checkout</emphasis> to set up new branches
\r
1569 so that <xref linkend="git-pull(1)" /> will appropriately merge from the
\r
1570 starting point branch. Note that even if this option is not set,
\r
1571 this behavior can be chosen per-branch using the <emphasis>--track</emphasis>
\r
1572 and <emphasis>--no-track</emphasis> options. The valid settings are: <emphasis>false</emphasis> -- no
\r
1573 automatic setup is done; <emphasis>true</emphasis> -- automatic setup is done when the
\r
1574 starting point is a remote-tracking branch; <emphasis>always</emphasis> --
\r
1575 automatic setup is done when the starting point is either a
\r
1576 local branch or remote-tracking
\r
1577 branch. This option defaults to true.
\r
1583 branch.autosetuprebase
\r
1587 When a new branch is created with <emphasis>git branch</emphasis> or <emphasis>git checkout</emphasis>
\r
1588 that tracks another branch, this variable tells git to set
\r
1589 up pull to rebase instead of merge (see "branch.<name>.rebase").
\r
1590 When <emphasis>never</emphasis>, rebase is never automatically set to true.
\r
1591 When <emphasis>local</emphasis>, rebase is set to true for tracked branches of
\r
1592 other local branches.
\r
1593 When <emphasis>remote</emphasis>, rebase is set to true for tracked branches of
\r
1594 remote-tracking branches.
\r
1595 When <emphasis>always</emphasis>, rebase will be set to true for all tracking
\r
1597 See "branch.autosetupmerge" for details on how to set up a
\r
1598 branch to track another branch.
\r
1599 This option defaults to never.
\r
1605 branch.<name>.remote
\r
1609 When in branch <name>, it tells <emphasis>git fetch</emphasis> and <emphasis>git push</emphasis> which
\r
1610 remote to fetch from/push to. It defaults to <emphasis>origin</emphasis> if no remote is
\r
1611 configured. <emphasis>origin</emphasis> is also used if you are not on any branch.
\r
1617 branch.<name>.merge
\r
1621 Defines, together with branch.<name>.remote, the upstream branch
\r
1622 for the given branch. It tells <emphasis>git fetch</emphasis>/<emphasis>git pull</emphasis>/<emphasis>git rebase</emphasis> which
\r
1623 branch to merge and can also affect <emphasis>git push</emphasis> (see push.default).
\r
1624 When in branch <name>, it tells <emphasis>git fetch</emphasis> the default
\r
1625 refspec to be marked for merging in FETCH_HEAD. The value is
\r
1626 handled like the remote part of a refspec, and must match a
\r
1627 ref which is fetched from the remote given by
\r
1628 "branch.<name>.remote".
\r
1629 The merge information is used by <emphasis>git pull</emphasis> (which at first calls
\r
1630 <emphasis>git fetch</emphasis>) to lookup the default branch for merging. Without
\r
1631 this option, <emphasis>git pull</emphasis> defaults to merge the first refspec fetched.
\r
1632 Specify multiple values to get an octopus merge.
\r
1633 If you wish to setup <emphasis>git pull</emphasis> so that it merges into <name> from
\r
1634 another branch in the local repository, you can point
\r
1635 branch.<name>.merge to the desired branch, and use the special setting
\r
1636 <emphasis>.</emphasis> (a period) for branch.<name>.remote.
\r
1642 branch.<name>.mergeoptions
\r
1646 Sets default options for merging into branch <name>. The syntax and
\r
1647 supported options are the same as those of <xref linkend="git-merge(1)" />, but
\r
1648 option values containing whitespace characters are currently not
\r
1655 branch.<name>.rebase
\r
1659 When true, rebase the branch <name> on top of the fetched branch,
\r
1660 instead of merging the default branch from the default remote when
\r
1661 "git pull" is run. See "pull.rebase" for doing this in a non
\r
1662 branch-specific manner.
\r
1664 <simpara><emphasis role="strong">NOTE</emphasis>: this is a possibly dangerous operation; do <emphasis role="strong">not</emphasis> use
\r
1665 it unless you understand the implications (see <xref linkend="git-rebase(1)" />
\r
1666 for details).</simpara>
\r
1671 browser.<tool>.cmd
\r
1675 Specify the command to invoke the specified browser. The
\r
1676 specified command is evaluated in shell with the URLs passed
\r
1677 as arguments. (See <xref linkend="git-web--browse(1)" />.)
\r
1683 browser.<tool>.path
\r
1687 Override the path for the given tool that may be used to
\r
1688 browse HTML help (see <emphasis>-w</emphasis> option in <xref linkend="git-help(1)" />) or a
\r
1689 working repository in gitweb (see <xref linkend="git-instaweb(1)" />).
\r
1695 clean.requireForce
\r
1699 A boolean to make git-clean do nothing unless given -f
\r
1700 or -n. Defaults to true.
\r
1710 A boolean to enable/disable color in the output of
\r
1711 <xref linkend="git-branch(1)" />. May be set to <emphasis>always</emphasis>,
\r
1712 <emphasis>false</emphasis> (or <emphasis>never</emphasis>) or <emphasis>auto</emphasis> (or <emphasis>true</emphasis>), in which case colors are used
\r
1713 only when the output is to a terminal. Defaults to false.
\r
1719 color.branch.<slot>
\r
1723 Use customized color for branch coloration. <emphasis><slot></emphasis> is one of
\r
1724 <emphasis>current</emphasis> (the current branch), <emphasis>local</emphasis> (a local branch),
\r
1725 <emphasis>remote</emphasis> (a remote-tracking branch in refs/remotes/), <emphasis>plain</emphasis> (other
\r
1728 <simpara>The value for these configuration variables is a list of colors (at most
\r
1729 two) and attributes (at most one), separated by spaces. The colors
\r
1730 accepted are <emphasis>normal</emphasis>, <emphasis>black</emphasis>, <emphasis>red</emphasis>, <emphasis>green</emphasis>, <emphasis>yellow</emphasis>, <emphasis>blue</emphasis>,
\r
1731 <emphasis>magenta</emphasis>, <emphasis>cyan</emphasis> and <emphasis>white</emphasis>; the attributes are <emphasis>bold</emphasis>, <emphasis>dim</emphasis>, <emphasis>ul</emphasis>,
\r
1732 <emphasis>blink</emphasis> and <emphasis>reverse</emphasis>. The first color given is the foreground; the
\r
1733 second is the background. The position of the attribute, if any,
\r
1734 doesn't matter.</simpara>
\r
1743 Whether to use ANSI escape sequences to add color to patches.
\r
1744 If this is set to <emphasis>always</emphasis>, <xref linkend="git-diff(1)" />,
\r
1745 <xref linkend="git-log(1)" />, and <xref linkend="git-show(1)" /> will use color
\r
1746 for all patches. If it is set to <emphasis>true</emphasis> or <emphasis>auto</emphasis>, those
\r
1747 commands will only use color when output is to the terminal.
\r
1748 Defaults to false.
\r
1750 <simpara>This does not affect <xref linkend="git-format-patch(1)" /> nor the
\r
1751 <emphasis>git-diff-*</emphasis> plumbing commands. Can be overridden on the
\r
1752 command line with the <emphasis>--color[=<when>]</emphasis> option.</simpara>
\r
1757 color.diff.<slot>
\r
1761 Use customized color for diff colorization. <emphasis><slot></emphasis> specifies
\r
1762 which part of the patch to use the specified color, and is one
\r
1763 of <emphasis>plain</emphasis> (context text), <emphasis>meta</emphasis> (metainformation), <emphasis>frag</emphasis>
\r
1764 (hunk header), <emphasis>func</emphasis> (function in hunk header), <emphasis>old</emphasis> (removed lines),
\r
1765 <emphasis>new</emphasis> (added lines), <emphasis>commit</emphasis> (commit headers), or <emphasis>whitespace</emphasis>
\r
1766 (highlighting whitespace errors). The values of these variables may be
\r
1767 specified as in color.branch.<slot>.
\r
1773 color.decorate.<slot>
\r
1777 Use customized color for <emphasis>git log --decorate</emphasis> output. <emphasis><slot></emphasis> is one
\r
1778 of <emphasis>branch</emphasis>, <emphasis>remoteBranch</emphasis>, <emphasis>tag</emphasis>, <emphasis>stash</emphasis> or <emphasis>HEAD</emphasis> for local
\r
1779 branches, remote-tracking branches, tags, stash and HEAD, respectively.
\r
1789 When set to <emphasis>always</emphasis>, always highlight matches. When <emphasis>false</emphasis> (or
\r
1790 <emphasis>never</emphasis>), never. When set to <emphasis>true</emphasis> or <emphasis>auto</emphasis>, use color only
\r
1791 when the output is written to the terminal. Defaults to <emphasis>false</emphasis>.
\r
1797 color.grep.<slot>
\r
1801 Use customized color for grep colorization. <emphasis><slot></emphasis> specifies which
\r
1802 part of the line to use the specified color, and is one of
\r
1807 <emphasis>context</emphasis>
\r
1811 non-matching text in context lines (when using <emphasis>-A</emphasis>, <emphasis>-B</emphasis>, or <emphasis>-C</emphasis>)
\r
1817 <emphasis>filename</emphasis>
\r
1821 filename prefix (when not using <emphasis>-h</emphasis>)
\r
1827 <emphasis>function</emphasis>
\r
1831 function name lines (when using <emphasis>-p</emphasis>)
\r
1837 <emphasis>linenumber</emphasis>
\r
1841 line number prefix (when using <emphasis>-n</emphasis>)
\r
1847 <emphasis>match</emphasis>
\r
1857 <emphasis>selected</emphasis>
\r
1861 non-matching text in selected lines
\r
1867 <emphasis>separator</emphasis>
\r
1871 separators between fields on a line (<emphasis>:</emphasis>, <emphasis>-</emphasis>, and <emphasis>=</emphasis>)
\r
1872 and between hunks (<emphasis>--</emphasis>)
\r
1877 <simpara>The values of these variables may be specified as in color.branch.<slot>.</simpara>
\r
1886 When set to <emphasis>always</emphasis>, always use colors for interactive prompts
\r
1887 and displays (such as those used by "git-add --interactive").
\r
1888 When false (or <emphasis>never</emphasis>), never. When set to <emphasis>true</emphasis> or <emphasis>auto</emphasis>, use
\r
1889 colors only when the output is to the terminal. Defaults to false.
\r
1895 color.interactive.<slot>
\r
1899 Use customized color for <emphasis>git add --interactive</emphasis>
\r
1900 output. <emphasis><slot></emphasis> may be <emphasis>prompt</emphasis>, <emphasis>header</emphasis>, <emphasis>help</emphasis> or <emphasis>error</emphasis>, for
\r
1901 four distinct types of normal output from interactive
\r
1902 commands. The values of these variables may be specified as
\r
1903 in color.branch.<slot>.
\r
1913 A boolean to enable/disable colored output when the pager is in
\r
1914 use (default is true).
\r
1924 A boolean to enable/disable color in the output of
\r
1925 <xref linkend="git-show-branch(1)" />. May be set to <emphasis>always</emphasis>,
\r
1926 <emphasis>false</emphasis> (or <emphasis>never</emphasis>) or <emphasis>auto</emphasis> (or <emphasis>true</emphasis>), in which case colors are used
\r
1927 only when the output is to a terminal. Defaults to false.
\r
1937 A boolean to enable/disable color in the output of
\r
1938 <xref linkend="git-status(1)" />. May be set to <emphasis>always</emphasis>,
\r
1939 <emphasis>false</emphasis> (or <emphasis>never</emphasis>) or <emphasis>auto</emphasis> (or <emphasis>true</emphasis>), in which case colors are used
\r
1940 only when the output is to a terminal. Defaults to false.
\r
1946 color.status.<slot>
\r
1950 Use customized color for status colorization. <emphasis><slot></emphasis> is
\r
1951 one of <emphasis>header</emphasis> (the header text of the status message),
\r
1952 <emphasis>added</emphasis> or <emphasis>updated</emphasis> (files which are added but not committed),
\r
1953 <emphasis>changed</emphasis> (files which are changed but not added in the index),
\r
1954 <emphasis>untracked</emphasis> (files which are not tracked by git),
\r
1955 <emphasis>branch</emphasis> (the current branch), or
\r
1956 <emphasis>nobranch</emphasis> (the color the <emphasis>no branch</emphasis> warning is shown in, defaulting
\r
1957 to red). The values of these variables may be specified as in
\r
1958 color.branch.<slot>.
\r
1968 This variable determines the default value for variables such
\r
1969 as <emphasis>color.diff</emphasis> and <emphasis>color.grep</emphasis> that control the use of color
\r
1970 per command family. Its scope will expand as more commands learn
\r
1971 configuration to set a default for the <emphasis>--color</emphasis> option. Set it
\r
1972 to <emphasis>always</emphasis> if you want all output not intended for machine
\r
1973 consumption to use color, to <emphasis>true</emphasis> or <emphasis>auto</emphasis> if you want such
\r
1974 output to use color when written to the terminal, or to <emphasis>false</emphasis> or
\r
1975 <emphasis>never</emphasis> if you prefer git commands not to use color unless enabled
\r
1976 explicitly with some other configuration or the <emphasis>--color</emphasis> option.
\r
1986 Specify whether supported commands should output in columns.
\r
1987 This variable consists of a list of tokens separated by spaces
\r
1993 <emphasis>always</emphasis>
\r
1997 always show in columns
\r
2003 <emphasis>never</emphasis>
\r
2007 never show in columns
\r
2013 <emphasis>auto</emphasis>
\r
2017 show in columns if the output is to the terminal
\r
2023 <emphasis>column</emphasis>
\r
2027 fill columns before rows (default)
\r
2033 <emphasis>row</emphasis>
\r
2037 fill rows before columns
\r
2043 <emphasis>plain</emphasis>
\r
2047 show in one column
\r
2053 <emphasis>dense</emphasis>
\r
2057 make unequal size columns to utilize more space
\r
2063 <emphasis>nodense</emphasis>
\r
2067 make equal size columns
\r
2072 <simpara>This option defaults to <emphasis>never</emphasis>.</simpara>
\r
2081 Specify whether to output branch listing in <emphasis>git branch</emphasis> in columns.
\r
2082 See <emphasis>column.ui</emphasis> for details.
\r
2092 Specify whether to output untracked files in <emphasis>git status</emphasis> in columns.
\r
2093 See <emphasis>column.ui</emphasis> for details.
\r
2103 Specify whether to output tag listing in <emphasis>git tag</emphasis> in columns.
\r
2104 See <emphasis>column.ui</emphasis> for details.
\r
2114 A boolean to enable/disable inclusion of status information in the
\r
2115 commit message template when using an editor to prepare the commit
\r
2116 message. Defaults to true.
\r
2126 Specify a file to use as the template for new commit messages.
\r
2127 "<emphasis>~/</emphasis>" is expanded to the value of <emphasis>$HOME</emphasis> and "<emphasis>~user/</emphasis>" to the
\r
2128 specified user's home directory.
\r
2138 Specify an external helper to be called when a username or
\r
2139 password credential is needed; the helper may consult external
\r
2140 storage to avoid prompting the user for the credentials. See
\r
2141 <xref linkend="gitcredentials(7)" /> for details.
\r
2147 credential.useHttpPath
\r
2151 When acquiring credentials, consider the "path" component of an http
\r
2152 or https URL to be important. Defaults to false. See
\r
2153 <xref linkend="gitcredentials(7)" /> for more information.
\r
2159 credential.username
\r
2163 If no username is set for a network authentication, use this username
\r
2164 by default. See credential.<context>.* below, and
\r
2165 <xref linkend="gitcredentials(7)" />.
\r
2171 credential.<url>.*
\r
2175 Any of the credential.* options above can be applied selectively to
\r
2176 some credentials. For example "credential.https://example.com.username"
\r
2177 would set the default username only for https connections to
\r
2178 example.com. See <xref linkend="gitcredentials(7)" /> for details on how URLs are
\r
2185 diff.autorefreshindex
\r
2189 When using <emphasis>git diff</emphasis> to compare with work tree
\r
2190 files, do not consider stat-only change as changed.
\r
2191 Instead, silently run <emphasis>git update-index --refresh</emphasis> to
\r
2192 update the cached stat information for paths whose
\r
2193 contents in the work tree match the contents in the
\r
2194 index. This option defaults to true. Note that this
\r
2195 affects only <emphasis>git diff</emphasis> Porcelain, and not lower level
\r
2196 <emphasis>diff</emphasis> commands such as <emphasis>git diff-files</emphasis>.
\r
2206 A comma separated list of <emphasis>--dirstat</emphasis> parameters specifying the
\r
2207 default behavior of the <emphasis>--dirstat</emphasis> option to <xref linkend="git-diff(1)" />`
\r
2208 and friends. The defaults can be overridden on the command line
\r
2209 (using <emphasis>--dirstat=<param1,param2,...></emphasis>). The fallback defaults
\r
2210 (when not changed by <emphasis>diff.dirstat</emphasis>) are <emphasis>changes,noncumulative,3</emphasis>.
\r
2211 The following parameters are available:
\r
2216 <emphasis>changes</emphasis>
\r
2220 Compute the dirstat numbers by counting the lines that have been
\r
2221 removed from the source, or added to the destination. This ignores
\r
2222 the amount of pure code movements within a file. In other words,
\r
2223 rearranging lines in a file is not counted as much as other changes.
\r
2224 This is the default behavior when no parameter is given.
\r
2230 <emphasis>lines</emphasis>
\r
2234 Compute the dirstat numbers by doing the regular line-based diff
\r
2235 analysis, and summing the removed/added line counts. (For binary
\r
2236 files, count 64-byte chunks instead, since binary files have no
\r
2237 natural concept of lines). This is a more expensive <emphasis>--dirstat</emphasis>
\r
2238 behavior than the <emphasis>changes</emphasis> behavior, but it does count rearranged
\r
2239 lines within a file as much as other changes. The resulting output
\r
2240 is consistent with what you get from the other <emphasis>--*stat</emphasis> options.
\r
2246 <emphasis>files</emphasis>
\r
2250 Compute the dirstat numbers by counting the number of files changed.
\r
2251 Each changed file counts equally in the dirstat analysis. This is
\r
2252 the computationally cheapest <emphasis>--dirstat</emphasis> behavior, since it does
\r
2253 not have to look at the file contents at all.
\r
2259 <emphasis>cumulative</emphasis>
\r
2263 Count changes in a child directory for the parent directory as well.
\r
2264 Note that when using <emphasis>cumulative</emphasis>, the sum of the percentages
\r
2265 reported may exceed 100%. The default (non-cumulative) behavior can
\r
2266 be specified with the <emphasis>noncumulative</emphasis> parameter.
\r
2276 An integer parameter specifies a cut-off percent (3% by default).
\r
2277 Directories contributing less than this percentage of the changes
\r
2278 are not shown in the output.
\r
2283 <simpara>Example: The following will count changed files, while ignoring
\r
2284 directories with less than 10% of the total amount of changed files,
\r
2285 and accumulating child directory counts in the parent directories:
\r
2286 <emphasis>files,10,cumulative</emphasis>.</simpara>
\r
2291 diff.statGraphWidth
\r
2295 Limit the width of the graph part in --stat output. If set, applies
\r
2296 to all commands generating --stat output except format-patch.
\r
2306 Generate diffs with <n> lines of context instead of the default
\r
2307 of 3. This value is overridden by the -U option.
\r
2317 If this config variable is set, diff generation is not
\r
2318 performed using the internal diff machinery, but using the
\r
2319 given command. Can be overridden with the GIT_EXTERNAL_DIFF
\r
2320 environment variable. The command is called with parameters
\r
2321 as described under "git Diffs" in <xref linkend="git(1)" />. Note: if
\r
2322 you want to use an external diff program only on a subset of
\r
2323 your files, you might want to use <xref linkend="gitattributes(5)" /> instead.
\r
2329 diff.ignoreSubmodules
\r
2333 Sets the default value of --ignore-submodules. Note that this
\r
2334 affects only <emphasis>git diff</emphasis> Porcelain, and not lower level <emphasis>diff</emphasis>
\r
2335 commands such as <emphasis>git diff-files</emphasis>. <emphasis>git checkout</emphasis> also honors
\r
2336 this setting when reporting uncommitted changes.
\r
2342 diff.mnemonicprefix
\r
2346 If set, <emphasis>git diff</emphasis> uses a prefix pair that is different from the
\r
2347 standard "a/" and "b/" depending on what is being compared. When
\r
2348 this configuration is in effect, reverse diff output also swaps
\r
2349 the order of the prefixes:
\r
2354 <emphasis>git diff</emphasis>
\r
2358 compares the (i)ndex and the (w)ork tree;
\r
2364 <emphasis>git diff HEAD</emphasis>
\r
2368 compares a (c)ommit and the (w)ork tree;
\r
2374 <emphasis>git diff --cached</emphasis>
\r
2378 compares a (c)ommit and the (i)ndex;
\r
2384 <emphasis>git diff HEAD:file1 file2</emphasis>
\r
2388 compares an (o)bject and a (w)ork tree entity;
\r
2394 <emphasis>git diff --no-index a b</emphasis>
\r
2398 compares two non-git things (1) and (2).
\r
2411 If set, <emphasis>git diff</emphasis> does not show any source or destination prefix.
\r
2421 The number of files to consider when performing the copy/rename
\r
2422 detection; equivalent to the <emphasis>git diff</emphasis> option <emphasis>-l</emphasis>.
\r
2432 Tells git to detect renames. If set to any boolean value, it
\r
2433 will enable basic rename detection. If set to "copies" or
\r
2434 "copy", it will detect copies, as well.
\r
2440 diff.suppressBlankEmpty
\r
2444 A boolean to inhibit the standard behavior of printing a space
\r
2445 before each empty output line. Defaults to false.
\r
2455 Specify the format in which differences in submodules are
\r
2456 shown. The "log" format lists the commits in the range like
\r
2457 <xref linkend="git-submodule(1)" /> <emphasis>summary</emphasis> does. The "short" format
\r
2458 format just shows the names of the commits at the beginning
\r
2459 and end of the range. Defaults to short.
\r
2469 A POSIX Extended Regular Expression used to determine what is a "word"
\r
2470 when performing word-by-word difference calculations. Character
\r
2471 sequences that match the regular expression are "words", all other
\r
2472 characters are <emphasis role="strong">ignorable</emphasis> whitespace.
\r
2478 diff.<driver>.command
\r
2482 The custom diff driver command. See <xref linkend="gitattributes(5)" />
\r
2489 diff.<driver>.xfuncname
\r
2493 The regular expression that the diff driver should use to
\r
2494 recognize the hunk header. A built-in pattern may also be used.
\r
2495 See <xref linkend="gitattributes(5)" /> for details.
\r
2501 diff.<driver>.binary
\r
2505 Set this option to true to make the diff driver treat files as
\r
2506 binary. See <xref linkend="gitattributes(5)" /> for details.
\r
2512 diff.<driver>.textconv
\r
2516 The command that the diff driver should call to generate the
\r
2517 text-converted version of a file. The result of the
\r
2518 conversion is used to generate a human-readable diff. See
\r
2519 <xref linkend="gitattributes(5)" /> for details.
\r
2525 diff.<driver>.wordregex
\r
2529 The regular expression that the diff driver should use to
\r
2530 split words in a line. See <xref linkend="gitattributes(5)" /> for
\r
2537 diff.<driver>.cachetextconv
\r
2541 Set this option to true to make the diff driver cache the text
\r
2542 conversion outputs. See <xref linkend="gitattributes(5)" /> for details.
\r
2552 The diff tool to be used by <xref linkend="git-difftool(1)" />. This
\r
2553 option overrides <emphasis>merge.tool</emphasis>, and has the same valid built-in
\r
2554 values as <emphasis>merge.tool</emphasis> minus "tortoisemerge" and plus
\r
2555 "kompare". Any other value is treated as a custom diff tool,
\r
2556 and there must be a corresponding <emphasis>difftool.<tool>.cmd</emphasis>
\r
2563 difftool.<tool>.path
\r
2567 Override the path for the given tool. This is useful in case
\r
2568 your tool is not in the PATH.
\r
2574 difftool.<tool>.cmd
\r
2578 Specify the command to invoke the specified diff tool.
\r
2579 The specified command is evaluated in shell with the following
\r
2580 variables available: <emphasis>LOCAL</emphasis> is set to the name of the temporary
\r
2581 file containing the contents of the diff pre-image and <emphasis>REMOTE</emphasis>
\r
2582 is set to the name of the temporary file containing the contents
\r
2583 of the diff post-image.
\r
2593 Prompt before each invocation of the diff tool.
\r
2599 fetch.recurseSubmodules
\r
2603 This option can be either set to a boolean value or to <emphasis>on-demand</emphasis>.
\r
2604 Setting it to a boolean changes the behavior of fetch and pull to
\r
2605 unconditionally recurse into submodules when set to true or to not
\r
2606 recurse at all when set to false. When set to <emphasis>on-demand</emphasis> (the default
\r
2607 value), fetch and pull will only recurse into a populated submodule
\r
2608 when its superproject retrieves a commit that updates the submodule's
\r
2619 If it is set to true, git-fetch-pack will check all fetched
\r
2620 objects. It will abort in the case of a malformed object or a
\r
2621 broken link. The result of an abort are only dangling objects.
\r
2622 Defaults to false. If not set, the value of <emphasis>transfer.fsckObjects</emphasis>
\r
2633 If the number of objects fetched over the git native
\r
2634 transfer is below this
\r
2635 limit, then the objects will be unpacked into loose object
\r
2636 files. However if the number of received objects equals or
\r
2637 exceeds this limit then the received pack will be stored as
\r
2638 a pack, after adding any missing delta bases. Storing the
\r
2639 pack from a push can make the push operation complete faster,
\r
2640 especially on slow filesystems. If not set, the value of
\r
2641 <emphasis>transfer.unpackLimit</emphasis> is used instead.
\r
2651 Enable multipart/mixed attachments as the default for
\r
2652 <emphasis>format-patch</emphasis>. The value can also be a double quoted string
\r
2653 which will enable attachments as the default and set the
\r
2654 value as the boundary. See the --attach option in
\r
2655 <xref linkend="git-format-patch(1)" />.
\r
2665 A boolean which can enable or disable sequence numbers in patch
\r
2666 subjects. It defaults to "auto" which enables it only if there
\r
2667 is more than one patch. It can be enabled or disabled for all
\r
2668 messages by setting it to "true" or "false". See --numbered
\r
2669 option in <xref linkend="git-format-patch(1)" />.
\r
2679 Additional email headers to include in a patch to be submitted
\r
2680 by mail. See <xref linkend="git-format-patch(1)" />.
\r
2693 Additional recipients to include in a patch to be submitted
\r
2694 by mail. See the --to and --cc options in
\r
2695 <xref linkend="git-format-patch(1)" />.
\r
2701 format.subjectprefix
\r
2705 The default for format-patch is to output files with the <emphasis>[PATCH]</emphasis>
\r
2706 subject prefix. Use this variable to change that prefix.
\r
2716 The default for format-patch is to output a signature containing
\r
2717 the git version number. Use this variable to change that default.
\r
2718 Set this variable to the empty string ("") to suppress
\r
2719 signature generation.
\r
2729 The default for format-patch is to output files with the suffix
\r
2730 <emphasis>.patch</emphasis>. Use this variable to change that suffix (make sure to
\r
2731 include the dot if you want it).
\r
2741 The default pretty format for log/show/whatchanged command,
\r
2742 See <xref linkend="git-log(1)" />, <xref linkend="git-show(1)" />,
\r
2743 <xref linkend="git-whatchanged(1)" />.
\r
2753 The default threading style for <emphasis>git format-patch</emphasis>. Can be
\r
2754 a boolean value, or <emphasis>shallow</emphasis> or <emphasis>deep</emphasis>. <emphasis>shallow</emphasis> threading
\r
2755 makes every mail a reply to the head of the series,
\r
2756 where the head is chosen from the cover letter, the
\r
2757 <emphasis>--in-reply-to</emphasis>, and the first patch mail, in this order.
\r
2758 <emphasis>deep</emphasis> threading makes every mail a reply to the previous one.
\r
2759 A true boolean value is the same as <emphasis>shallow</emphasis>, and a false
\r
2760 value disables threading.
\r
2770 A boolean value which lets you enable the <emphasis>-s/--signoff</emphasis> option of
\r
2771 format-patch by default. <emphasis role="strong">Note:</emphasis> Adding the Signed-off-by: line to a
\r
2772 patch should be a conscious act and means that you certify you have
\r
2773 the rights to submit this work under the same open source license.
\r
2774 Please see the <emphasis>SubmittingPatches</emphasis> document for further discussion.
\r
2780 filter.<driver>.clean
\r
2784 The command which is used to convert the content of a worktree
\r
2785 file to a blob upon checkin. See <xref linkend="gitattributes(5)" /> for
\r
2792 filter.<driver>.smudge
\r
2796 The command which is used to convert the content of a blob
\r
2797 object to a worktree file upon checkout. See
\r
2798 <xref linkend="gitattributes(5)" /> for details.
\r
2804 gc.aggressiveWindow
\r
2808 The window size parameter used in the delta compression
\r
2809 algorithm used by <emphasis>git gc --aggressive</emphasis>. This defaults
\r
2820 When there are approximately more than this many loose
\r
2821 objects in the repository, <emphasis>git gc --auto</emphasis> will pack them.
\r
2822 Some Porcelain commands use this command to perform a
\r
2823 light-weight garbage collection from time to time. The
\r
2824 default value is 6700. Setting this to 0 disables it.
\r
2834 When there are more than this many packs that are not
\r
2835 marked with <emphasis>*.keep</emphasis> file in the repository, <emphasis>git gc
\r
2836 --auto</emphasis> consolidates them into one larger pack. The
\r
2837 default value is 50. Setting this to 0 disables it.
\r
2847 Running <emphasis>git pack-refs</emphasis> in a repository renders it
\r
2848 unclonable by Git versions prior to 1.5.1.2 over dumb
\r
2849 transports such as HTTP. This variable determines whether
\r
2850 <emphasis>git gc</emphasis> runs <emphasis>git pack-refs</emphasis>. This can be set to <emphasis>notbare</emphasis>
\r
2851 to enable it within all non-bare repos or it can be set to a
\r
2852 boolean value. The default is <emphasis>true</emphasis>.
\r
2862 When <emphasis>git gc</emphasis> is run, it will call <emphasis>prune --expire 2.weeks.ago</emphasis>.
\r
2863 Override the grace period with this config variable. The value
\r
2864 "now" may be used to disable this grace period and always prune
\r
2865 unreachable objects immediately.
\r
2874 gc.<pattern>.reflogexpire
\r
2878 <emphasis>git reflog expire</emphasis> removes reflog entries older than
\r
2879 this time; defaults to 90 days. With "<pattern>" (e.g.
\r
2880 "refs/stash") in the middle the setting applies only to
\r
2881 the refs that match the <pattern>.
\r
2887 gc.reflogexpireunreachable
\r
2890 gc.<ref>.reflogexpireunreachable
\r
2894 <emphasis>git reflog expire</emphasis> removes reflog entries older than
\r
2895 this time and are not reachable from the current tip;
\r
2896 defaults to 30 days. With "<pattern>" (e.g. "refs/stash")
\r
2897 in the middle, the setting applies only to the refs that
\r
2898 match the <pattern>.
\r
2908 Records of conflicted merge you resolved earlier are
\r
2909 kept for this many days when <emphasis>git rerere gc</emphasis> is run.
\r
2910 The default is 60 days. See <xref linkend="git-rerere(1)" />.
\r
2916 gc.rerereunresolved
\r
2920 Records of conflicted merge you have not resolved are
\r
2921 kept for this many days when <emphasis>git rerere gc</emphasis> is run.
\r
2922 The default is 15 days. See <xref linkend="git-rerere(1)" />.
\r
2928 gitcvs.commitmsgannotation
\r
2932 Append this string to each commit message. Set to empty string
\r
2933 to disable this feature. Defaults to "via git-CVS emulator".
\r
2943 Whether the CVS server interface is enabled for this repository.
\r
2944 See <xref linkend="git-cvsserver(1)" />.
\r
2954 Path to a log file where the CVS server interface well… logs
\r
2955 various stuff. See <xref linkend="git-cvsserver(1)" />.
\r
2961 gitcvs.usecrlfattr
\r
2965 If true, the server will look up the end-of-line conversion
\r
2966 attributes for files to determine the <emphasis>-k</emphasis> modes to use. If
\r
2967 the attributes force git to treat a file as text,
\r
2968 the <emphasis>-k</emphasis> mode will be left blank so CVS clients will
\r
2969 treat it as text. If they suppress text conversion, the file
\r
2970 will be set with <emphasis>-kb</emphasis> mode, which suppresses any newline munging
\r
2971 the client might otherwise do. If the attributes do not allow
\r
2972 the file type to be determined, then <emphasis>gitcvs.allbinary</emphasis> is
\r
2973 used. See <xref linkend="gitattributes(5)" />.
\r
2983 This is used if <emphasis>gitcvs.usecrlfattr</emphasis> does not resolve
\r
2984 the correct <emphasis>-kb</emphasis> mode to use. If true, all
\r
2985 unresolved files are sent to the client in
\r
2986 mode <emphasis>-kb</emphasis>. This causes the client to treat them
\r
2987 as binary files, which suppresses any newline munging it
\r
2988 otherwise might do. Alternatively, if it is set to "guess",
\r
2989 then the contents of the file are examined to decide if
\r
2990 it is binary, similar to <emphasis>core.autocrlf</emphasis>.
\r
3000 Database used by git-cvsserver to cache revision information
\r
3001 derived from the git repository. The exact meaning depends on the
\r
3002 used database driver, for SQLite (which is the default driver) this
\r
3003 is a filename. Supports variable substitution (see
\r
3004 <xref linkend="git-cvsserver(1)" /> for details). May not contain semicolons (<emphasis>;</emphasis>).
\r
3005 Default: <emphasis>%Ggitcvs.%m.sqlite</emphasis>
\r
3015 Used Perl DBI driver. You can specify any available driver
\r
3016 for this here, but it might not work. git-cvsserver is tested
\r
3017 with <emphasis>DBD::SQLite</emphasis>, reported to work with <emphasis>DBD::Pg</emphasis>, and
\r
3018 reported <emphasis role="strong">not</emphasis> to work with <emphasis>DBD::mysql</emphasis>. Experimental feature.
\r
3019 May not contain double colons (<emphasis>:</emphasis>). Default: <emphasis>SQLite</emphasis>.
\r
3020 See <xref linkend="git-cvsserver(1)" />.
\r
3026 gitcvs.dbuser, gitcvs.dbpass
\r
3030 Database user and password. Only useful if setting <emphasis>gitcvs.dbdriver</emphasis>,
\r
3031 since SQLite has no concept of database users and/or passwords.
\r
3032 <emphasis>gitcvs.dbuser</emphasis> supports variable substitution (see
\r
3033 <xref linkend="git-cvsserver(1)" /> for details).
\r
3039 gitcvs.dbTableNamePrefix
\r
3043 Database table name prefix. Prepended to the names of any
\r
3044 database tables used, allowing a single database to be used
\r
3045 for several repositories. Supports variable substitution (see
\r
3046 <xref linkend="git-cvsserver(1)" /> for details). Any non-alphabetic
\r
3047 characters will be replaced with underscores.
\r
3052 <simpara>All gitcvs variables except for <emphasis>gitcvs.usecrlfattr</emphasis> and
\r
3053 <emphasis>gitcvs.allbinary</emphasis> can also be specified as
\r
3054 <emphasis>gitcvs.<access_method>.<varname></emphasis> (where <emphasis>access_method</emphasis>
\r
3055 is one of "ext" and "pserver") to make them apply only for the given
\r
3056 access method.</simpara>
\r
3063 gitweb.description
\r
3073 See <xref linkend="gitweb(1)" /> for description.
\r
3097 gitweb.remote_heads
\r
3107 See <xref linkend="gitweb.conf(5)" /> for description.
\r
3117 If set to true, enable <emphasis>-n</emphasis> option by default.
\r
3127 Set the default matching behavior. Using a value of <emphasis>basic</emphasis>, <emphasis>extended</emphasis>,
\r
3128 <emphasis>fixed</emphasis>, or <emphasis>perl</emphasis> will enable the <emphasis>--basic-regexp</emphasis>, <emphasis>--extended-regexp</emphasis>,
\r
3129 <emphasis>--fixed-strings</emphasis>, or <emphasis>--perl-regexp</emphasis> option accordingly, while the
\r
3130 value <emphasis>default</emphasis> will return to the default matching behavior.
\r
3136 grep.extendedRegexp
\r
3140 If set to true, enable <emphasis>--extended-regexp</emphasis> option by default. This
\r
3141 option is ignored when the <emphasis>grep.patternType</emphasis> option is set to a value
\r
3142 other than <emphasis>default</emphasis>.
\r
3152 Use this custom program instead of "gpg" found on $PATH when
\r
3153 making or verifying a PGP signature. The program must support the
\r
3154 same command line interface as GPG, namely, to verify a detached
\r
3155 signature, "gpg --verify $file - <$signature" is run, and the
\r
3156 program is expected to signal a good signature by exiting with
\r
3157 code 0, and to generate an ascii-armored detached signature, the
\r
3158 standard input of "gpg -bsau $key" is fed with the contents to be
\r
3159 signed, and the program is expected to send the result to its
\r
3166 gui.commitmsgwidth
\r
3170 Defines how wide the commit message window is in the
\r
3171 <xref linkend="git-gui(1)" />. "75" is the default.
\r
3181 Specifies how many context lines should be used in calls to diff
\r
3182 made by the <xref linkend="git-gui(1)" />. The default is "5".
\r
3192 Specifies the default encoding to use for displaying of
\r
3193 file contents in <xref linkend="git-gui(1)" /> and <xref linkend="gitk(1)" />.
\r
3194 It can be overridden by setting the <emphasis>encoding</emphasis> attribute
\r
3195 for relevant files (see <xref linkend="gitattributes(5)" />).
\r
3196 If this option is not set, the tools default to the
\r
3203 gui.matchtrackingbranch
\r
3207 Determines if new branches created with <xref linkend="git-gui(1)" /> should
\r
3208 default to tracking remote branches with matching names or
\r
3209 not. Default: "false".
\r
3215 gui.newbranchtemplate
\r
3219 Is used as suggested name when creating new branches using the
\r
3220 <xref linkend="git-gui(1)" />.
\r
3226 gui.pruneduringfetch
\r
3230 "true" if <xref linkend="git-gui(1)" /> should prune remote-tracking branches when
\r
3231 performing a fetch. The default value is "false".
\r
3241 Determines if <xref linkend="git-gui(1)" /> should trust the file modification
\r
3242 timestamp or not. By default the timestamps are not trusted.
\r
3248 gui.spellingdictionary
\r
3252 Specifies the dictionary used for spell checking commit messages in
\r
3253 the <xref linkend="git-gui(1)" />. When set to "none" spell checking is turned
\r
3264 If true, <emphasis>git gui blame</emphasis> uses <emphasis>-C</emphasis> instead of <emphasis>-C -C</emphasis> for original
\r
3265 location detection. It makes blame significantly faster on huge
\r
3266 repositories at the expense of less thorough copy detection.
\r
3272 gui.copyblamethreshold
\r
3276 Specifies the threshold to use in <emphasis>git gui blame</emphasis> original location
\r
3277 detection, measured in alphanumeric characters. See the
\r
3278 <xref linkend="git-blame(1)" /> manual for more information on copy detection.
\r
3284 gui.blamehistoryctx
\r
3288 Specifies the radius of history context in days to show in
\r
3289 <xref linkend="gitk(1)" /> for the selected commit, when the <emphasis>Show History
\r
3290 Context</emphasis> menu item is invoked from <emphasis>git gui blame</emphasis>. If this
\r
3291 variable is set to zero, the whole history is shown.
\r
3297 guitool.<name>.cmd
\r
3301 Specifies the shell command line to execute when the corresponding item
\r
3302 of the <xref linkend="git-gui(1)" /> <emphasis>Tools</emphasis> menu is invoked. This option is
\r
3303 mandatory for every tool. The command is executed from the root of
\r
3304 the working directory, and in the environment it receives the name of
\r
3305 the tool as <emphasis>GIT_GUITOOL</emphasis>, the name of the currently selected file as
\r
3306 <emphasis>FILENAME</emphasis>, and the name of the current branch as <emphasis>CUR_BRANCH</emphasis> (if
\r
3307 the head is detached, <emphasis>CUR_BRANCH</emphasis> is empty).
\r
3313 guitool.<name>.needsfile
\r
3317 Run the tool only if a diff is selected in the GUI. It guarantees
\r
3318 that <emphasis>FILENAME</emphasis> is not empty.
\r
3324 guitool.<name>.noconsole
\r
3328 Run the command silently, without creating a window to display its
\r
3335 guitool.<name>.norescan
\r
3339 Don't rescan the working directory for changes after the tool
\r
3340 finishes execution.
\r
3346 guitool.<name>.confirm
\r
3350 Show a confirmation dialog before actually running the tool.
\r
3356 guitool.<name>.argprompt
\r
3360 Request a string argument from the user, and pass it to the tool
\r
3361 through the <emphasis>ARGS</emphasis> environment variable. Since requesting an
\r
3362 argument implies confirmation, the <emphasis>confirm</emphasis> option has no effect
\r
3363 if this is enabled. If the option is set to <emphasis>true</emphasis>, <emphasis>yes</emphasis>, or <emphasis>1</emphasis>,
\r
3364 the dialog uses a built-in generic prompt; otherwise the exact
\r
3365 value of the variable is used.
\r
3371 guitool.<name>.revprompt
\r
3375 Request a single valid revision from the user, and set the
\r
3376 <emphasis>REVISION</emphasis> environment variable. In other aspects this option
\r
3377 is similar to <emphasis>argprompt</emphasis>, and can be used together with it.
\r
3383 guitool.<name>.revunmerged
\r
3387 Show only unmerged branches in the <emphasis>revprompt</emphasis> subdialog.
\r
3388 This is useful for tools similar to merge or rebase, but not
\r
3389 for things like checkout or reset.
\r
3395 guitool.<name>.title
\r
3399 Specifies the title to use for the prompt dialog. The default
\r
3406 guitool.<name>.prompt
\r
3410 Specifies the general prompt string to display at the top of
\r
3411 the dialog, before subsections for <emphasis>argprompt</emphasis> and <emphasis>revprompt</emphasis>.
\r
3412 The default value includes the actual command.
\r
3422 Specify the browser that will be used to display help in the
\r
3423 <emphasis>web</emphasis> format. See <xref linkend="git-help(1)" />.
\r
3433 Override the default help format used by <xref linkend="git-help(1)" />.
\r
3434 Values <emphasis>man</emphasis>, <emphasis>info</emphasis>, <emphasis>web</emphasis> and <emphasis>html</emphasis> are supported. <emphasis>man</emphasis> is
\r
3435 the default. <emphasis>web</emphasis> and <emphasis>html</emphasis> are the same.
\r
3445 Automatically correct and execute mistyped commands after
\r
3446 waiting for the given number of deciseconds (0.1 sec). If more
\r
3447 than one command can be deduced from the entered text, nothing
\r
3448 will be executed. If the value of this option is negative,
\r
3449 the corrected command will be executed immediately. If the
\r
3450 value is 0 - the command will be just shown but not executed.
\r
3451 This is the default.
\r
3461 Override the HTTP proxy, normally configured using the <emphasis>http_proxy</emphasis>,
\r
3462 <emphasis>https_proxy</emphasis>, and <emphasis>all_proxy</emphasis> environment variables (see
\r
3463 <emphasis>curl(1)</emphasis>). This can be overridden on a per-remote basis; see
\r
3464 remote.<name>.proxy
\r
3474 File containing previously stored cookie lines which should be used
\r
3475 in the git http session, if they match the server. The file format
\r
3476 of the file to read cookies from should be plain HTTP headers or
\r
3477 the Netscape/Mozilla cookie file format (see <xref linkend="curl(1)" />).
\r
3478 NOTE that the file specified with http.cookiefile is only used as
\r
3479 input. No cookies will be stored in the file.
\r
3489 Whether to verify the SSL certificate when fetching or pushing
\r
3490 over HTTPS. Can be overridden by the <emphasis>GIT_SSL_NO_VERIFY</emphasis> environment
\r
3501 File containing the SSL certificate when fetching or pushing
\r
3502 over HTTPS. Can be overridden by the <emphasis>GIT_SSL_CERT</emphasis> environment
\r
3513 File containing the SSL private key when fetching or pushing
\r
3514 over HTTPS. Can be overridden by the <emphasis>GIT_SSL_KEY</emphasis> environment
\r
3521 http.sslCertPasswordProtected
\r
3525 Enable git's password prompt for the SSL certificate. Otherwise
\r
3526 OpenSSL will prompt the user, possibly many times, if the
\r
3527 certificate or private key is encrypted. Can be overridden by the
\r
3528 <emphasis>GIT_SSL_CERT_PASSWORD_PROTECTED</emphasis> environment variable.
\r
3538 File containing the certificates to verify the peer with when
\r
3539 fetching or pushing over HTTPS. Can be overridden by the
\r
3540 <emphasis>GIT_SSL_CAINFO</emphasis> environment variable.
\r
3550 Path containing files with the CA certificates to verify the peer
\r
3551 with when fetching or pushing over HTTPS. Can be overridden
\r
3552 by the <emphasis>GIT_SSL_CAPATH</emphasis> environment variable.
\r
3562 How many HTTP requests to launch in parallel. Can be overridden
\r
3563 by the <emphasis>GIT_HTTP_MAX_REQUESTS</emphasis> environment variable. Default is 5.
\r
3573 The number of curl sessions (counted across slots) to be kept across
\r
3574 requests. They will not be ended with curl_easy_cleanup() until
\r
3575 http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this
\r
3576 value will be capped at 1. Defaults to 1.
\r
3586 Maximum size in bytes of the buffer used by smart HTTP
\r
3587 transports when POSTing data to the remote system.
\r
3588 For requests larger than this buffer size, HTTP/1.1 and
\r
3589 Transfer-Encoding: chunked is used to avoid creating a
\r
3590 massive pack file locally. Default is 1 MiB, which is
\r
3591 sufficient for most requests.
\r
3597 http.lowSpeedLimit, http.lowSpeedTime
\r
3601 If the HTTP transfer speed is less than <emphasis>http.lowSpeedLimit</emphasis>
\r
3602 for longer than <emphasis>http.lowSpeedTime</emphasis> seconds, the transfer is aborted.
\r
3603 Can be overridden by the <emphasis>GIT_HTTP_LOW_SPEED_LIMIT</emphasis> and
\r
3604 <emphasis>GIT_HTTP_LOW_SPEED_TIME</emphasis> environment variables.
\r
3614 A boolean which disables using of EPSV ftp command by curl.
\r
3615 This can helpful with some "poor" ftp servers which don't
\r
3616 support EPSV mode. Can be overridden by the <emphasis>GIT_CURL_FTP_NO_EPSV</emphasis>
\r
3617 environment variable. Default is false (curl will use EPSV).
\r
3627 The HTTP USER_AGENT string presented to an HTTP server. The default
\r
3628 value represents the version of the client git such as git/1.7.1.
\r
3629 This option allows you to override this value to a more common value
\r
3630 such as Mozilla/4.0. This may be necessary, for instance, if
\r
3631 connecting through a firewall that restricts HTTP connections to a set
\r
3632 of common USER_AGENT strings (but not including those like git/1.7.1).
\r
3633 Can be overridden by the <emphasis>GIT_HTTP_USER_AGENT</emphasis> environment variable.
\r
3639 i18n.commitEncoding
\r
3643 Character encoding the commit messages are stored in; git itself
\r
3644 does not care per se, but this information is necessary e.g. when
\r
3645 importing commits from emails or in the gitk graphical history
\r
3646 browser (and possibly at other places in the future or in other
\r
3647 porcelains). See e.g. <xref linkend="git-mailinfo(1)" />. Defaults to <emphasis>utf-8</emphasis>.
\r
3653 i18n.logOutputEncoding
\r
3657 Character encoding the commit messages are converted to when
\r
3658 running <emphasis>git log</emphasis> and friends.
\r
3668 The configuration variables in the <emphasis>imap</emphasis> section are described
\r
3669 in <xref linkend="git-imap-send(1)" />.
\r
3679 Specify the directory from which templates will be copied.
\r
3680 (See the "TEMPLATE DIRECTORY" section of <xref linkend="git-init(1)" />.)
\r
3690 Specify the program that will be used to browse your working
\r
3691 repository in gitweb. See <xref linkend="git-instaweb(1)" />.
\r
3701 The HTTP daemon command-line to start gitweb on your working
\r
3702 repository. See <xref linkend="git-instaweb(1)" />.
\r
3712 If true the web server started by <xref linkend="git-instaweb(1)" /> will
\r
3713 be bound to the local IP (127.0.0.1).
\r
3719 instaweb.modulepath
\r
3723 The default module path for <xref linkend="git-instaweb(1)" /> to use
\r
3724 instead of /usr/lib/apache2/modules. Only used if httpd
\r
3735 The port number to bind the gitweb httpd to. See
\r
3736 <xref linkend="git-instaweb(1)" />.
\r
3742 interactive.singlekey
\r
3746 In interactive commands, allow the user to provide one-letter
\r
3747 input with a single key (i.e., without hitting enter).
\r
3748 Currently this is used by the <emphasis>--patch</emphasis> mode of
\r
3749 <xref linkend="git-add(1)" />, <xref linkend="git-checkout(1)" />, <xref linkend="git-commit(1)" />,
\r
3750 <xref linkend="git-reset(1)" />, and <xref linkend="git-stash(1)" />. Note that this
\r
3751 setting is silently ignored if portable keystroke input
\r
3762 If true, makes <xref linkend="git-log(1)" />, <xref linkend="git-show(1)" />, and
\r
3763 <xref linkend="git-whatchanged(1)" /> assume <emphasis>--abbrev-commit</emphasis>. You may
\r
3764 override this option with <emphasis>--no-abbrev-commit</emphasis>.
\r
3774 Set the default date-time mode for the <emphasis>log</emphasis> command.
\r
3775 Setting a value for log.date is similar to using <emphasis>git log</emphasis>'s
\r
3776 <emphasis>--date</emphasis> option. Possible values are <emphasis>relative</emphasis>, <emphasis>local</emphasis>,
\r
3777 <emphasis>default</emphasis>, <emphasis>iso</emphasis>, <emphasis>rfc</emphasis>, and <emphasis>short</emphasis>; see <xref linkend="git-log(1)" />
\r
3788 Print out the ref names of any commits that are shown by the log
\r
3789 command. If <emphasis>short</emphasis> is specified, the ref name prefixes <emphasis>refs/heads/</emphasis>,
\r
3790 <emphasis>refs/tags/</emphasis> and <emphasis>refs/remotes/</emphasis> will not be printed. If <emphasis>full</emphasis> is
\r
3791 specified, the full ref name (including prefix) will be printed.
\r
3792 This is the same as the log commands <emphasis>--decorate</emphasis> option.
\r
3802 If true, the initial commit will be shown as a big creation event.
\r
3803 This is equivalent to a diff against an empty tree.
\r
3804 Tools like <xref linkend="git-log(1)" /> or <xref linkend="git-whatchanged(1)" />, which
\r
3805 normally hide the root commit will now show it. True by default.
\r
3815 The location of an augmenting mailmap file. The default
\r
3816 mailmap, located in the root of the repository, is loaded
\r
3817 first, then the mailmap file pointed to by this variable.
\r
3818 The location of the mailmap file may be in a repository
\r
3819 subdirectory, or somewhere outside of the repository itself.
\r
3820 See <xref linkend="git-shortlog(1)" /> and <xref linkend="git-blame(1)" />.
\r
3830 Specify the programs that may be used to display help in the
\r
3831 <emphasis>man</emphasis> format. See <xref linkend="git-help(1)" />.
\r
3837 man.<tool>.cmd
\r
3841 Specify the command to invoke the specified man viewer. The
\r
3842 specified command is evaluated in shell with the man page
\r
3843 passed as argument. (See <xref linkend="git-help(1)" />.)
\r
3849 man.<tool>.path
\r
3853 Override the path for the given tool that may be used to
\r
3854 display help in the <emphasis>man</emphasis> format. See <xref linkend="git-help(1)" />.
\r
3860 merge.conflictstyle
\r
3864 Specify the style in which conflicted hunks are written out to
\r
3865 working tree files upon merge. The default is "merge", which
\r
3866 shows a <emphasis><<<<<<<</emphasis> conflict marker, changes made by one side,
\r
3867 a <emphasis>=======</emphasis> marker, changes made by the other side, and then
\r
3868 a <emphasis>>>>>>>></emphasis> marker. An alternate style, "diff3", adds a <emphasis>|||||||</emphasis>
\r
3869 marker and the original text before the <emphasis>=======</emphasis> marker.
\r
3875 merge.defaultToUpstream
\r
3879 If merge is called without any commit argument, merge the upstream
\r
3880 branches configured for the current branch by using their last
\r
3881 observed values stored in their remote-tracking branches.
\r
3882 The values of the <emphasis>branch.<current branch>.merge</emphasis> that name the
\r
3883 branches at the remote named by <emphasis>branch.<current branch>.remote</emphasis>
\r
3884 are consulted, and then they are mapped via <emphasis>remote.<remote>.fetch</emphasis>
\r
3885 to their corresponding remote-tracking branches, and the tips of
\r
3886 these tracking branches are merged.
\r
3896 By default, git does not create an extra merge commit when merging
\r
3897 a commit that is a descendant of the current commit. Instead, the
\r
3898 tip of the current branch is fast-forwarded. When set to <emphasis>false</emphasis>,
\r
3899 this variable tells git to create an extra merge commit in such
\r
3900 a case (equivalent to giving the <emphasis>--no-ff</emphasis> option from the command
\r
3901 line). When set to <emphasis>only</emphasis>, only such fast-forward merges are
\r
3902 allowed (equivalent to giving the <emphasis>--ff-only</emphasis> option from the
\r
3913 In addition to branch names, populate the log message with at
\r
3914 most the specified number of one-line descriptions from the
\r
3915 actual commits that are being merged. Defaults to false, and
\r
3916 true is a synonym for 20.
\r
3926 The number of files to consider when performing rename detection
\r
3927 during a merge; if not specified, defaults to the value of
\r
3938 Tell git that canonical representation of files in the
\r
3939 repository has changed over time (e.g. earlier commits record
\r
3940 text files with CRLF line endings, but recent ones use LF line
\r
3941 endings). In such a repository, git can convert the data
\r
3942 recorded in commits to a canonical form before performing a
\r
3943 merge to reduce unnecessary conflicts. For more information,
\r
3944 see section "Merging branches with differing checkin/checkout
\r
3945 attributes" in <xref linkend="gitattributes(5)" />.
\r
3955 Whether to print the diffstat between ORIG_HEAD and the merge result
\r
3956 at the end of the merge. True by default.
\r
3966 Controls which merge resolution program is used by
\r
3967 <xref linkend="git-mergetool(1)" />. Valid built-in values are: "araxis",
\r
3968 "bc3", "diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld",
\r
3969 "opendiff", "p4merge", "tkdiff", "tortoisemerge", "vimdiff"
\r
3970 and "xxdiff". Any other value is treated is custom merge tool
\r
3971 and there must be a corresponding mergetool.<tool>.cmd option.
\r
3981 Controls the amount of output shown by the recursive merge
\r
3982 strategy. Level 0 outputs nothing except a final error
\r
3983 message if conflicts were detected. Level 1 outputs only
\r
3984 conflicts, 2 outputs conflicts and file changes. Level 5 and
\r
3985 above outputs debugging information. The default is level 2.
\r
3986 Can be overridden by the <emphasis>GIT_MERGE_VERBOSITY</emphasis> environment variable.
\r
3992 merge.<driver>.name
\r
3996 Defines a human-readable name for a custom low-level
\r
3997 merge driver. See <xref linkend="gitattributes(5)" /> for details.
\r
4003 merge.<driver>.driver
\r
4007 Defines the command that implements a custom low-level
\r
4008 merge driver. See <xref linkend="gitattributes(5)" /> for details.
\r
4014 merge.<driver>.recursive
\r
4018 Names a low-level merge driver to be used when
\r
4019 performing an internal merge between common ancestors.
\r
4020 See <xref linkend="gitattributes(5)" /> for details.
\r
4026 mergetool.<tool>.path
\r
4030 Override the path for the given tool. This is useful in case
\r
4031 your tool is not in the PATH.
\r
4037 mergetool.<tool>.cmd
\r
4041 Specify the command to invoke the specified merge tool. The
\r
4042 specified command is evaluated in shell with the following
\r
4043 variables available: <emphasis>BASE</emphasis> is the name of a temporary file
\r
4044 containing the common base of the files to be merged, if available;
\r
4045 <emphasis>LOCAL</emphasis> is the name of a temporary file containing the contents of
\r
4046 the file on the current branch; <emphasis>REMOTE</emphasis> is the name of a temporary
\r
4047 file containing the contents of the file from the branch being
\r
4048 merged; <emphasis>MERGED</emphasis> contains the name of the file to which the merge
\r
4049 tool should write the results of a successful merge.
\r
4055 mergetool.<tool>.trustExitCode
\r
4059 For a custom merge command, specify whether the exit code of
\r
4060 the merge command can be used to determine whether the merge was
\r
4061 successful. If this is not set to true then the merge target file
\r
4062 timestamp is checked and the merge assumed to have been successful
\r
4063 if the file has been updated, otherwise the user is prompted to
\r
4064 indicate the success of the merge.
\r
4070 mergetool.keepBackup
\r
4074 After performing a merge, the original file with conflict markers
\r
4075 can be saved as a file with a <emphasis>.orig</emphasis> extension. If this variable
\r
4076 is set to <emphasis>false</emphasis> then this file is not preserved. Defaults to
\r
4077 <emphasis>true</emphasis> (i.e. keep the backup files).
\r
4083 mergetool.keepTemporaries
\r
4087 When invoking a custom merge tool, git uses a set of temporary
\r
4088 files to pass to the tool. If the tool returns an error and this
\r
4089 variable is set to <emphasis>true</emphasis>, then these temporary files will be
\r
4090 preserved, otherwise they will be removed after the tool has
\r
4091 exited. Defaults to <emphasis>false</emphasis>.
\r
4101 Prompt before each invocation of the merge resolution program.
\r
4111 The (fully qualified) refname from which to show notes when
\r
4112 showing commit messages. The value of this variable can be set
\r
4113 to a glob, in which case notes from all matching refs will be
\r
4114 shown. You may also specify this configuration variable
\r
4115 several times. A warning will be issued for refs that do not
\r
4116 exist, but a glob that does not match any refs is silently
\r
4119 <simpara>This setting can be overridden with the <emphasis>GIT_NOTES_DISPLAY_REF</emphasis>
\r
4120 environment variable, which must be a colon separated list of refs or
\r
4122 <simpara>The effective value of "core.notesRef" (possibly overridden by
\r
4123 GIT_NOTES_REF) is also implicitly added to the list of refs to be
\r
4124 displayed.</simpara>
\r
4129 notes.rewrite.<command>
\r
4133 When rewriting commits with <command> (currently <emphasis>amend</emphasis> or
\r
4134 <emphasis>rebase</emphasis>) and this variable is set to <emphasis>true</emphasis>, git
\r
4135 automatically copies your notes from the original to the
\r
4136 rewritten commit. Defaults to <emphasis>true</emphasis>, but see
\r
4137 "notes.rewriteRef" below.
\r
4147 When copying notes during a rewrite (see the
\r
4148 "notes.rewrite.<command>" option), determines what to do if
\r
4149 the target commit already has a note. Must be one of
\r
4150 <emphasis>overwrite</emphasis>, <emphasis>concatenate</emphasis>, or <emphasis>ignore</emphasis>. Defaults to
\r
4151 <emphasis>concatenate</emphasis>.
\r
4153 <simpara>This setting can be overridden with the <emphasis>GIT_NOTES_REWRITE_MODE</emphasis>
\r
4154 environment variable.</simpara>
\r
4163 When copying notes during a rewrite, specifies the (fully
\r
4164 qualified) ref whose notes should be copied. The ref may be a
\r
4165 glob, in which case notes in all matching refs will be copied.
\r
4166 You may also specify this configuration several times.
\r
4168 <simpara>Does not have a default value; you must configure this variable to
\r
4169 enable note rewriting. Set it to <emphasis>refs/notes/commits</emphasis> to enable
\r
4170 rewriting for the default commit notes.</simpara>
\r
4171 <simpara>This setting can be overridden with the <emphasis>GIT_NOTES_REWRITE_REF</emphasis>
\r
4172 environment variable, which must be a colon separated list of refs or
\r
4182 The size of the window used by <xref linkend="git-pack-objects(1)" /> when no
\r
4183 window size is given on the command line. Defaults to 10.
\r
4193 The maximum delta depth used by <xref linkend="git-pack-objects(1)" /> when no
\r
4194 maximum depth is given on the command line. Defaults to 50.
\r
4204 The window memory size limit used by <xref linkend="git-pack-objects(1)" />
\r
4205 when no limit is given on the command line. The value can be
\r
4206 suffixed with "k", "m", or "g". Defaults to 0, meaning no
\r
4217 An integer -1..9, indicating the compression level for objects
\r
4218 in a pack file. -1 is the zlib default. 0 means no
\r
4219 compression, and 1..9 are various speed/size tradeoffs, 9 being
\r
4220 slowest. If not set, defaults to core.compression. If that is
\r
4221 not set, defaults to -1, the zlib default, which is "a default
\r
4222 compromise between speed and compression (currently equivalent
\r
4225 <simpara>Note that changing the compression level will not automatically recompress
\r
4226 all existing objects. You can force recompression by passing the -F option
\r
4227 to <xref linkend="git-repack(1)" />.</simpara>
\r
4232 pack.deltaCacheSize
\r
4236 The maximum memory in bytes used for caching deltas in
\r
4237 <xref linkend="git-pack-objects(1)" /> before writing them out to a pack.
\r
4238 This cache is used to speed up the writing object phase by not
\r
4239 having to recompute the final delta result once the best match
\r
4240 for all objects is found. Repacking large repositories on machines
\r
4241 which are tight with memory might be badly impacted by this though,
\r
4242 especially if this cache pushes the system into swapping.
\r
4243 A value of 0 means no limit. The smallest size of 1 byte may be
\r
4244 used to virtually disable this cache. Defaults to 256 MiB.
\r
4250 pack.deltaCacheLimit
\r
4254 The maximum size of a delta, that is cached in
\r
4255 <xref linkend="git-pack-objects(1)" />. This cache is used to speed up the
\r
4256 writing object phase by not having to recompute the final delta
\r
4257 result once the best match for all objects is found. Defaults to 1000.
\r
4267 Specifies the number of threads to spawn when searching for best
\r
4268 delta matches. This requires that <xref linkend="git-pack-objects(1)" />
\r
4269 be compiled with pthreads otherwise this option is ignored with a
\r
4270 warning. This is meant to reduce packing time on multiprocessor
\r
4271 machines. The required amount of memory for the delta search window
\r
4272 is however multiplied by the number of threads.
\r
4273 Specifying 0 will cause git to auto-detect the number of CPU's
\r
4274 and set the number of threads accordingly.
\r
4284 Specify the default pack index version. Valid values are 1 for
\r
4285 legacy pack index used by Git versions prior to 1.5.2, and 2 for
\r
4286 the new pack index with capabilities for packs larger than 4 GB
\r
4287 as well as proper protection against the repacking of corrupted
\r
4288 packs. Version 2 is the default. Note that version 2 is enforced
\r
4289 and this config option ignored whenever the corresponding pack is
\r
4292 <simpara>If you have an old git that does not understand the version 2 <emphasis>*.idx</emphasis> file,
\r
4293 cloning or fetching over a non native protocol (e.g. "http" and "rsync")
\r
4294 that will copy both <emphasis>*.pack</emphasis> file and corresponding <emphasis>*.idx</emphasis> file from the
\r
4295 other side may give you a repository that cannot be accessed with your
\r
4296 older version of git. If the <emphasis>*.pack</emphasis> file is smaller than 2 GB, however,
\r
4297 you can use <xref linkend="git-index-pack(1)" /> on the *.pack file to regenerate
\r
4298 the <emphasis>*.idx</emphasis> file.</simpara>
\r
4303 pack.packSizeLimit
\r
4307 The maximum size of a pack. This setting only affects
\r
4308 packing to a file when repacking, i.e. the git:// protocol
\r
4309 is unaffected. It can be overridden by the <emphasis>--max-pack-size</emphasis>
\r
4310 option of <xref linkend="git-repack(1)" />. The minimum size allowed is
\r
4311 limited to 1 MiB. The default is unlimited.
\r
4312 Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are
\r
4323 If the value is boolean, turns on or off pagination of the
\r
4324 output of a particular git subcommand when writing to a tty.
\r
4325 Otherwise, turns on pagination for the subcommand using the
\r
4326 pager specified by the value of <emphasis>pager.<cmd></emphasis>. If <emphasis>--paginate</emphasis>
\r
4327 or <emphasis>--no-pager</emphasis> is specified on the command line, it takes
\r
4328 precedence over this option. To disable pagination for all
\r
4329 commands, set <emphasis>core.pager</emphasis> or <emphasis>GIT_PAGER</emphasis> to <emphasis>cat</emphasis>.
\r
4335 pretty.<name>
\r
4339 Alias for a --pretty= format string, as specified in
\r
4340 <xref linkend="git-log(1)" />. Any aliases defined here can be used just
\r
4341 as the built-in pretty formats could. For example,
\r
4342 running <emphasis>git config pretty.changelog "format:* %H %s"</emphasis>
\r
4343 would cause the invocation <emphasis>git log --pretty=changelog</emphasis>
\r
4344 to be equivalent to running <emphasis>git log "--pretty=format:* %H %s"</emphasis>.
\r
4345 Note that an alias with the same name as a built-in format
\r
4346 will be silently ignored.
\r
4356 When true, rebase branches on top of the fetched branch, instead
\r
4357 of merging the default branch from the default remote when "git
\r
4358 pull" is run. See "branch.<name>.rebase" for setting this on a
\r
4361 <simpara><emphasis role="strong">NOTE</emphasis>: this is a possibly dangerous operation; do <emphasis role="strong">not</emphasis> use
\r
4362 it unless you understand the implications (see <xref linkend="git-rebase(1)" />
\r
4363 for details).</simpara>
\r
4372 The default merge strategy to use when pulling multiple branches
\r
4383 The default merge strategy to use when pulling a single branch.
\r
4393 Defines the action git push should take if no refspec is given
\r
4394 on the command line, no refspec is configured in the remote, and
\r
4395 no refspec is implied by any of the options given on the command
\r
4396 line. Possible values are:
\r
4401 <emphasis>nothing</emphasis> - do not push anything.
\r
4406 <emphasis>matching</emphasis> - push all branches having the same name in both ends.
\r
4407 This is for those who prepare all the branches into a publishable
\r
4408 shape and then push them out with a single command. It is not
\r
4409 appropriate for pushing into a repository shared by multiple users,
\r
4410 since locally stalled branches will attempt a non-fast forward push
\r
4411 if other users updated the branch.
\r
4413 This is currently the default, but Git 2.0 will change the default
\r
4414 to <emphasis>simple</emphasis>.
\r
4419 <emphasis>upstream</emphasis> - push the current branch to its upstream branch.
\r
4420 With this, <emphasis>git push</emphasis> will update the same remote ref as the one which
\r
4421 is merged by <emphasis>git pull</emphasis>, making <emphasis>push</emphasis> and <emphasis>pull</emphasis> symmetrical.
\r
4422 See "branch.<name>.merge" for how to configure the upstream branch.
\r
4427 <emphasis>simple</emphasis> - like <emphasis>upstream</emphasis>, but refuses to push if the upstream
\r
4428 branch's name is different from the local one. This is the safest
\r
4429 option and is well-suited for beginners. It will become the default
\r
4435 <emphasis>current</emphasis> - push the current branch to a branch of the same name.
\r
4439 <simpara>The <emphasis>simple</emphasis>, <emphasis>current</emphasis> and <emphasis>upstream</emphasis> modes are for those who want to
\r
4440 push out a single branch after finishing work, even when the other
\r
4441 branches are not yet ready to be pushed out. If you are working with
\r
4442 other people to push into the same shared repository, you would want
\r
4443 to use one of these.</simpara>
\r
4452 Whether to show a diffstat of what changed upstream since the last
\r
4453 rebase. False by default.
\r
4463 If set to true enable <emphasis>--autosquash</emphasis> option by default.
\r
4473 By default, git-receive-pack will run "git-gc --auto" after
\r
4474 receiving data from git-push and updating refs. You can stop
\r
4475 it by setting this variable to false.
\r
4481 receive.fsckObjects
\r
4485 If it is set to true, git-receive-pack will check all received
\r
4486 objects. It will abort in the case of a malformed object or a
\r
4487 broken link. The result of an abort are only dangling objects.
\r
4488 Defaults to false. If not set, the value of <emphasis>transfer.fsckObjects</emphasis>
\r
4495 receive.unpackLimit
\r
4499 If the number of objects received in a push is below this
\r
4500 limit then the objects will be unpacked into loose object
\r
4501 files. However if the number of received objects equals or
\r
4502 exceeds this limit then the received pack will be stored as
\r
4503 a pack, after adding any missing delta bases. Storing the
\r
4504 pack from a push can make the push operation complete faster,
\r
4505 especially on slow filesystems. If not set, the value of
\r
4506 <emphasis>transfer.unpackLimit</emphasis> is used instead.
\r
4512 receive.denyDeletes
\r
4516 If set to true, git-receive-pack will deny a ref update that deletes
\r
4517 the ref. Use this to prevent such a ref deletion via a push.
\r
4523 receive.denyDeleteCurrent
\r
4527 If set to true, git-receive-pack will deny a ref update that
\r
4528 deletes the currently checked out branch of a non-bare repository.
\r
4534 receive.denyCurrentBranch
\r
4538 If set to true or "refuse", git-receive-pack will deny a ref update
\r
4539 to the currently checked out branch of a non-bare repository.
\r
4540 Such a push is potentially dangerous because it brings the HEAD
\r
4541 out of sync with the index and working tree. If set to "warn",
\r
4542 print a warning of such a push to stderr, but allow the push to
\r
4543 proceed. If set to false or "ignore", allow such pushes with no
\r
4544 message. Defaults to "refuse".
\r
4550 receive.denyNonFastForwards
\r
4554 If set to true, git-receive-pack will deny a ref update which is
\r
4555 not a fast-forward. Use this to prevent such an update via a push,
\r
4556 even if that push is forced. This configuration variable is
\r
4557 set when initializing a shared repository.
\r
4563 receive.updateserverinfo
\r
4567 If set to true, git-receive-pack will run git-update-server-info
\r
4568 after receiving data from git-push and updating refs.
\r
4574 remote.<name>.url
\r
4578 The URL of a remote repository. See <xref linkend="git-fetch(1)" /> or
\r
4579 <xref linkend="git-push(1)" />.
\r
4585 remote.<name>.pushurl
\r
4589 The push URL of a remote repository. See <xref linkend="git-push(1)" />.
\r
4595 remote.<name>.proxy
\r
4599 For remotes that require curl (http, https and ftp), the URL to
\r
4600 the proxy to use for that remote. Set to the empty string to
\r
4601 disable proxying for that remote.
\r
4607 remote.<name>.fetch
\r
4611 The default set of "refspec" for <xref linkend="git-fetch(1)" />. See
\r
4612 <xref linkend="git-fetch(1)" />.
\r
4618 remote.<name>.push
\r
4622 The default set of "refspec" for <xref linkend="git-push(1)" />. See
\r
4623 <xref linkend="git-push(1)" />.
\r
4629 remote.<name>.mirror
\r
4633 If true, pushing to this remote will automatically behave
\r
4634 as if the <emphasis>--mirror</emphasis> option was given on the command line.
\r
4640 remote.<name>.skipDefaultUpdate
\r
4644 If true, this remote will be skipped by default when updating
\r
4645 using <xref linkend="git-fetch(1)" /> or the <emphasis>update</emphasis> subcommand of
\r
4646 <xref linkend="git-remote(1)" />.
\r
4652 remote.<name>.skipFetchAll
\r
4656 If true, this remote will be skipped by default when updating
\r
4657 using <xref linkend="git-fetch(1)" /> or the <emphasis>update</emphasis> subcommand of
\r
4658 <xref linkend="git-remote(1)" />.
\r
4664 remote.<name>.receivepack
\r
4668 The default program to execute on the remote side when pushing. See
\r
4669 option --receive-pack of <xref linkend="git-push(1)" />.
\r
4675 remote.<name>.uploadpack
\r
4679 The default program to execute on the remote side when fetching. See
\r
4680 option --upload-pack of <xref linkend="git-fetch-pack(1)" />.
\r
4686 remote.<name>.tagopt
\r
4690 Setting this value to --no-tags disables automatic tag following when
\r
4691 fetching from remote <name>. Setting it to --tags will fetch every
\r
4692 tag from remote <name>, even if they are not reachable from remote
\r
4693 branch heads. Passing these flags directly to <xref linkend="git-fetch(1)" /> can
\r
4694 override this setting. See options --tags and --no-tags of
\r
4695 <xref linkend="git-fetch(1)" />.
\r
4701 remote.<name>.vcs
\r
4705 Setting this to a value <vcs> will cause git to interact with
\r
4706 the remote with the git-remote-<vcs> helper.
\r
4712 remotes.<group>
\r
4716 The list of remotes which are fetched by "git remote update
\r
4717 <group>". See <xref linkend="git-remote(1)" />.
\r
4723 repack.usedeltabaseoffset
\r
4727 By default, <xref linkend="git-repack(1)" /> creates packs that use
\r
4728 delta-base offset. If you need to share your repository with
\r
4729 git older than version 1.4.4, either directly or via a dumb
\r
4730 protocol such as http, then you need to set this option to
\r
4731 "false" and repack. Access from old git versions over the
\r
4732 native protocol are unaffected by this option.
\r
4742 When set to true, <emphasis>git-rerere</emphasis> updates the index with the
\r
4743 resulting contents after it cleanly resolves conflicts using
\r
4744 previously recorded resolution. Defaults to false.
\r
4754 Activate recording of resolved conflicts, so that identical
\r
4755 conflict hunks can be resolved automatically, should they be
\r
4756 encountered again. By default, <xref linkend="git-rerere(1)" /> is
\r
4757 enabled if there is an <emphasis>rr-cache</emphasis> directory under the
\r
4758 <emphasis>$GIT_DIR</emphasis>, e.g. if "rerere" was previously used in the
\r
4765 sendemail.identity
\r
4769 A configuration identity. When given, causes values in the
\r
4770 <emphasis>sendemail.<identity></emphasis> subsection to take precedence over
\r
4771 values in the <emphasis>sendemail</emphasis> section. The default identity is
\r
4772 the value of <emphasis>sendemail.identity</emphasis>.
\r
4778 sendemail.smtpencryption
\r
4782 See <xref linkend="git-send-email(1)" /> for description. Note that this
\r
4783 setting is not subject to the <emphasis>identity</emphasis> mechanism.
\r
4793 Deprecated alias for <emphasis>sendemail.smtpencryption = ssl</emphasis>.
\r
4799 sendemail.<identity>.*
\r
4803 Identity-specific versions of the <emphasis>sendemail.*</emphasis> parameters
\r
4804 found below, taking precedence over those when the this
\r
4805 identity is selected, through command-line or
\r
4806 <emphasis>sendemail.identity</emphasis>.
\r
4812 sendemail.aliasesfile
\r
4815 sendemail.aliasfiletype
\r
4827 sendemail.chainreplyto
\r
4833 sendemail.envelopesender
\r
4839 sendemail.multiedit
\r
4842 sendemail.signedoffbycc
\r
4845 sendemail.smtppass
\r
4848 sendemail.suppresscc
\r
4851 sendemail.suppressfrom
\r
4857 sendemail.smtpdomain
\r
4860 sendemail.smtpserver
\r
4863 sendemail.smtpserverport
\r
4866 sendemail.smtpserveroption
\r
4869 sendemail.smtpuser
\r
4875 sendemail.validate
\r
4879 See <xref linkend="git-send-email(1)" /> for description.
\r
4885 sendemail.signedoffcc
\r
4889 Deprecated alias for <emphasis>sendemail.signedoffbycc</emphasis>.
\r
4895 showbranch.default
\r
4899 The default set of branches for <xref linkend="git-show-branch(1)" />.
\r
4900 See <xref linkend="git-show-branch(1)" />.
\r
4906 status.relativePaths
\r
4910 By default, <xref linkend="git-status(1)" /> shows paths relative to the
\r
4911 current directory. Setting this variable to <emphasis>false</emphasis> shows paths
\r
4912 relative to the repository root (this was the default for git
\r
4919 status.showUntrackedFiles
\r
4923 By default, <xref linkend="git-status(1)" /> and <xref linkend="git-commit(1)" /> show
\r
4924 files which are not currently tracked by Git. Directories which
\r
4925 contain only untracked files, are shown with the directory name
\r
4926 only. Showing untracked files means that Git needs to lstat() all
\r
4927 all the files in the whole repository, which might be slow on some
\r
4928 systems. So, this variable controls how the commands displays
\r
4929 the untracked files. Possible values are:
\r
4934 <emphasis>no</emphasis> - Show no untracked files.
\r
4939 <emphasis>normal</emphasis> - Show untracked files and directories.
\r
4944 <emphasis>all</emphasis> - Show also individual files in untracked directories.
\r
4948 <simpara>If this variable is not specified, it defaults to <emphasis>normal</emphasis>.
\r
4949 This variable can be overridden with the -u|--untracked-files option
\r
4950 of <xref linkend="git-status(1)" /> and <xref linkend="git-commit(1)" />.</simpara>
\r
4955 status.submodulesummary
\r
4959 Defaults to false.
\r
4960 If this is set to a non zero number or true (identical to -1 or an
\r
4961 unlimited number), the submodule summary will be enabled and a
\r
4962 summary of commits for modified submodules will be shown (see
\r
4963 --summary-limit option of <xref linkend="git-submodule(1)" />).
\r
4969 submodule.<name>.path
\r
4972 submodule.<name>.url
\r
4975 submodule.<name>.update
\r
4979 The path within this project, URL, and the updating strategy
\r
4980 for a submodule. These variables are initially populated
\r
4981 by <emphasis>git submodule init</emphasis>; edit them to override the
\r
4982 URL and other values found in the <emphasis>.gitmodules</emphasis> file. See
\r
4983 <xref linkend="git-submodule(1)" /> and <xref linkend="gitmodules(5)" /> for details.
\r
4989 submodule.<name>.fetchRecurseSubmodules
\r
4993 This option can be used to control recursive fetching of this
\r
4994 submodule. It can be overridden by using the --[no-]recurse-submodules
\r
4995 command line option to "git fetch" and "git pull".
\r
4996 This setting will override that from in the <xref linkend="gitmodules(5)" />
\r
5003 submodule.<name>.ignore
\r
5007 Defines under what circumstances "git status" and the diff family show
\r
5008 a submodule as modified. When set to "all", it will never be considered
\r
5009 modified, "dirty" will ignore all changes to the submodules work tree and
\r
5010 takes only differences between the HEAD of the submodule and the commit
\r
5011 recorded in the superproject into account. "untracked" will additionally
\r
5012 let submodules with modified tracked files in their work tree show up.
\r
5013 Using "none" (the default when this option is not set) also shows
\r
5014 submodules that have untracked files in their work tree as changed.
\r
5015 This setting overrides any setting made in .gitmodules for this submodule,
\r
5016 both settings can be overridden on the command line by using the
\r
5017 "--ignore-submodules" option.
\r
5027 This variable can be used to restrict the permission bits of
\r
5028 tar archive entries. The default is 0002, which turns off the
\r
5029 world write bit. The special value "user" indicates that the
\r
5030 archiving user's umask will be used instead. See umask(2) and
\r
5031 <xref linkend="git-archive(1)" />.
\r
5037 transfer.fsckObjects
\r
5041 When <emphasis>fetch.fsckObjects</emphasis> or <emphasis>receive.fsckObjects</emphasis> are
\r
5042 not set, the value of this variable is used instead.
\r
5043 Defaults to false.
\r
5049 transfer.unpackLimit
\r
5053 When <emphasis>fetch.unpackLimit</emphasis> or <emphasis>receive.unpackLimit</emphasis> are
\r
5054 not set, the value of this variable is used instead.
\r
5055 The default value is 100.
\r
5061 url.<base>.insteadOf
\r
5065 Any URL that starts with this value will be rewritten to
\r
5066 start, instead, with <base>. In cases where some site serves a
\r
5067 large number of repositories, and serves them with multiple
\r
5068 access methods, and some users need to use different access
\r
5069 methods, this feature allows people to specify any of the
\r
5070 equivalent URLs and have git automatically rewrite the URL to
\r
5071 the best alternative for the particular user, even for a
\r
5072 never-before-seen repository on the site. When more than one
\r
5073 insteadOf strings match a given URL, the longest match is used.
\r
5079 url.<base>.pushInsteadOf
\r
5083 Any URL that starts with this value will not be pushed to;
\r
5084 instead, it will be rewritten to start with <base>, and the
\r
5085 resulting URL will be pushed to. In cases where some site serves
\r
5086 a large number of repositories, and serves them with multiple
\r
5087 access methods, some of which do not allow push, this feature
\r
5088 allows people to specify a pull-only URL and have git
\r
5089 automatically use an appropriate URL to push, even for a
\r
5090 never-before-seen repository on the site. When more than one
\r
5091 pushInsteadOf strings match a given URL, the longest match is
\r
5092 used. If a remote has an explicit pushurl, git will ignore this
\r
5093 setting for that remote.
\r
5103 Your email address to be recorded in any newly created commits.
\r
5104 Can be overridden by the <emphasis>GIT_AUTHOR_EMAIL</emphasis>, <emphasis>GIT_COMMITTER_EMAIL</emphasis>, and
\r
5105 <emphasis>EMAIL</emphasis> environment variables. See <xref linkend="git-commit-tree(1)" />.
\r
5115 Your full name to be recorded in any newly created commits.
\r
5116 Can be overridden by the <emphasis>GIT_AUTHOR_NAME</emphasis> and <emphasis>GIT_COMMITTER_NAME</emphasis>
\r
5117 environment variables. See <xref linkend="git-commit-tree(1)" />.
\r
5127 If <xref linkend="git-tag(1)" /> is not selecting the key you want it to
\r
5128 automatically when creating a signed tag, you can override the
\r
5129 default selection with this variable. This option is passed
\r
5130 unchanged to gpg's --local-user parameter, so you may specify a key
\r
5131 using any method that gpg supports.
\r
5141 Specify a web browser that may be used by some commands.
\r
5142 Currently only <xref linkend="git-instaweb(1)" /> and <xref linkend="git-help(1)" />
\r
5150 <simplesect id="git-config(1)__git">
\r
5151 <title>GIT</title>
\r
5152 <simpara>Part of the <xref linkend="git(1)" /> suite</simpara>
\r