1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
\r
4 <article lang="en" id="git-config(1)">
\r
6 <title>git-config(1)</title>
\r
8 <primary>git-config(1)</primary>
\r
11 <simplesect id="_name">
\r
13 <simpara>git-config - Get and set repository or global options</simpara>
\r
15 <simplesect id="_synopsis">
\r
16 <title>SYNOPSIS</title>
\r
18 <literallayout><emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] name [value [value_regex]]
\r
19 <emphasis>git config</emphasis> [<file-option>] [type] --add name value
\r
20 <emphasis>git config</emphasis> [<file-option>] [type] --replace-all name [value [value_regex]]
\r
21 <emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] --get name [value_regex]
\r
22 <emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] --get-all name [value_regex]
\r
23 <emphasis>git config</emphasis> [<file-option>] [type] [-z|--null] --get-regexp name_regex [value_regex]
\r
24 <emphasis>git config</emphasis> [<file-option>] --unset name [value_regex]
\r
25 <emphasis>git config</emphasis> [<file-option>] --unset-all name [value_regex]
\r
26 <emphasis>git config</emphasis> [<file-option>] --rename-section old_name new_name
\r
27 <emphasis>git config</emphasis> [<file-option>] --remove-section name
\r
28 <emphasis>git config</emphasis> [<file-option>] [-z|--null] -l | --list
\r
29 <emphasis>git config</emphasis> [<file-option>] --get-color name [default]
\r
30 <emphasis>git config</emphasis> [<file-option>] --get-colorbool name [stdout-is-tty]</literallayout>
\r
33 <simplesect id="_description">
\r
34 <title>DESCRIPTION</title>
\r
35 <simpara>You can query/set/replace/unset options with this command. The name is
\r
36 actually the section and the key separated by a dot, and the value will be
\r
38 <simpara>Multiple lines can be added to an option by using the <emphasis>--add</emphasis> option.
\r
39 If you want to update or unset an option which can occur on multiple
\r
40 lines, a POSIX regexp <literal>value_regex</literal> needs to be given. Only the
\r
41 existing values that match the regexp are updated or unset. If
\r
42 you want to handle the lines that do <emphasis role="strong">not</emphasis> match the regex, just
\r
43 prepend a single exclamation mark in front (see also <xref linkend="EXAMPLES"/>).</simpara>
\r
44 <simpara>The type specifier can be either <emphasis>--int</emphasis> or <emphasis>--bool</emphasis>, which will make
\r
45 <emphasis>git-config</emphasis> ensure that the variable(s) are of the given type and
\r
46 convert the value to the canonical form (simple decimal number for int,
\r
47 a "true" or "false" string for bool). If no type specifier is passed,
\r
48 no checks or transformations are performed on the value.</simpara>
\r
49 <simpara>The file-option can be one of <emphasis>--system</emphasis>, <emphasis>--global</emphasis> or <emphasis>--file</emphasis>
\r
50 which specify where the values will be read from or written to.
\r
51 The default is to assume the config file of the current repository,
\r
52 .git/config unless defined otherwise with GIT_DIR and GIT_CONFIG
\r
53 (see <xref linkend="FILES"/>).</simpara>
\r
54 <simpara>This command will fail if:</simpara>
\r
55 <orderedlist numeration="arabic">
\r
58 The config file is invalid,
\r
63 Can not write to the config file,
\r
68 no section was provided,
\r
73 the section or key is invalid,
\r
78 you try to unset an option which does not exist,
\r
83 you try to unset/set an option for which multiple lines match, or
\r
88 you use <emphasis>--global</emphasis> option without $HOME being properly set.
\r
93 <simplesect id="_options">
\r
94 <title>OPTIONS</title>
\r
102 Default behavior is to replace at most one line. This replaces
\r
103 all lines matching the key (and optionally the value_regex).
\r
113 Adds a new line to the option without altering any existing
\r
114 values. This is the same as providing <emphasis>^$</emphasis> as the value_regex.
\r
124 Get the value for a given key (optionally filtered by a regex
\r
125 matching the value). Returns error code 1 if the key was not
\r
126 found and error code 2 if multiple key values were found.
\r
136 Like get, but does not fail if the number of values for the key
\r
137 is not exactly one.
\r
147 Like --get-all, but interprets the name as a regular expression.
\r
148 Also outputs the key names.
\r
158 For writing options: write to global ~/.gitconfig file rather than
\r
159 the repository .git/config.
\r
161 <simpara>For reading options: read only from global ~/.gitconfig rather than
\r
162 from all available files.</simpara>
\r
163 <simpara>See also <xref linkend="FILES"/>.</simpara>
\r
172 For writing options: write to system-wide $(prefix)/etc/gitconfig
\r
173 rather than the repository .git/config.
\r
175 <simpara>For reading options: read only from system-wide $(prefix)/etc/gitconfig
\r
176 rather than from all available files.</simpara>
\r
177 <simpara>See also <xref linkend="FILES"/>.</simpara>
\r
189 Use the given config file instead of the one specified by GIT_CONFIG.
\r
199 Remove the given section from the configuration file.
\r
209 Rename the given section to a new name.
\r
219 Remove the line matching the key from config file.
\r
229 Remove all lines matching the key from config file.
\r
242 List all variables set in config file.
\r
252 <emphasis>git-config</emphasis> will ensure that the output is "true" or "false"
\r
262 <emphasis>git-config</emphasis> will ensure that the output is a simple
\r
263 decimal number. An optional value suffix of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis>
\r
264 in the config file will cause the value to be multiplied
\r
265 by 1024, 1048576, or 1073741824 prior to output.
\r
278 For all options that output values and/or keys, always
\r
279 end values with the null character (instead of a
\r
280 newline). Use newline instead as a delimiter between
\r
281 key and value. This allows for secure parsing of the
\r
282 output without getting confused e.g. by values that
\r
283 contain line breaks.
\r
289 --get-colorbool name [stdout-is-tty]
\r
293 Find the color setting for <literal>name</literal> (e.g. <literal>color.diff</literal>) and output
\r
294 "true" or "false". <literal>stdout-is-tty</literal> should be either "true" or
\r
295 "false", and is taken into account when configuration says
\r
296 "auto". If <literal>stdout-is-tty</literal> is missing, then checks the standard
\r
297 output of the command itself, and exits with status 0 if color
\r
298 is to be used, or exits with status 1 otherwise.
\r
299 When the color setting for <literal>name</literal> is undefined, the command uses
\r
300 <literal>color.ui</literal> as fallback.
\r
306 --get-color name default
\r
310 Find the color configured for <literal>name</literal> (e.g. <literal>color.diff.new</literal>) and
\r
311 output it as the ANSI color escape sequence to the standard
\r
312 output. The optional <literal>default</literal> parameter is used instead, if
\r
313 there is no color configured for <literal>name</literal>.
\r
319 <simplesect id="FILES">
\r
320 <title>FILES</title>
\r
321 <simpara>If not set explicitly with <emphasis>--file</emphasis>, there are three files where
\r
322 <emphasis>git-config</emphasis> will search for configuration options:</simpara>
\r
330 Repository specific configuration file. (The filename is
\r
331 of course relative to the repository root, not the working
\r
342 User-specific configuration file. Also called "global"
\r
343 configuration file.
\r
349 $(prefix)/etc/gitconfig
\r
353 System-wide configuration file.
\r
358 <simpara>If no further options are given, all reading options will read all of these
\r
359 files that are available. If the global or the system-wide configuration
\r
360 file are not available they will be ignored. If the repository configuration
\r
361 file is not available or readable, <emphasis>git-config</emphasis> will exit with a non-zero
\r
362 error code. However, in neither case will an error message be issued.</simpara>
\r
363 <simpara>All writing options will per default write to the repository specific
\r
364 configuration file. Note that this also affects options like <emphasis>--replace-all</emphasis>
\r
365 and <emphasis>--unset</emphasis>. <emphasis role="strong"><emphasis>git-config</emphasis> will only ever change one file at a time</emphasis>.</simpara>
\r
366 <simpara>You can override these rules either by command line options or by environment
\r
367 variables. The <emphasis>--global</emphasis> and the <emphasis>--system</emphasis> options will limit the file used
\r
368 to the global or system-wide file respectively. The GIT_CONFIG environment
\r
369 variable has a similar effect, but you can specify any filename you want.</simpara>
\r
371 <simplesect id="_environment">
\r
372 <title>ENVIRONMENT</title>
\r
380 Take the configuration from the given file instead of .git/config.
\r
381 Using the "--global" option forces this to ~/.gitconfig. Using the
\r
382 "--system" option forces this to $(prefix)/etc/gitconfig.
\r
387 <simpara>See also <xref linkend="FILES"/>.</simpara>
\r
389 <simplesect id="EXAMPLES">
\r
390 <title>EXAMPLES</title>
\r
391 <simpara>Given a .git/config like this:</simpara>
\r
392 <literallayout class="monospaced">#
\r
393 # This is the config file, and
\r
394 # a '#' or ';' character indicates
\r
397 <literallayout class="monospaced">; core variables
\r
399 ; Don't trust file modes
\r
400 filemode = false</literallayout>
\r
401 <literallayout class="monospaced">; Our diff algorithm
\r
403 external = /usr/local/bin/diff-wrapper
\r
404 renames = true</literallayout>
\r
405 <literallayout class="monospaced">; Proxy settings
\r
407 gitproxy="proxy-command" for kernel.org
\r
408 gitproxy=default-proxy ; for all the rest</literallayout>
\r
409 <simpara>you can set the filemode to true with</simpara>
\r
410 <literallayout>% git config core.filemode true</literallayout>
\r
411 <simpara>The hypothetical proxy command entries actually have a postfix to discern
\r
412 what URL they apply to. Here is how to change the entry for kernel.org
\r
413 to "ssh".</simpara>
\r
414 <literallayout>% git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</literallayout>
\r
415 <simpara>This makes sure that only the key/value pair for kernel.org is replaced.</simpara>
\r
416 <simpara>To delete the entry for renames, do</simpara>
\r
417 <literallayout>% git config --unset diff.renames</literallayout>
\r
418 <simpara>If you want to delete an entry for a multivar (like core.gitproxy above),
\r
419 you have to provide a regex matching the value of exactly one line.</simpara>
\r
420 <simpara>To query the value for a given key, do</simpara>
\r
421 <literallayout>% git config --get core.filemode</literallayout>
\r
422 <simpara>or</simpara>
\r
423 <literallayout>% git config core.filemode</literallayout>
\r
424 <simpara>or, to query a multivar:</simpara>
\r
425 <literallayout>% git config --get core.gitproxy "for kernel.org$"</literallayout>
\r
426 <simpara>If you want to know all the values for a multivar, do:</simpara>
\r
427 <literallayout>% git config --get-all core.gitproxy</literallayout>
\r
428 <simpara>If you like to live dangerously, you can replace <emphasis role="strong">all</emphasis> core.gitproxy by a
\r
429 new one with</simpara>
\r
430 <literallayout>% git config --replace-all core.gitproxy ssh</literallayout>
\r
431 <simpara>However, if you really only want to replace the line for the default proxy,
\r
432 i.e. the one without a "for …" postfix, do something like this:</simpara>
\r
433 <literallayout>% git config core.gitproxy ssh '! for '</literallayout>
\r
434 <simpara>To actually match only values with an exclamation mark, you have to</simpara>
\r
435 <literallayout>% git config section.key value '[!]'</literallayout>
\r
436 <simpara>To add a new proxy, without altering any of the existing ones, use</simpara>
\r
437 <literallayout>% git config core.gitproxy '"proxy-command" for example.com'</literallayout>
\r
438 <simpara>An example to use customized color from the configuration in your
\r
440 <literallayout>#!/bin/sh
\r
441 WS=$(git config --get-color color.diff.whitespace "blue reverse")
\r
442 RESET=$(git config --get-color "" "reset")
\r
443 echo "${WS}your whitespace color or blue reverse${RESET}"</literallayout>
\r
445 <simplesect id="_configuration_file">
\r
446 <title>CONFIGURATION FILE</title>
\r
447 <simpara>The git configuration file contains a number of variables that affect
\r
448 the git command’s behavior. <literal>.git/config</literal> file for each repository
\r
449 is used to store the information for that repository, and
\r
450 <literal>$HOME/.gitconfig</literal> is used to store per user information to give
\r
451 fallback values for <literal>.git/config</literal> file. The file <literal>/etc/gitconfig</literal>
\r
452 can be used to store system-wide defaults.</simpara>
\r
453 <simpara>They can be used by both the git plumbing
\r
454 and the porcelains. The variables are divided into sections, where
\r
455 in the fully qualified variable name the variable itself is the last
\r
456 dot-separated segment and the section name is everything before the last
\r
457 dot. The variable names are case-insensitive and only alphanumeric
\r
458 characters are allowed. Some variables may appear multiple times.</simpara>
\r
459 <simplesect id="_syntax">
\r
460 <title>Syntax</title>
\r
461 <simpara>The syntax is fairly flexible and permissive; whitespaces are mostly
\r
462 ignored. The <emphasis>#</emphasis> and <emphasis>;</emphasis> characters begin comments to the end of line,
\r
463 blank lines are ignored.</simpara>
\r
464 <simpara>The file consists of sections and variables. A section begins with
\r
465 the name of the section in square brackets and continues until the next
\r
466 section begins. Section names are not case sensitive. Only alphanumeric
\r
467 characters, <emphasis><literal>-</literal></emphasis> and <emphasis><literal>.</literal></emphasis> are allowed in section names. Each variable
\r
468 must belong to some section, which means that there must be section
\r
469 header before first setting of a variable.</simpara>
\r
470 <simpara>Sections can be further divided into subsections. To begin a subsection
\r
471 put its name in double quotes, separated by space from the section name,
\r
472 in the section header, like in example below:</simpara>
\r
473 <literallayout> [section "subsection"]</literallayout>
\r
474 <simpara>Subsection names can contain any characters except newline (doublequote
\r
475 <emphasis><literal>"</literal></emphasis> and backslash have to be escaped as <emphasis><literal>\"</literal></emphasis> and <emphasis><literal>\\</literal></emphasis>,
\r
476 respectively) and are case sensitive. Section header cannot span multiple
\r
477 lines. Variables may belong directly to a section or to a given subsection.
\r
478 You can have <literal>[section]</literal> if you have <literal>[section "subsection"]</literal>, but you
\r
479 don’t need to.</simpara>
\r
480 <simpara>There is also (case insensitive) alternative <literal>[section.subsection]</literal> syntax.
\r
481 In this syntax subsection names follow the same restrictions as for section
\r
483 <simpara>All the other lines are recognized as setting variables, in the form
\r
484 <emphasis>name = value</emphasis>. If there is no equal sign on the line, the entire line
\r
485 is taken as <emphasis>name</emphasis> and the variable is recognized as boolean "true".
\r
486 The variable names are case-insensitive and only alphanumeric
\r
487 characters and <emphasis><literal>-</literal></emphasis> are allowed. There can be more than one value
\r
488 for a given variable; we say then that variable is multivalued.</simpara>
\r
489 <simpara>Leading and trailing whitespace in a variable value is discarded.
\r
490 Internal whitespace within a variable value is retained verbatim.</simpara>
\r
491 <simpara>The values following the equals sign in variable assign are all either
\r
492 a string, an integer, or a boolean. Boolean values may be given as yes/no,
\r
493 0/1 or true/false. Case is not significant in boolean values, when
\r
494 converting value to the canonical form using <emphasis>--bool</emphasis> type specifier;
\r
495 <emphasis>git-config</emphasis> will ensure that the output is "true" or "false".</simpara>
\r
496 <simpara>String values may be entirely or partially enclosed in double quotes.
\r
497 You need to enclose variable value in double quotes if you want to
\r
498 preserve leading or trailing whitespace, or if variable value contains
\r
499 beginning of comment characters (if it contains <emphasis>#</emphasis> or <emphasis>;</emphasis>).
\r
500 Double quote <emphasis><literal>"</literal></emphasis> and backslash <emphasis><literal>\</literal></emphasis> characters in variable value must
\r
501 be escaped: use <emphasis><literal>\"</literal></emphasis> for <emphasis><literal>"</literal></emphasis> and <emphasis><literal>\\</literal></emphasis> for <emphasis><literal>\</literal></emphasis>.</simpara>
\r
502 <simpara>The following escape sequences (beside <emphasis><literal>\"</literal></emphasis> and <emphasis><literal>\\</literal></emphasis>) are recognized:
\r
503 <emphasis><literal>\n</literal></emphasis> for newline character (NL), <emphasis><literal>\t</literal></emphasis> for horizontal tabulation (HT, TAB)
\r
504 and <emphasis><literal>\b</literal></emphasis> for backspace (BS). No other char escape sequence, nor octal
\r
505 char sequences are valid.</simpara>
\r
506 <simpara>Variable value ending in a <emphasis><literal>\</literal></emphasis> is continued on the next line in the
\r
507 customary UNIX fashion.</simpara>
\r
508 <simpara>Some variables may require special value format.</simpara>
\r
510 <simplesect id="_example">
\r
511 <title>Example</title>
\r
512 <literallayout class="monospaced"># Core variables
\r
514 ; Don't trust file modes
\r
515 filemode = false</literallayout>
\r
516 <literallayout class="monospaced"># Our diff algorithm
\r
518 external = /usr/local/bin/diff-wrapper
\r
519 renames = true</literallayout>
\r
520 <literallayout class="monospaced">[branch "devel"]
\r
522 merge = refs/heads/devel</literallayout>
\r
523 <literallayout class="monospaced"># Proxy settings
\r
525 gitProxy="ssh" for "kernel.org"
\r
526 gitProxy=default-proxy ; for the rest</literallayout>
\r
528 <simplesect id="_variables">
\r
529 <title>Variables</title>
\r
530 <simpara>Note that this list is non-comprehensive and not necessarily complete.
\r
531 For command-specific variables, you will find a more detailed description
\r
532 in the appropriate manual page. You will find a description of non-core
\r
533 porcelain configuration variables in the respective porcelain documentation.</simpara>
\r
541 If false, the executable bit differences between the index and
\r
542 the working copy are ignored; useful on broken filesystems like FAT.
\r
543 See <xref linkend="git-update-index(1)"/>. True by default.
\r
549 core.ignoreCygwinFSTricks
\r
553 This option is only used by Cygwin implementation of Git. If false,
\r
554 the Cygwin stat() and lstat() functions are used. This may be useful
\r
555 if your repository consists of a few separate directories joined in
\r
556 one hierarchy using Cygwin mount. If true, Git uses native Win32 API
\r
557 whenever it is possible and falls back to Cygwin functions only to
\r
558 handle symbol links. The native mode is more than twice faster than
\r
559 normal Cygwin l/stat() functions. True by default, unless core.filemode
\r
560 is true, in which case ignoreCygwinFSTricks is ignored as Cygwin’s
\r
561 POSIX emulation is required to support core.filemode.
\r
571 If false, the ctime differences between the index and the
\r
572 working copy are ignored; useful when the inode change time
\r
573 is regularly modified by something outside Git (file system
\r
574 crawlers and some backup systems).
\r
575 See <xref linkend="git-update-index(1)"/>. True by default.
\r
585 The commands that output paths (e.g. <emphasis>ls-files</emphasis>,
\r
586 <emphasis>diff</emphasis>), when not given the <literal>-z</literal> option, will quote
\r
587 "unusual" characters in the pathname by enclosing the
\r
588 pathname in a double-quote pair and with backslashes the
\r
589 same way strings in C source code are quoted. If this
\r
590 variable is set to false, the bytes higher than 0x80 are
\r
591 not quoted but output as verbatim. Note that double
\r
592 quote, backslash and control characters are always
\r
593 quoted without <literal>-z</literal> regardless of the setting of this
\r
604 If true, makes git convert <literal>CRLF</literal> at the end of lines in text files to
\r
605 <literal>LF</literal> when reading from the filesystem, and convert in reverse when
\r
606 writing to the filesystem. The variable can be set to
\r
607 <emphasis>input</emphasis>, in which case the conversion happens only while
\r
608 reading from the filesystem but files are written out with
\r
609 <literal>LF</literal> at the end of lines. Currently, which paths to consider
\r
610 "text" (i.e. be subjected to the autocrlf mechanism) is
\r
611 decided purely based on the contents.
\r
621 If true, makes git check if converting <literal>CRLF</literal> as controlled by
\r
622 <literal>core.autocrlf</literal> is reversible. Git will verify if a command
\r
623 modifies a file in the work tree either directly or indirectly.
\r
624 For example, committing a file followed by checking out the
\r
625 same file should yield the original file in the work tree. If
\r
626 this is not the case for the current setting of
\r
627 <literal>core.autocrlf</literal>, git will reject the file. The variable can
\r
628 be set to "warn", in which case git will only warn about an
\r
629 irreversible conversion but continue the operation.
\r
631 <simpara>CRLF conversion bears a slight chance of corrupting data.
\r
632 autocrlf=true will convert CRLF to LF during commit and LF to
\r
633 CRLF during checkout. A file that contains a mixture of LF and
\r
634 CRLF before the commit cannot be recreated by git. For text
\r
635 files this is the right thing to do: it corrects line endings
\r
636 such that we have only LF line endings in the repository.
\r
637 But for binary files that are accidentally classified as text the
\r
638 conversion can corrupt data.</simpara>
\r
639 <simpara>If you recognize such corruption early you can easily fix it by
\r
640 setting the conversion type explicitly in .gitattributes. Right
\r
641 after committing you still have the original file in your work
\r
642 tree and this file is not yet corrupted. You can explicitly tell
\r
643 git that this file is binary and git will handle the file
\r
644 appropriately.</simpara>
\r
645 <simpara>Unfortunately, the desired effect of cleaning up text files with
\r
646 mixed line endings and the undesired effect of corrupting binary
\r
647 files cannot be distinguished. In both cases CRLFs are removed
\r
648 in an irreversible way. For text files this is the right thing
\r
649 to do because CRLFs are line endings, while for binary files
\r
650 converting CRLFs corrupts data.</simpara>
\r
651 <simpara>Note, this safety check does not mean that a checkout will generate a
\r
652 file identical to the original file for a different setting of
\r
653 <literal>core.autocrlf</literal>, but only for the current one. For example, a text
\r
654 file with <literal>LF</literal> would be accepted with <literal>core.autocrlf=input</literal> and could
\r
655 later be checked out with <literal>core.autocrlf=true</literal>, in which case the
\r
656 resulting file would contain <literal>CRLF</literal>, although the original file
\r
657 contained <literal>LF</literal>. However, in both work trees the line endings would be
\r
658 consistent, that is either all <literal>LF</literal> or all <literal>CRLF</literal>, but never mixed. A
\r
659 file with mixed line endings would be reported by the <literal>core.safecrlf</literal>
\r
660 mechanism.</simpara>
\r
669 If false, symbolic links are checked out as small plain files that
\r
670 contain the link text. <xref linkend="git-update-index(1)"/> and
\r
671 <xref linkend="git-add(1)"/> will not change the recorded type to regular
\r
672 file. Useful on filesystems like FAT that do not support
\r
673 symbolic links. True by default.
\r
683 A "proxy command" to execute (as <emphasis>command host port</emphasis>) instead
\r
684 of establishing direct connection to the remote server when
\r
685 using the git protocol for fetching. If the variable value is
\r
686 in the "COMMAND for DOMAIN" format, the command is applied only
\r
687 on hostnames ending with the specified domain string. This variable
\r
688 may be set multiple times and is matched in the given order;
\r
689 the first match wins.
\r
691 <simpara>Can be overridden by the <emphasis>GIT_PROXY_COMMAND</emphasis> environment variable
\r
692 (which always applies universally, without the special "for"
\r
693 handling).</simpara>
\r
702 If true, commands which modify both the working tree and the index
\r
703 will mark the updated paths with the "assume unchanged" bit in the
\r
704 index. These marked files are then assumed to stay unchanged in the
\r
705 working copy, until you mark them otherwise manually - Git will not
\r
706 detect the file changes by lstat() calls. This is useful on systems
\r
707 where those are very slow, such as Microsoft Windows.
\r
708 See <xref linkend="git-update-index(1)"/>.
\r
715 core.preferSymlinkRefs
\r
719 Instead of the default "symref" format for HEAD
\r
720 and other symbolic reference files, use symbolic links.
\r
721 This is sometimes needed to work with old scripts that
\r
722 expect HEAD to be a symbolic link.
\r
732 If true this repository is assumed to be <emphasis>bare</emphasis> and has no
\r
733 working directory associated with it. If this is the case a
\r
734 number of commands that require a working directory will be
\r
735 disabled, such as <xref linkend="git-add(1)"/> or <xref linkend="git-merge(1)"/>.
\r
737 <simpara>This setting is automatically guessed by <xref linkend="git-clone(1)"/> or
\r
738 <xref linkend="git-init(1)"/> when the repository was created. By default a
\r
739 repository that ends in "/.git" is assumed to be not bare (bare =
\r
740 false), while all other repositories are assumed to be bare (bare
\r
750 Set the path to the working tree. The value will not be
\r
751 used in combination with repositories found automatically in
\r
752 a .git directory (i.e. $GIT_DIR is not set).
\r
753 This can be overridden by the GIT_WORK_TREE environment
\r
754 variable and the <emphasis>--work-tree</emphasis> command line option. It can be
\r
755 a absolute path or relative path to the directory specified by
\r
756 --git-dir or GIT_DIR.
\r
757 Note: If --git-dir or GIT_DIR are specified but none of
\r
758 --work-tree, GIT_WORK_TREE and core.worktree is specified,
\r
759 the current working directory is regarded as the top directory
\r
760 of your working tree.
\r
766 core.logAllRefUpdates
\r
770 Enable the reflog. Updates to a ref <ref> is logged to the file
\r
771 "$GIT_DIR/logs/<ref>", by appending the new and old
\r
772 SHA1, the date/time and the reason of the update, but
\r
773 only when the file exists. If this configuration
\r
774 variable is set to true, missing "$GIT_DIR/logs/<ref>"
\r
775 file is automatically created for branch heads.
\r
777 <simpara>This information can be used to determine what commit
\r
778 was the tip of a branch "2 days ago".</simpara>
\r
779 <simpara>This value is true by default in a repository that has
\r
780 a working directory associated with it, and false by
\r
781 default in a bare repository.</simpara>
\r
786 core.repositoryFormatVersion
\r
790 Internal variable identifying the repository format and layout
\r
797 core.sharedRepository
\r
801 When <emphasis>group</emphasis> (or <emphasis>true</emphasis>), the repository is made shareable between
\r
802 several users in a group (making sure all the files and objects are
\r
803 group-writable). When <emphasis>all</emphasis> (or <emphasis>world</emphasis> or <emphasis>everybody</emphasis>), the
\r
804 repository will be readable by all users, additionally to being
\r
805 group-shareable. When <emphasis>umask</emphasis> (or <emphasis>false</emphasis>), git will use permissions
\r
806 reported by umask(2). When <emphasis>0xxx</emphasis>, where <emphasis>0xxx</emphasis> is an octal number,
\r
807 files in the repository will have this mode value. <emphasis>0xxx</emphasis> will override
\r
808 user’s umask value, and thus, users with a safe umask (0077) can use
\r
809 this option. Examples: <emphasis>0660</emphasis> is equivalent to <emphasis>group</emphasis>. <emphasis>0640</emphasis> is a
\r
810 repository that is group-readable but not group-writable.
\r
811 See <xref linkend="git-init(1)"/>. False by default.
\r
817 core.warnAmbiguousRefs
\r
821 If true, git will warn you if the ref name you passed it is ambiguous
\r
822 and might match multiple refs in the .git/refs/ tree. True by default.
\r
832 An integer -1..9, indicating a default compression level.
\r
833 -1 is the zlib default. 0 means no compression,
\r
834 and 1..9 are various speed/size tradeoffs, 9 being slowest.
\r
835 If set, this provides a default to other compression variables,
\r
836 such as <emphasis>core.loosecompression</emphasis> and <emphasis>pack.compression</emphasis>.
\r
842 core.loosecompression
\r
846 An integer -1..9, indicating the compression level for objects that
\r
847 are not in a pack file. -1 is the zlib default. 0 means no
\r
848 compression, and 1..9 are various speed/size tradeoffs, 9 being
\r
849 slowest. If not set, defaults to core.compression. If that is
\r
850 not set, defaults to 1 (best speed).
\r
856 core.packedGitWindowSize
\r
860 Number of bytes of a pack file to map into memory in a
\r
861 single mapping operation. Larger window sizes may allow
\r
862 your system to process a smaller number of large pack files
\r
863 more quickly. Smaller window sizes will negatively affect
\r
864 performance due to increased calls to the operating system’s
\r
865 memory manager, but may improve performance when accessing
\r
866 a large number of large pack files.
\r
868 <simpara>Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
\r
869 MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
\r
870 be reasonable for all users/operating systems. You probably do
\r
871 not need to adjust this value.</simpara>
\r
872 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
877 core.packedGitLimit
\r
881 Maximum number of bytes to map simultaneously into memory
\r
882 from pack files. If Git needs to access more than this many
\r
883 bytes at once to complete an operation it will unmap existing
\r
884 regions to reclaim virtual address space within the process.
\r
886 <simpara>Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.
\r
887 This should be reasonable for all users/operating systems, except on
\r
888 the largest projects. You probably do not need to adjust this value.</simpara>
\r
889 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
894 core.deltaBaseCacheLimit
\r
898 Maximum number of bytes to reserve for caching base objects
\r
899 that multiple deltafied objects reference. By storing the
\r
900 entire decompressed base objects in a cache Git is able
\r
901 to avoid unpacking and decompressing frequently used base
\r
902 objects multiple times.
\r
904 <simpara>Default is 16 MiB on all platforms. This should be reasonable
\r
905 for all users/operating systems, except on the largest projects.
\r
906 You probably do not need to adjust this value.</simpara>
\r
907 <simpara>Common unit suffixes of <emphasis>k</emphasis>, <emphasis>m</emphasis>, or <emphasis>g</emphasis> are supported.</simpara>
\r
916 In addition to <emphasis>.gitignore</emphasis> (per-directory) and
\r
917 <emphasis>.git/info/exclude</emphasis>, git looks into this file for patterns
\r
918 of files which are not meant to be tracked. See
\r
919 <xref linkend="gitignore(5)"/>.
\r
929 Commands such as <literal>commit</literal> and <literal>tag</literal> that lets you edit
\r
930 messages by launching an editor uses the value of this
\r
931 variable when it is set, and the environment variable
\r
932 <literal>GIT_EDITOR</literal> is not set. The order of preference is
\r
933 <literal>GIT_EDITOR</literal> environment, <literal>core.editor</literal>, <literal>VISUAL</literal> and
\r
934 <literal>EDITOR</literal> environment variables and then finally <literal>vi</literal>.
\r
944 The command that git will use to paginate output. Can
\r
945 be overridden with the <literal>GIT_PAGER</literal> environment
\r
946 variable. Note that git sets the <literal>LESS</literal> environment
\r
947 variable to <literal>FRSX</literal> if it is unset when it runs the
\r
948 pager. One can change these settings by setting the
\r
949 <literal>LESS</literal> variable to some other value. Alternately,
\r
950 these settings can be overridden on a project or
\r
951 global basis by setting the <literal>core.pager</literal> option.
\r
952 Setting <literal>core.pager</literal> has no affect on the <literal>LESS</literal>
\r
953 environment variable behaviour above, so if you want
\r
954 to override git’s default settings this way, you need
\r
955 to be explicit. For example, to disable the S option
\r
956 in a backward compatible manner, set <literal>core.pager</literal>
\r
957 to "<literal>less -+$LESS -FRX</literal>". This will be passed to the
\r
958 shell by git, which will translate the final command to
\r
959 "<literal>LESS=FRSX less -+FRSX -FRX</literal>".
\r
969 A comma separated list of common whitespace problems to
\r
970 notice. <emphasis>git-diff</emphasis> will use <literal>color.diff.whitespace</literal> to
\r
971 highlight them, and <emphasis>git-apply --whitespace=error</emphasis> will
\r
972 consider them as errors. You can prefix <literal>-</literal> to disable
\r
973 any of them (e.g. <literal>-trailing-space</literal>):
\r
978 <literal>trailing-space</literal> treats trailing whitespaces at the end of the line
\r
979 as an error (enabled by default).
\r
984 <literal>space-before-tab</literal> treats a space character that appears immediately
\r
985 before a tab character in the initial indent part of the line as an
\r
986 error (enabled by default).
\r
991 <literal>indent-with-non-tab</literal> treats a line that is indented with 8 or more
\r
992 space characters as an error (not enabled by default).
\r
997 <literal>cr-at-eol</literal> treats a carriage-return at the end of line as
\r
998 part of the line terminator, i.e. with it, <literal>trailing-space</literal>
\r
999 does not trigger if the character before such a carriage-return
\r
1000 is not a whitespace (not enabled by default).
\r
1008 core.fsyncobjectfiles
\r
1012 This boolean will enable <emphasis>fsync()</emphasis> when writing object files.
\r
1014 <simpara>This is a total waste of time and effort on a filesystem that orders
\r
1015 data writes properly, but can be useful for filesystems that do not use
\r
1016 journalling (traditional UNIX filesystems) or that only journal metadata
\r
1017 and not file contents (OS X’s HFS+, or Linux ext3 with "data=writeback").</simpara>
\r
1026 Enable parallel index preload for operations like <emphasis>git diff</emphasis>
\r
1028 <simpara>This can speed up operations like <emphasis>git diff</emphasis> and <emphasis>git status</emphasis> especially
\r
1029 on filesystems like NFS that have weak caching semantics and thus
\r
1030 relatively high IO latencies. With this set to <emphasis>true</emphasis>, git will do the
\r
1031 index comparison to the filesystem data in parallel, allowing
\r
1032 overlapping IO’s.</simpara>
\r
1041 When showing commit messages, also show notes which are stored in
\r
1042 the given ref. This ref is expected to contain files named
\r
1043 after the full SHA-1 of the commit they annotate.
\r
1045 <simpara>If such a file exists in the given ref, the referenced blob is read, and
\r
1046 appended to the commit message, separated by a "Notes:" line. If the
\r
1047 given ref itself does not exist, it is not an error, but means that no
\r
1048 notes should be printed.</simpara>
\r
1049 <simpara>This setting defaults to "refs/notes/commits", and can be overridden by
\r
1050 the <literal>GIT_NOTES_REF</literal> environment variable.</simpara>
\r
1059 Command aliases for the <xref linkend="git(1)"/> command wrapper - e.g.
\r
1060 after defining "alias.last = cat-file commit HEAD", the invocation
\r
1061 "git last" is equivalent to "git cat-file commit HEAD". To avoid
\r
1062 confusion and troubles with script usage, aliases that
\r
1063 hide existing git commands are ignored. Arguments are split by
\r
1064 spaces, the usual shell quoting and escaping is supported.
\r
1065 quote pair and a backslash can be used to quote them.
\r
1067 <simpara>If the alias expansion is prefixed with an exclamation point,
\r
1068 it will be treated as a shell command. For example, defining
\r
1069 "alias.new = !gitk --all --not ORIG_HEAD", the invocation
\r
1070 "git new" is equivalent to running the shell command
\r
1071 "gitk --all --not ORIG_HEAD".</simpara>
\r
1080 Tells <emphasis>git-apply</emphasis> how to handle whitespaces, in the same way
\r
1081 as the <emphasis>--whitespace</emphasis> option. See <xref linkend="git-apply(1)"/>.
\r
1087 branch.autosetupmerge
\r
1091 Tells <emphasis>git-branch</emphasis> and <emphasis>git-checkout</emphasis> to setup new branches
\r
1092 so that <xref linkend="git-pull(1)"/> will appropriately merge from the
\r
1093 starting point branch. Note that even if this option is not set,
\r
1094 this behavior can be chosen per-branch using the <literal>--track</literal>
\r
1095 and <literal>--no-track</literal> options. The valid settings are: <literal>false</literal> — no
\r
1096 automatic setup is done; <literal>true</literal> — automatic setup is done when the
\r
1097 starting point is a remote branch; <literal>always</literal> — automatic setup is
\r
1098 done when the starting point is either a local branch or remote
\r
1099 branch. This option defaults to true.
\r
1105 branch.autosetuprebase
\r
1109 When a new branch is created with <emphasis>git-branch</emphasis> or <emphasis>git-checkout</emphasis>
\r
1110 that tracks another branch, this variable tells git to set
\r
1111 up pull to rebase instead of merge (see "branch.<name>.rebase").
\r
1112 When <literal>never</literal>, rebase is never automatically set to true.
\r
1113 When <literal>local</literal>, rebase is set to true for tracked branches of
\r
1114 other local branches.
\r
1115 When <literal>remote</literal>, rebase is set to true for tracked branches of
\r
1117 When <literal>always</literal>, rebase will be set to true for all tracking
\r
1119 See "branch.autosetupmerge" for details on how to set up a
\r
1120 branch to track another branch.
\r
1121 This option defaults to never.
\r
1127 branch.<name>.remote
\r
1131 When in branch <name>, it tells <emphasis>git-fetch</emphasis> which remote to fetch.
\r
1132 If this option is not given, <emphasis>git-fetch</emphasis> defaults to remote "origin".
\r
1138 branch.<name>.merge
\r
1142 When in branch <name>, it tells <emphasis>git-fetch</emphasis> the default
\r
1143 refspec to be marked for merging in FETCH_HEAD. The value is
\r
1144 handled like the remote part of a refspec, and must match a
\r
1145 ref which is fetched from the remote given by
\r
1146 "branch.<name>.remote".
\r
1147 The merge information is used by <emphasis>git-pull</emphasis> (which at first calls
\r
1148 <emphasis>git-fetch</emphasis>) to lookup the default branch for merging. Without
\r
1149 this option, <emphasis>git-pull</emphasis> defaults to merge the first refspec fetched.
\r
1150 Specify multiple values to get an octopus merge.
\r
1151 If you wish to setup <emphasis>git-pull</emphasis> so that it merges into <name> from
\r
1152 another branch in the local repository, you can point
\r
1153 branch.<name>.merge to the desired branch, and use the special setting
\r
1154 <literal>.</literal> (a period) for branch.<name>.remote.
\r
1160 branch.<name>.mergeoptions
\r
1164 Sets default options for merging into branch <name>. The syntax and
\r
1165 supported options are equal to that of <xref linkend="git-merge(1)"/>, but
\r
1166 option values containing whitespace characters are currently not
\r
1173 branch.<name>.rebase
\r
1177 When true, rebase the branch <name> on top of the fetched branch,
\r
1178 instead of merging the default branch from the default remote when
\r
1179 "git pull" is run.
\r
1180 <emphasis role="strong">NOTE</emphasis>: this is a possibly dangerous operation; do <emphasis role="strong">not</emphasis> use
\r
1181 it unless you understand the implications (see <xref linkend="git-rebase(1)"/>
\r
1188 browser.<tool>.cmd
\r
1192 Specify the command to invoke the specified browser. The
\r
1193 specified command is evaluated in shell with the URLs passed
\r
1194 as arguments. (See <xref linkend="git-web—browse(1)"/>.)
\r
1200 browser.<tool>.path
\r
1204 Override the path for the given tool that may be used to
\r
1205 browse HTML help (see <emphasis>-w</emphasis> option in <xref linkend="git-help(1)"/>) or a
\r
1206 working repository in gitweb (see <xref linkend="git-instaweb(1)"/>).
\r
1212 clean.requireForce
\r
1216 A boolean to make git-clean do nothing unless given -f
\r
1217 or -n. Defaults to true.
\r
1227 A boolean to enable/disable color in the output of
\r
1228 <xref linkend="git-branch(1)"/>. May be set to <literal>always</literal>,
\r
1229 <literal>false</literal> (or <literal>never</literal>) or <literal>auto</literal> (or <literal>true</literal>), in which case colors are used
\r
1230 only when the output is to a terminal. Defaults to false.
\r
1236 color.branch.<slot>
\r
1240 Use customized color for branch coloration. <literal><slot></literal> is one of
\r
1241 <literal>current</literal> (the current branch), <literal>local</literal> (a local branch),
\r
1242 <literal>remote</literal> (a tracking branch in refs/remotes/), <literal>plain</literal> (other
\r
1245 <simpara>The value for these configuration variables is a list of colors (at most
\r
1246 two) and attributes (at most one), separated by spaces. The colors
\r
1247 accepted are <literal>normal</literal>, <literal>black</literal>, <literal>red</literal>, <literal>green</literal>, <literal>yellow</literal>, <literal>blue</literal>,
\r
1248 <literal>magenta</literal>, <literal>cyan</literal> and <literal>white</literal>; the attributes are <literal>bold</literal>, <literal>dim</literal>, <literal>ul</literal>,
\r
1249 <literal>blink</literal> and <literal>reverse</literal>. The first color given is the foreground; the
\r
1250 second is the background. The position of the attribute, if any,
\r
1251 doesn’t matter.</simpara>
\r
1260 When set to <literal>always</literal>, always use colors in patch.
\r
1261 When false (or <literal>never</literal>), never. When set to <literal>true</literal> or <literal>auto</literal>, use
\r
1262 colors only when the output is to the terminal. Defaults to false.
\r
1268 color.diff.<slot>
\r
1272 Use customized color for diff colorization. <literal><slot></literal> specifies
\r
1273 which part of the patch to use the specified color, and is one
\r
1274 of <literal>plain</literal> (context text), <literal>meta</literal> (metainformation), <literal>frag</literal>
\r
1275 (hunk header), <literal>old</literal> (removed lines), <literal>new</literal> (added lines),
\r
1276 <literal>commit</literal> (commit headers), or <literal>whitespace</literal> (highlighting
\r
1277 whitespace errors). The values of these variables may be specified as
\r
1278 in color.branch.<slot>.
\r
1288 When set to <literal>always</literal>, always use colors for interactive prompts
\r
1289 and displays (such as those used by "git-add --interactive").
\r
1290 When false (or <literal>never</literal>), never. When set to <literal>true</literal> or <literal>auto</literal>, use
\r
1291 colors only when the output is to the terminal. Defaults to false.
\r
1297 color.interactive.<slot>
\r
1301 Use customized color for <emphasis>git-add --interactive</emphasis>
\r
1302 output. <literal><slot></literal> may be <literal>prompt</literal>, <literal>header</literal>, <literal>help</literal> or <literal>error</literal>, for
\r
1303 four distinct types of normal output from interactive
\r
1304 programs. The values of these variables may be specified as
\r
1305 in color.branch.<slot>.
\r
1315 A boolean to enable/disable colored output when the pager is in
\r
1316 use (default is true).
\r
1326 A boolean to enable/disable color in the output of
\r
1327 <xref linkend="git-status(1)"/>. May be set to <literal>always</literal>,
\r
1328 <literal>false</literal> (or <literal>never</literal>) or <literal>auto</literal> (or <literal>true</literal>), in which case colors are used
\r
1329 only when the output is to a terminal. Defaults to false.
\r
1335 color.status.<slot>
\r
1339 Use customized color for status colorization. <literal><slot></literal> is
\r
1340 one of <literal>header</literal> (the header text of the status message),
\r
1341 <literal>added</literal> or <literal>updated</literal> (files which are added but not committed),
\r
1342 <literal>changed</literal> (files which are changed but not added in the index),
\r
1343 <literal>untracked</literal> (files which are not tracked by git), or
\r
1344 <literal>nobranch</literal> (the color the <emphasis>no branch</emphasis> warning is shown in, defaulting
\r
1345 to red). The values of these variables may be specified as in
\r
1346 color.branch.<slot>.
\r
1356 When set to <literal>always</literal>, always use colors in all git commands which
\r
1357 are capable of colored output. When false (or <literal>never</literal>), never. When
\r
1358 set to <literal>true</literal> or <literal>auto</literal>, use colors only when the output is to the
\r
1359 terminal. When more specific variables of color.* are set, they always
\r
1360 take precedence over this setting. Defaults to false.
\r
1370 Specify a file to use as the template for new commit messages.
\r
1376 diff.autorefreshindex
\r
1380 When using <emphasis>git-diff</emphasis> to compare with work tree
\r
1381 files, do not consider stat-only change as changed.
\r
1382 Instead, silently run <literal>git update-index --refresh</literal> to
\r
1383 update the cached stat information for paths whose
\r
1384 contents in the work tree match the contents in the
\r
1385 index. This option defaults to true. Note that this
\r
1386 affects only <emphasis>git-diff</emphasis> Porcelain, and not lower level
\r
1387 <emphasis>diff</emphasis> commands, such as <emphasis>git-diff-files</emphasis>.
\r
1397 If this config variable is set, diff generation is not
\r
1398 performed using the internal diff machinery, but using the
\r
1399 given command. Can be overridden with the ‘GIT_EXTERNAL_DIFF’
\r
1400 environment variable. The command is called with parameters
\r
1401 as described under "git Diffs" in <xref linkend="git(1)"/>. Note: if
\r
1402 you want to use an external diff program only on a subset of
\r
1403 your files, you might want to use <xref linkend="gitattributes(5)"/> instead.
\r
1409 diff.mnemonicprefix
\r
1413 If set, <emphasis>git-diff</emphasis> uses a prefix pair that is different from the
\r
1414 standard "a/" and "b/" depending on what is being compared. When
\r
1415 this configuration is in effect, reverse diff output also swaps
\r
1416 the order of the prefixes:
\r
1421 <emphasis>git-diff</emphasis>
\r
1425 compares the (i)ndex and the (w)ork tree;
\r
1431 <emphasis>git-diff HEAD</emphasis>
\r
1435 compares a (c)ommit and the (w)ork tree;
\r
1441 <emphasis>git diff --cached</emphasis>
\r
1445 compares a (c)ommit and the (i)ndex;
\r
1451 <emphasis>git-diff HEAD:file1 file2</emphasis>
\r
1455 compares an (o)bject and a (w)ork tree entity;
\r
1461 <emphasis>git diff --no-index a b</emphasis>
\r
1465 compares two non-git things (1) and (2).
\r
1478 The number of files to consider when performing the copy/rename
\r
1479 detection; equivalent to the <emphasis>git-diff</emphasis> option <emphasis>-l</emphasis>.
\r
1489 Tells git to detect renames. If set to any boolean value, it
\r
1490 will enable basic rename detection. If set to "copies" or
\r
1491 "copy", it will detect copies, as well.
\r
1497 diff.suppressBlankEmpty
\r
1501 A boolean to inhibit the standard behavior of printing a space
\r
1502 before each empty output line. Defaults to false.
\r
1512 A POSIX Extended Regular Expression used to determine what is a "word"
\r
1513 when performing word-by-word difference calculations. Character
\r
1514 sequences that match the regular expression are "words", all other
\r
1515 characters are <emphasis role="strong">ignorable</emphasis> whitespace.
\r
1525 If the number of objects fetched over the git native
\r
1526 transfer is below this
\r
1527 limit, then the objects will be unpacked into loose object
\r
1528 files. However if the number of received objects equals or
\r
1529 exceeds this limit then the received pack will be stored as
\r
1530 a pack, after adding any missing delta bases. Storing the
\r
1531 pack from a push can make the push operation complete faster,
\r
1532 especially on slow filesystems. If not set, the value of
\r
1533 <literal>transfer.unpackLimit</literal> is used instead.
\r
1543 A boolean which can enable or disable sequence numbers in patch
\r
1544 subjects. It defaults to "auto" which enables it only if there
\r
1545 is more than one patch. It can be enabled or disabled for all
\r
1546 messages by setting it to "true" or "false". See --numbered
\r
1547 option in <xref linkend="git-format-patch(1)"/>.
\r
1557 Additional email headers to include in a patch to be submitted
\r
1558 by mail. See <xref linkend="git-format-patch(1)"/>.
\r
1568 The default for format-patch is to output files with the suffix
\r
1569 <literal>.patch</literal>. Use this variable to change that suffix (make sure to
\r
1570 include the dot if you want it).
\r
1580 The default pretty format for log/show/whatchanged command,
\r
1581 See <xref linkend="git-log(1)"/>, <xref linkend="git-show(1)"/>,
\r
1582 <xref linkend="git-whatchanged(1)"/>.
\r
1588 gc.aggressiveWindow
\r
1592 The window size parameter used in the delta compression
\r
1593 algorithm used by <emphasis>git-gc --aggressive</emphasis>. This defaults
\r
1604 When there are approximately more than this many loose
\r
1605 objects in the repository, <literal>git gc --auto</literal> will pack them.
\r
1606 Some Porcelain commands use this command to perform a
\r
1607 light-weight garbage collection from time to time. The
\r
1608 default value is 6700. Setting this to 0 disables it.
\r
1618 When there are more than this many packs that are not
\r
1619 marked with <literal>*.keep</literal> file in the repository, <literal>git gc
\r
1620 --auto</literal> consolidates them into one larger pack. The
\r
1621 default value is 50. Setting this to 0 disables it.
\r
1631 <emphasis>git-gc</emphasis> does not run <literal>git pack-refs</literal> in a bare repository by
\r
1632 default so that older dumb-transport clients can still fetch
\r
1633 from the repository. Setting this to <literal>true</literal> lets <emphasis>git-gc</emphasis>
\r
1634 to run <literal>git pack-refs</literal>. Setting this to <literal>false</literal> tells
\r
1635 <emphasis>git-gc</emphasis> never to run <literal>git pack-refs</literal>. The default setting is
\r
1636 <literal>notbare</literal>. Enable it only when you know you do not have to
\r
1637 support such clients. The default setting will change to <literal>true</literal>
\r
1638 at some stage, and setting this to <literal>false</literal> will continue to
\r
1639 prevent <literal>git pack-refs</literal> from being run from <emphasis>git-gc</emphasis>.
\r
1649 When <emphasis>git-gc</emphasis> is run, it will call <emphasis>prune --expire 2.weeks.ago</emphasis>.
\r
1650 Override the grace period with this config variable. The value
\r
1651 "now" may be used to disable this grace period and always prune
\r
1652 unreachable objects immediately.
\r
1662 <emphasis>git-reflog expire</emphasis> removes reflog entries older than
\r
1663 this time; defaults to 90 days.
\r
1669 gc.reflogexpireunreachable
\r
1673 <emphasis>git-reflog expire</emphasis> removes reflog entries older than
\r
1674 this time and are not reachable from the current tip;
\r
1675 defaults to 30 days.
\r
1685 Records of conflicted merge you resolved earlier are
\r
1686 kept for this many days when <emphasis>git-rerere gc</emphasis> is run.
\r
1687 The default is 60 days. See <xref linkend="git-rerere(1)"/>.
\r
1693 gc.rerereunresolved
\r
1697 Records of conflicted merge you have not resolved are
\r
1698 kept for this many days when <emphasis>git-rerere gc</emphasis> is run.
\r
1699 The default is 15 days. See <xref linkend="git-rerere(1)"/>.
\r
1705 gitcvs.commitmsgannotation
\r
1709 Append this string to each commit message. Set to empty string
\r
1710 to disable this feature. Defaults to "via git-CVS emulator".
\r
1720 Whether the CVS server interface is enabled for this repository.
\r
1721 See <xref linkend="git-cvsserver(1)"/>.
\r
1731 Path to a log file where the CVS server interface well… logs
\r
1732 various stuff. See <xref linkend="git-cvsserver(1)"/>.
\r
1738 gitcvs.usecrlfattr
\r
1742 If true, the server will look up the <literal>crlf</literal> attribute for
\r
1743 files to determine the <emphasis>-k</emphasis> modes to use. If <literal>crlf</literal> is set,
\r
1744 the <emphasis>-k</emphasis> mode will be left blank, so cvs clients will
\r
1745 treat it as text. If <literal>crlf</literal> is explicitly unset, the file
\r
1746 will be set with <emphasis>-kb</emphasis> mode, which suppresses any newline munging
\r
1747 the client might otherwise do. If <literal>crlf</literal> is not specified,
\r
1748 then <emphasis>gitcvs.allbinary</emphasis> is used. See <xref linkend="gitattributes(5)"/>.
\r
1758 This is used if <emphasis>gitcvs.usecrlfattr</emphasis> does not resolve
\r
1759 the correct <emphasis>-kb</emphasis> mode to use. If true, all
\r
1760 unresolved files are sent to the client in
\r
1761 mode <emphasis>-kb</emphasis>. This causes the client to treat them
\r
1762 as binary files, which suppresses any newline munging it
\r
1763 otherwise might do. Alternatively, if it is set to "guess",
\r
1764 then the contents of the file are examined to decide if
\r
1765 it is binary, similar to <emphasis>core.autocrlf</emphasis>.
\r
1775 Database used by git-cvsserver to cache revision information
\r
1776 derived from the git repository. The exact meaning depends on the
\r
1777 used database driver, for SQLite (which is the default driver) this
\r
1778 is a filename. Supports variable substitution (see
\r
1779 <xref linkend="git-cvsserver(1)"/> for details). May not contain semicolons (<literal>;</literal>).
\r
1780 Default: <emphasis>%Ggitcvs.%m.sqlite</emphasis>
\r
1790 Used Perl DBI driver. You can specify any available driver
\r
1791 for this here, but it might not work. git-cvsserver is tested
\r
1792 with <emphasis>DBD::SQLite</emphasis>, reported to work with <emphasis>DBD::Pg</emphasis>, and
\r
1793 reported <emphasis role="strong">not</emphasis> to work with <emphasis>DBD::mysql</emphasis>. Experimental feature.
\r
1794 May not contain double colons (<literal>:</literal>). Default: <emphasis>SQLite</emphasis>.
\r
1795 See <xref linkend="git-cvsserver(1)"/>.
\r
1801 gitcvs.dbuser, gitcvs.dbpass
\r
1805 Database user and password. Only useful if setting <emphasis>gitcvs.dbdriver</emphasis>,
\r
1806 since SQLite has no concept of database users and/or passwords.
\r
1807 <emphasis>gitcvs.dbuser</emphasis> supports variable substitution (see
\r
1808 <xref linkend="git-cvsserver(1)"/> for details).
\r
1814 gitcvs.dbTableNamePrefix
\r
1818 Database table name prefix. Prepended to the names of any
\r
1819 database tables used, allowing a single database to be used
\r
1820 for several repositories. Supports variable substitution (see
\r
1821 <xref linkend="git-cvsserver(1)"/> for details). Any non-alphabetic
\r
1822 characters will be replaced with underscores.
\r
1827 <simpara>All gitcvs variables except for <emphasis>gitcvs.usecrlfattr</emphasis> and
\r
1828 <emphasis>gitcvs.allbinary</emphasis> can also be specified as
\r
1829 <emphasis>gitcvs.<access_method>.<varname></emphasis> (where <emphasis>access_method</emphasis>
\r
1830 is one of "ext" and "pserver") to make them apply only for the given
\r
1831 access method.</simpara>
\r
1835 gui.commitmsgwidth
\r
1839 Defines how wide the commit message window is in the
\r
1840 <xref linkend="git-gui(1)"/>. "75" is the default.
\r
1850 Specifies how many context lines should be used in calls to diff
\r
1851 made by the <xref linkend="git-gui(1)"/>. The default is "5".
\r
1861 Specifies the default encoding to use for displaying of
\r
1862 file contents in <xref linkend="git-gui(1)"/> and <xref linkend="gitk(1)"/>.
\r
1863 It can be overridden by setting the <emphasis>encoding</emphasis> attribute
\r
1864 for relevant files (see <xref linkend="gitattributes(5)"/>).
\r
1865 If this option is not set, the tools default to the
\r
1872 gui.matchtrackingbranch
\r
1876 Determines if new branches created with <xref linkend="git-gui(1)"/> should
\r
1877 default to tracking remote branches with matching names or
\r
1878 not. Default: "false".
\r
1884 gui.newbranchtemplate
\r
1888 Is used as suggested name when creating new branches using the
\r
1889 <xref linkend="git-gui(1)"/>.
\r
1895 gui.pruneduringfetch
\r
1899 "true" if <xref linkend="git-gui(1)"/> should prune tracking branches when
\r
1900 performing a fetch. The default value is "false".
\r
1910 Determines if <xref linkend="git-gui(1)"/> should trust the file modification
\r
1911 timestamp or not. By default the timestamps are not trusted.
\r
1917 gui.spellingdictionary
\r
1921 Specifies the dictionary used for spell checking commit messages in
\r
1922 the <xref linkend="git-gui(1)"/>. When set to "none" spell checking is turned
\r
1933 If true, <emphasis>git gui blame</emphasis> uses <emphasis>-C</emphasis> instead of <emphasis>-C -C</emphasis> for original
\r
1934 location detection. It makes blame significantly faster on huge
\r
1935 repositories at the expense of less thorough copy detection.
\r
1941 gui.copyblamethreshold
\r
1945 Specifies the threshold to use in <emphasis>git gui blame</emphasis> original location
\r
1946 detection, measured in alphanumeric characters. See the
\r
1947 <xref linkend="git-blame(1)"/> manual for more information on copy detection.
\r
1953 gui.blamehistoryctx
\r
1957 Specifies the radius of history context in days to show in
\r
1958 <xref linkend="gitk(1)"/> for the selected commit, when the <literal>Show History
\r
1959 Context</literal> menu item is invoked from <emphasis>git gui blame</emphasis>. If this
\r
1960 variable is set to zero, the whole history is shown.
\r
1966 guitool.<name>.cmd
\r
1970 Specifies the shell command line to execute when the corresponding item
\r
1971 of the <xref linkend="git-gui(1)"/> <literal>Tools</literal> menu is invoked. This option is
\r
1972 mandatory for every tool. The command is executed from the root of
\r
1973 the working directory, and in the environment it receives the name of
\r
1974 the tool as <emphasis>GIT_GUITOOL</emphasis>, the name of the currently selected file as
\r
1975 <emphasis>FILENAME</emphasis>, and the name of the current branch as <emphasis>CUR_BRANCH</emphasis> (if
\r
1976 the head is detached, <emphasis>CUR_BRANCH</emphasis> is empty).
\r
1982 guitool.<name>.needsfile
\r
1986 Run the tool only if a diff is selected in the GUI. It guarantees
\r
1987 that <emphasis>FILENAME</emphasis> is not empty.
\r
1993 guitool.<name>.noconsole
\r
1997 Run the command silently, without creating a window to display its
\r
2004 guitool.<name>.norescan
\r
2008 Don’t rescan the working directory for changes after the tool
\r
2009 finishes execution.
\r
2015 guitool.<name>.confirm
\r
2019 Show a confirmation dialog before actually running the tool.
\r
2025 guitool.<name>.argprompt
\r
2029 Request a string argument from the user, and pass it to the tool
\r
2030 through the <emphasis>ARGS</emphasis> environment variable. Since requesting an
\r
2031 argument implies confirmation, the <emphasis>confirm</emphasis> option has no effect
\r
2032 if this is enabled. If the option is set to <emphasis>true</emphasis>, <emphasis>yes</emphasis>, or <emphasis>1</emphasis>,
\r
2033 the dialog uses a built-in generic prompt; otherwise the exact
\r
2034 value of the variable is used.
\r
2040 guitool.<name>.revprompt
\r
2044 Request a single valid revision from the user, and set the
\r
2045 <emphasis>REVISION</emphasis> environment variable. In other aspects this option
\r
2046 is similar to <emphasis>argprompt</emphasis>, and can be used together with it.
\r
2052 guitool.<name>.revunmerged
\r
2056 Show only unmerged branches in the <emphasis>revprompt</emphasis> subdialog.
\r
2057 This is useful for tools similar to merge or rebase, but not
\r
2058 for things like checkout or reset.
\r
2064 guitool.<name>.title
\r
2068 Specifies the title to use for the prompt dialog. The default
\r
2075 guitool.<name>.prompt
\r
2079 Specifies the general prompt string to display at the top of
\r
2080 the dialog, before subsections for <emphasis>argprompt</emphasis> and <emphasis>revprompt</emphasis>.
\r
2081 The default value includes the actual command.
\r
2091 Specify the browser that will be used to display help in the
\r
2092 <emphasis>web</emphasis> format. See <xref linkend="git-help(1)"/>.
\r
2102 Override the default help format used by <xref linkend="git-help(1)"/>.
\r
2103 Values <emphasis>man</emphasis>, <emphasis>info</emphasis>, <emphasis>web</emphasis> and <emphasis>html</emphasis> are supported. <emphasis>man</emphasis> is
\r
2104 the default. <emphasis>web</emphasis> and <emphasis>html</emphasis> are the same.
\r
2114 Automatically correct and execute mistyped commands after
\r
2115 waiting for the given number of deciseconds (0.1 sec). If more
\r
2116 than one command can be deduced from the entered text, nothing
\r
2117 will be executed. If the value of this option is negative,
\r
2118 the corrected command will be executed immediately. If the
\r
2119 value is 0 - the command will be just shown but not executed.
\r
2120 This is the default.
\r
2130 Override the HTTP proxy, normally configured using the <emphasis>http_proxy</emphasis>
\r
2131 environment variable (see <xref linkend="curl(1)"/>). This can be overridden
\r
2132 on a per-remote basis; see remote.<name>.proxy
\r
2142 Whether to verify the SSL certificate when fetching or pushing
\r
2143 over HTTPS. Can be overridden by the <emphasis>GIT_SSL_NO_VERIFY</emphasis> environment
\r
2154 File containing the SSL certificate when fetching or pushing
\r
2155 over HTTPS. Can be overridden by the <emphasis>GIT_SSL_CERT</emphasis> environment
\r
2166 File containing the SSL private key when fetching or pushing
\r
2167 over HTTPS. Can be overridden by the <emphasis>GIT_SSL_KEY</emphasis> environment
\r
2178 File containing the certificates to verify the peer with when
\r
2179 fetching or pushing over HTTPS. Can be overridden by the
\r
2180 <emphasis>GIT_SSL_CAINFO</emphasis> environment variable.
\r
2190 Path containing files with the CA certificates to verify the peer
\r
2191 with when fetching or pushing over HTTPS. Can be overridden
\r
2192 by the <emphasis>GIT_SSL_CAPATH</emphasis> environment variable.
\r
2202 How many HTTP requests to launch in parallel. Can be overridden
\r
2203 by the <emphasis>GIT_HTTP_MAX_REQUESTS</emphasis> environment variable. Default is 5.
\r
2209 http.lowSpeedLimit, http.lowSpeedTime
\r
2213 If the HTTP transfer speed is less than <emphasis>http.lowSpeedLimit</emphasis>
\r
2214 for longer than <emphasis>http.lowSpeedTime</emphasis> seconds, the transfer is aborted.
\r
2215 Can be overridden by the <emphasis>GIT_HTTP_LOW_SPEED_LIMIT</emphasis> and
\r
2216 <emphasis>GIT_HTTP_LOW_SPEED_TIME</emphasis> environment variables.
\r
2226 A boolean which disables using of EPSV ftp command by curl.
\r
2227 This can helpful with some "poor" ftp servers which don’t
\r
2228 support EPSV mode. Can be overridden by the <emphasis>GIT_CURL_FTP_NO_EPSV</emphasis>
\r
2229 environment variable. Default is false (curl will use EPSV).
\r
2235 i18n.commitEncoding
\r
2239 Character encoding the commit messages are stored in; git itself
\r
2240 does not care per se, but this information is necessary e.g. when
\r
2241 importing commits from emails or in the gitk graphical history
\r
2242 browser (and possibly at other places in the future or in other
\r
2243 porcelains). See e.g. <xref linkend="git-mailinfo(1)"/>. Defaults to <emphasis>utf-8</emphasis>.
\r
2249 i18n.logOutputEncoding
\r
2253 Character encoding the commit messages are converted to when
\r
2254 running <emphasis>git-log</emphasis> and friends.
\r
2264 The configuration variables in the <emphasis>imap</emphasis> section are described
\r
2265 in <xref linkend="git-imap-send(1)"/>.
\r
2275 Specify the program that will be used to browse your working
\r
2276 repository in gitweb. See <xref linkend="git-instaweb(1)"/>.
\r
2286 The HTTP daemon command-line to start gitweb on your working
\r
2287 repository. See <xref linkend="git-instaweb(1)"/>.
\r
2297 If true the web server started by <xref linkend="git-instaweb(1)"/> will
\r
2298 be bound to the local IP (127.0.0.1).
\r
2304 instaweb.modulepath
\r
2308 The module path for an apache httpd used by <xref linkend="git-instaweb(1)"/>.
\r
2318 The port number to bind the gitweb httpd to. See
\r
2319 <xref linkend="git-instaweb(1)"/>.
\r
2325 interactive.singlekey
\r
2329 In interactive programs, allow the user to provide one-letter
\r
2330 input with a single key (i.e., without hitting enter).
\r
2331 Currently this is used only by the <literal>--patch</literal> mode of
\r
2332 <xref linkend="git-add(1)"/>. Note that this setting is silently
\r
2333 ignored if portable keystroke input is not available.
\r
2343 Set default date-time mode for the log command. Setting log.date
\r
2344 value is similar to using <emphasis>git-log</emphasis>\'s --date option. The value is one of the
\r
2345 following alternatives: {relative,local,default,iso,rfc,short}.
\r
2346 See <xref linkend="git-log(1)"/>.
\r
2356 If true, the initial commit will be shown as a big creation event.
\r
2357 This is equivalent to a diff against an empty tree.
\r
2358 Tools like <xref linkend="git-log(1)"/> or <xref linkend="git-whatchanged(1)"/>, which
\r
2359 normally hide the root commit will now show it. True by default.
\r
2369 The location of an augmenting mailmap file. The default
\r
2370 mailmap, located in the root of the repository, is loaded
\r
2371 first, then the mailmap file pointed to by this variable.
\r
2372 The location of the mailmap file may be in a repository
\r
2373 subdirectory, or somewhere outside of the repository itself.
\r
2374 See <xref linkend="git-shortlog(1)"/> and <xref linkend="git-blame(1)"/>.
\r
2384 Specify the programs that may be used to display help in the
\r
2385 <emphasis>man</emphasis> format. See <xref linkend="git-help(1)"/>.
\r
2391 man.<tool>.cmd
\r
2395 Specify the command to invoke the specified man viewer. The
\r
2396 specified command is evaluated in shell with the man page
\r
2397 passed as argument. (See <xref linkend="git-help(1)"/>.)
\r
2403 man.<tool>.path
\r
2407 Override the path for the given tool that may be used to
\r
2408 display help in the <emphasis>man</emphasis> format. See <xref linkend="git-help(1)"/>.
\r
2414 merge.conflictstyle
\r
2418 Specify the style in which conflicted hunks are written out to
\r
2419 working tree files upon merge. The default is "merge", which
\r
2420 shows a <literal><<<<<<<</literal> conflict marker, changes made by one side,
\r
2421 a <literal>=======</literal> marker, changes made by the other side, and then
\r
2422 a <literal>>>>>>>></literal> marker. An alternate style, "diff3", adds a <literal>|||||||</literal>
\r
2423 marker and the original text before the <literal>=======</literal> marker.
\r
2433 Whether to include summaries of merged commits in newly created
\r
2434 merge commit messages. False by default.
\r
2444 The number of files to consider when performing rename detection
\r
2445 during a merge; if not specified, defaults to the value of
\r
2456 Whether to print the diffstat between ORIG_HEAD and the merge result
\r
2457 at the end of the merge. True by default.
\r
2467 Controls which merge resolution program is used by
\r
2468 <xref linkend="git-mergetool(1)"/>. Valid built-in values are: "kdiff3",
\r
2469 "tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff", and
\r
2470 "opendiff". Any other value is treated is custom merge tool
\r
2471 and there must be a corresponding mergetool.<tool>.cmd option.
\r
2481 Controls the amount of output shown by the recursive merge
\r
2482 strategy. Level 0 outputs nothing except a final error
\r
2483 message if conflicts were detected. Level 1 outputs only
\r
2484 conflicts, 2 outputs conflicts and file changes. Level 5 and
\r
2485 above outputs debugging information. The default is level 2.
\r
2486 Can be overridden by the <emphasis>GIT_MERGE_VERBOSITY</emphasis> environment variable.
\r
2492 merge.<driver>.name
\r
2496 Defines a human-readable name for a custom low-level
\r
2497 merge driver. See <xref linkend="gitattributes(5)"/> for details.
\r
2503 merge.<driver>.driver
\r
2507 Defines the command that implements a custom low-level
\r
2508 merge driver. See <xref linkend="gitattributes(5)"/> for details.
\r
2514 merge.<driver>.recursive
\r
2518 Names a low-level merge driver to be used when
\r
2519 performing an internal merge between common ancestors.
\r
2520 See <xref linkend="gitattributes(5)"/> for details.
\r
2526 mergetool.<tool>.path
\r
2530 Override the path for the given tool. This is useful in case
\r
2531 your tool is not in the PATH.
\r
2537 mergetool.<tool>.cmd
\r
2541 Specify the command to invoke the specified merge tool. The
\r
2542 specified command is evaluated in shell with the following
\r
2543 variables available: <emphasis>BASE</emphasis> is the name of a temporary file
\r
2544 containing the common base of the files to be merged, if available;
\r
2545 <emphasis>LOCAL</emphasis> is the name of a temporary file containing the contents of
\r
2546 the file on the current branch; <emphasis>REMOTE</emphasis> is the name of a temporary
\r
2547 file containing the contents of the file from the branch being
\r
2548 merged; <emphasis>MERGED</emphasis> contains the name of the file to which the merge
\r
2549 tool should write the results of a successful merge.
\r
2555 mergetool.<tool>.trustExitCode
\r
2559 For a custom merge command, specify whether the exit code of
\r
2560 the merge command can be used to determine whether the merge was
\r
2561 successful. If this is not set to true then the merge target file
\r
2562 timestamp is checked and the merge assumed to have been successful
\r
2563 if the file has been updated, otherwise the user is prompted to
\r
2564 indicate the success of the merge.
\r
2570 mergetool.keepBackup
\r
2574 After performing a merge, the original file with conflict markers
\r
2575 can be saved as a file with a <literal>.orig</literal> extension. If this variable
\r
2576 is set to <literal>false</literal> then this file is not preserved. Defaults to
\r
2577 <literal>true</literal> (i.e. keep the backup files).
\r
2583 mergetool.keepTemporaries
\r
2587 When invoking a custom merge tool, git uses a set of temporary
\r
2588 files to pass to the tool. If the tool returns an error and this
\r
2589 variable is set to <literal>true</literal>, then these temporary files will be
\r
2590 preserved, otherwise they will be removed after the tool has
\r
2591 exited. Defaults to <literal>false</literal>.
\r
2601 Prompt before each invocation of the merge resolution program.
\r
2611 The size of the window used by <xref linkend="git-pack-objects(1)"/> when no
\r
2612 window size is given on the command line. Defaults to 10.
\r
2622 The maximum delta depth used by <xref linkend="git-pack-objects(1)"/> when no
\r
2623 maximum depth is given on the command line. Defaults to 50.
\r
2633 The window memory size limit used by <xref linkend="git-pack-objects(1)"/>
\r
2634 when no limit is given on the command line. The value can be
\r
2635 suffixed with "k", "m", or "g". Defaults to 0, meaning no
\r
2646 An integer -1..9, indicating the compression level for objects
\r
2647 in a pack file. -1 is the zlib default. 0 means no
\r
2648 compression, and 1..9 are various speed/size tradeoffs, 9 being
\r
2649 slowest. If not set, defaults to core.compression. If that is
\r
2650 not set, defaults to -1, the zlib default, which is "a default
\r
2651 compromise between speed and compression (currently equivalent
\r
2658 pack.deltaCacheSize
\r
2662 The maximum memory in bytes used for caching deltas in
\r
2663 <xref linkend="git-pack-objects(1)"/>.
\r
2664 A value of 0 means no limit. Defaults to 0.
\r
2670 pack.deltaCacheLimit
\r
2674 The maximum size of a delta, that is cached in
\r
2675 <xref linkend="git-pack-objects(1)"/>. Defaults to 1000.
\r
2685 Specifies the number of threads to spawn when searching for best
\r
2686 delta matches. This requires that <xref linkend="git-pack-objects(1)"/>
\r
2687 be compiled with pthreads otherwise this option is ignored with a
\r
2688 warning. This is meant to reduce packing time on multiprocessor
\r
2689 machines. The required amount of memory for the delta search window
\r
2690 is however multiplied by the number of threads.
\r
2691 Specifying 0 will cause git to auto-detect the number of CPU’s
\r
2692 and set the number of threads accordingly.
\r
2702 Specify the default pack index version. Valid values are 1 for
\r
2703 legacy pack index used by Git versions prior to 1.5.2, and 2 for
\r
2704 the new pack index with capabilities for packs larger than 4 GB
\r
2705 as well as proper protection against the repacking of corrupted
\r
2706 packs. Version 2 is the default. Note that version 2 is enforced
\r
2707 and this config option ignored whenever the corresponding pack is
\r
2710 <simpara>If you have an old git that does not understand the version 2 <literal>*.idx</literal> file,
\r
2711 cloning or fetching over a non native protocol (e.g. "http" and "rsync")
\r
2712 that will copy both <literal>*.pack</literal> file and corresponding <literal>*.idx</literal> file from the
\r
2713 other side may give you a repository that cannot be accessed with your
\r
2714 older version of git. If the <literal>*.pack</literal> file is smaller than 2 GB, however,
\r
2715 you can use <xref linkend="git-index-pack(1)"/> on the *.pack file to regenerate
\r
2716 the <literal>*.idx</literal> file.</simpara>
\r
2721 pack.packSizeLimit
\r
2725 The default maximum size of a pack. This setting only affects
\r
2726 packing to a file, i.e. the git:// protocol is unaffected. It
\r
2727 can be overridden by the <literal>--max-pack-size</literal> option of
\r
2728 <xref linkend="git-repack(1)"/>.
\r
2738 Allows turning on or off pagination of the output of a
\r
2739 particular git subcommand when writing to a tty. If
\r
2740 <literal>--paginate</literal> or <literal>--no-pager</literal> is specified on the command line,
\r
2741 it takes precedence over this option. To disable pagination for
\r
2742 all commands, set <literal>core.pager</literal> or <emphasis>GIT_PAGER</emphasis> to "<literal>cat</literal>".
\r
2752 The default merge strategy to use when pulling multiple branches
\r
2763 The default merge strategy to use when pulling a single branch.
\r
2769 receive.fsckObjects
\r
2773 If it is set to true, git-receive-pack will check all received
\r
2774 objects. It will abort in the case of a malformed object or a
\r
2775 broken link. The result of an abort are only dangling objects.
\r
2776 Defaults to false.
\r
2782 receive.unpackLimit
\r
2786 If the number of objects received in a push is below this
\r
2787 limit then the objects will be unpacked into loose object
\r
2788 files. However if the number of received objects equals or
\r
2789 exceeds this limit then the received pack will be stored as
\r
2790 a pack, after adding any missing delta bases. Storing the
\r
2791 pack from a push can make the push operation complete faster,
\r
2792 especially on slow filesystems. If not set, the value of
\r
2793 <literal>transfer.unpackLimit</literal> is used instead.
\r
2799 receive.denyDeletes
\r
2803 If set to true, git-receive-pack will deny a ref update that deletes
\r
2804 the ref. Use this to prevent such a ref deletion via a push.
\r
2810 receive.denyCurrentBranch
\r
2814 If set to true or "refuse", receive-pack will deny a ref update
\r
2815 to the currently checked out branch of a non-bare repository.
\r
2816 Such a push is potentially dangerous because it brings the HEAD
\r
2817 out of sync with the index and working tree. If set to "warn",
\r
2818 print a warning of such a push to stderr, but allow the push to
\r
2819 proceed. If set to false or "ignore", allow such pushes with no
\r
2820 message. Defaults to "warn".
\r
2826 receive.denyNonFastForwards
\r
2830 If set to true, git-receive-pack will deny a ref update which is
\r
2831 not a fast forward. Use this to prevent such an update via a push,
\r
2832 even if that push is forced. This configuration variable is
\r
2833 set when initializing a shared repository.
\r
2839 remote.<name>.url
\r
2843 The URL of a remote repository. See <xref linkend="git-fetch(1)"/> or
\r
2844 <xref linkend="git-push(1)"/>.
\r
2850 remote.<name>.proxy
\r
2854 For remotes that require curl (http, https and ftp), the URL to
\r
2855 the proxy to use for that remote. Set to the empty string to
\r
2856 disable proxying for that remote.
\r
2862 remote.<name>.fetch
\r
2866 The default set of "refspec" for <xref linkend="git-fetch(1)"/>. See
\r
2867 <xref linkend="git-fetch(1)"/>.
\r
2873 remote.<name>.push
\r
2877 The default set of "refspec" for <xref linkend="git-push(1)"/>. See
\r
2878 <xref linkend="git-push(1)"/>.
\r
2884 remote.<name>.mirror
\r
2888 If true, pushing to this remote will automatically behave
\r
2889 as if the <literal>--mirror</literal> option was given on the command line.
\r
2895 remote.<name>.skipDefaultUpdate
\r
2899 If true, this remote will be skipped by default when updating
\r
2900 using the update subcommand of <xref linkend="git-remote(1)"/>.
\r
2906 remote.<name>.receivepack
\r
2910 The default program to execute on the remote side when pushing. See
\r
2911 option --receive-pack of <xref linkend="git-push(1)"/>.
\r
2917 remote.<name>.uploadpack
\r
2921 The default program to execute on the remote side when fetching. See
\r
2922 option --upload-pack of <xref linkend="git-fetch-pack(1)"/>.
\r
2928 remote.<name>.tagopt
\r
2932 Setting this value to --no-tags disables automatic tag following when
\r
2933 fetching from remote <name>
\r
2939 remote.<name>.vcs
\r
2943 Setting this to a value <vcs> will cause git to interact with
\r
2944 the remote with the git-vcs-<vcs> helper.
\r
2950 remotes.<group>
\r
2954 The list of remotes which are fetched by "git remote update
\r
2955 <group>". See <xref linkend="git-remote(1)"/>.
\r
2961 repack.usedeltabaseoffset
\r
2965 By default, <xref linkend="git-repack(1)"/> creates packs that use
\r
2966 delta-base offset. If you need to share your repository with
\r
2967 git older than version 1.4.4, either directly or via a dumb
\r
2968 protocol such as http, then you need to set this option to
\r
2969 "false" and repack. Access from old git versions over the
\r
2970 native protocol are unaffected by this option.
\r
2980 When set to true, <literal>git-rerere</literal> updates the index with the
\r
2981 resulting contents after it cleanly resolves conflicts using
\r
2982 previously recorded resolution. Defaults to false.
\r
2992 Activate recording of resolved conflicts, so that identical
\r
2993 conflict hunks can be resolved automatically, should they
\r
2994 be encountered again. <xref linkend="git-rerere(1)"/> command is by
\r
2995 default enabled if you create <literal>rr-cache</literal> directory under
\r
2996 <literal>$GIT_DIR</literal>, but can be disabled by setting this option to false.
\r
3002 showbranch.default
\r
3006 The default set of branches for <xref linkend="git-show-branch(1)"/>.
\r
3007 See <xref linkend="git-show-branch(1)"/>.
\r
3013 status.relativePaths
\r
3017 By default, <xref linkend="git-status(1)"/> shows paths relative to the
\r
3018 current directory. Setting this variable to <literal>false</literal> shows paths
\r
3019 relative to the repository root (this was the default for git
\r
3026 status.showUntrackedFiles
\r
3030 By default, <xref linkend="git-status(1)"/> and <xref linkend="git-commit(1)"/> show
\r
3031 files which are not currently tracked by Git. Directories which
\r
3032 contain only untracked files, are shown with the directory name
\r
3033 only. Showing untracked files means that Git needs to lstat() all
\r
3034 all the files in the whole repository, which might be slow on some
\r
3035 systems. So, this variable controls how the commands displays
\r
3036 the untracked files. Possible values are:
\r
3041 <emphasis>no</emphasis> - Show no untracked files
\r
3046 <emphasis>normal</emphasis> - Shows untracked files and directories
\r
3051 <emphasis>all</emphasis> - Shows also individual files in untracked directories.
\r
3055 <simpara>If this variable is not specified, it defaults to <emphasis>normal</emphasis>.
\r
3056 This variable can be overridden with the -u|--untracked-files option
\r
3057 of <xref linkend="git-status(1)"/> and <xref linkend="git-commit(1)"/>.</simpara>
\r
3066 This variable can be used to restrict the permission bits of
\r
3067 tar archive entries. The default is 0002, which turns off the
\r
3068 world write bit. The special value "user" indicates that the
\r
3069 archiving user’s umask will be used instead. See umask(2) and
\r
3070 <xref linkend="git-archive(1)"/>.
\r
3076 transfer.unpackLimit
\r
3080 When <literal>fetch.unpackLimit</literal> or <literal>receive.unpackLimit</literal> are
\r
3081 not set, the value of this variable is used instead.
\r
3082 The default value is 100.
\r
3088 url.<base>.insteadOf
\r
3092 Any URL that starts with this value will be rewritten to
\r
3093 start, instead, with <base>. In cases where some site serves a
\r
3094 large number of repositories, and serves them with multiple
\r
3095 access methods, and some users need to use different access
\r
3096 methods, this feature allows people to specify any of the
\r
3097 equivalent URLs and have git automatically rewrite the URL to
\r
3098 the best alternative for the particular user, even for a
\r
3099 never-before-seen repository on the site. When more than one
\r
3100 insteadOf strings match a given URL, the longest match is used.
\r
3110 Your email address to be recorded in any newly created commits.
\r
3111 Can be overridden by the <emphasis>GIT_AUTHOR_EMAIL</emphasis>, <emphasis>GIT_COMMITTER_EMAIL</emphasis>, and
\r
3112 <emphasis>EMAIL</emphasis> environment variables. See <xref linkend="git-commit-tree(1)"/>.
\r
3122 Your full name to be recorded in any newly created commits.
\r
3123 Can be overridden by the <emphasis>GIT_AUTHOR_NAME</emphasis> and <emphasis>GIT_COMMITTER_NAME</emphasis>
\r
3124 environment variables. See <xref linkend="git-commit-tree(1)"/>.
\r
3134 If <xref linkend="git-tag(1)"/> is not selecting the key you want it to
\r
3135 automatically when creating a signed tag, you can override the
\r
3136 default selection with this variable. This option is passed
\r
3137 unchanged to gpg’s --local-user parameter, so you may specify a key
\r
3138 using any method that gpg supports.
\r
3148 Specify a web browser that may be used by some commands.
\r
3149 Currently only <xref linkend="git-instaweb(1)"/> and <xref linkend="git-help(1)"/>
\r
3157 <simplesect id="_author">
\r
3158 <title>Author</title>
\r
3159 <simpara>Written by Johannes Schindelin <<ulink url="mailto:Johannes.Schindelin@gmx.de">Johannes.Schindelin@gmx.de</ulink>></simpara>
\r
3161 <simplesect id="_documentation">
\r
3162 <title>Documentation</title>
\r
3163 <simpara>Documentation by Johannes Schindelin, Petr Baudis and the git-list <<ulink url="mailto:git@vger.kernel.org">git@vger.kernel.org</ulink>>.</simpara>
\r
3165 <simplesect id="_git">
\r
3166 <title>GIT</title>
\r
3167 <simpara>Part of the <xref linkend="git(1)"/> suite</simpara>
\r