From 1989f23277287f095116e3919dc410054aee4159 Mon Sep 17 00:00:00 2001 From: Bjoern Kerler Date: Tue, 26 Nov 2019 21:59:41 +0100 Subject: [PATCH] Fix readme --- "\033q" | 3833 ------------------------------------------------------- 1 file changed, 3833 deletions(-) delete mode 100644 "\033q" diff --git "a/\033q" "b/\033q" deleted file mode 100644 index d43a2cc..0000000 --- "a/\033q" +++ /dev/null @@ -1,3833 +0,0 @@ -GIT-CONFIG(1) Git Manual GIT-CONFIG(1) - -NNAAMMEE - git-config - Get and set repository or global options - -SSYYNNOOPPSSIISS - _g_i_t _c_o_n_f_i_g [] [--type=] [--show-origin] [-z|--null] name [value [value_regex]] - _g_i_t _c_o_n_f_i_g [] [--type=] --add name value - _g_i_t _c_o_n_f_i_g [] [--type=] --replace-all name value [value_regex] - _g_i_t _c_o_n_f_i_g [] [--type=] [--show-origin] [-z|--null] --get name [value_regex] - _g_i_t _c_o_n_f_i_g [] [--type=] [--show-origin] [-z|--null] --get-all name [value_regex] - _g_i_t _c_o_n_f_i_g [] [--type=] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex] - _g_i_t _c_o_n_f_i_g [] [--type=] [-z|--null] --get-urlmatch name URL - _g_i_t _c_o_n_f_i_g [] --unset name [value_regex] - _g_i_t _c_o_n_f_i_g [] --unset-all name [value_regex] - _g_i_t _c_o_n_f_i_g [] --rename-section old_name new_name - _g_i_t _c_o_n_f_i_g [] --remove-section name - _g_i_t _c_o_n_f_i_g [] [--show-origin] [-z|--null] [--name-only] -l | --list - _g_i_t _c_o_n_f_i_g [] --get-color name [default] - _g_i_t _c_o_n_f_i_g [] --get-colorbool name [stdout-is-tty] - _g_i_t _c_o_n_f_i_g [] -e | --edit - -DDEESSCCRRIIPPTTIIOONN - You can query/set/replace/unset options with this command. The name is actually the section and the key - separated by a dot, and the value will be escaped. - - Multiple lines can be added to an option by using the ----aadddd option. If you want to update or unset an - option which can occur on multiple lines, a POSIX regexp vvaalluuee__rreeggeexx needs to be given. Only the - existing values that match the regexp are updated or unset. If you want to handle the lines that do nnoott - match the regex, just prepend a single exclamation mark in front (see also the section called - “EXAMPLES”). - - The ----ttyyppee==<> option instructs _g_i_t _c_o_n_f_i_g to ensure that incoming and outgoing values are - canonicalize-able under the given . If no ----ttyyppee==<> is given, no canonicalization will be - performed. Callers may unset an existing ----ttyyppee specifier with ----nnoo--ttyyppee. - - When reading, the values are read from the system, global and repository local configuration files by - default, and options ----ssyysstteemm, ----gglloobbaall, ----llooccaall, ----wwoorrkkttrreeee and ----ffiillee <> can be used to tell - the command to read from only that location (see the section called “FILES”). - - When writing, the new value is written to the repository local configuration file by default, and - options ----ssyysstteemm, ----gglloobbaall, ----wwoorrkkttrreeee, ----ffiillee <> can be used to tell the command to write to - that location (you can say ----llooccaall but that is the default). - - This command will fail with non-zero status upon error. Some exit codes are: - - • The section or key is invalid (ret=1), - - • no section or name was provided (ret=2), - - • the config file is invalid (ret=3), - - • the config file cannot be written (ret=4), - - • you try to unset an option which does not exist (ret=5), - - • you try to unset/set an option for which multiple lines match (ret=5), or - - • you try to use an invalid regexp (ret=6). - - On success, the command returns the exit code 0. - -OOPPTTIIOONNSS - --replace-all - Default behavior is to replace at most one line. This replaces all lines matching the key (and - optionally the value_regex). - - --add - Adds a new line to the option without altering any existing values. This is the same as providing - _^_$ as the value_regex in ----rreeppllaaccee--aallll. - - --get - Get the value for a given key (optionally filtered by a regex matching the value). Returns error - code 1 if the key was not found and the last value if multiple key values were found. - - --get-all - Like get, but returns all values for a multi-valued key. - - --get-regexp - Like --get-all, but interprets the name as a regular expression and writes out the key names. - Regular expression matching is currently case-sensitive and done against a canonicalized version of - the key in which section and variable names are lowercased, but subsection names are not. - - --get-urlmatch name URL - When given a two-part name section.key, the value for section..key whose part matches - the best to the given URL is returned (if no such key exists, the value for section.key is used as - a fallback). When given just the section as name, do so for all the keys in the section and list - them. Returns error code 1 if no value is found. - - --global - For writing options: write to global ~~//..ggiittccoonnffiigg file rather than the repository ..ggiitt//ccoonnffiigg, - write to $$XXDDGG__CCOONNFFIIGG__HHOOMMEE//ggiitt//ccoonnffiigg file if this file exists and the ~~//..ggiittccoonnffiigg file doesn’t. - - For reading options: read only from global ~~//..ggiittccoonnffiigg and from $$XXDDGG__CCOONNFFIIGG__HHOOMMEE//ggiitt//ccoonnffiigg rather - than from all available files. - - See also the section called “FILES”. - - --system - For writing options: write to system-wide $$((pprreeffiixx))//eettcc//ggiittccoonnffiigg rather than the repository - ..ggiitt//ccoonnffiigg. - - For reading options: read only from system-wide $$((pprreeffiixx))//eettcc//ggiittccoonnffiigg rather than from all - available files. - - See also the section called “FILES”. - - --local - For writing options: write to the repository ..ggiitt//ccoonnffiigg file. This is the default behavior. - - For reading options: read only from the repository ..ggiitt//ccoonnffiigg rather than from all available - files. - - See also the section called “FILES”. - - --worktree - Similar to ----llooccaall except that ..ggiitt//ccoonnffiigg..wwoorrkkttrreeee is read from or written to if - eexxtteennssiioonnss..wwoorrkkttrreeeeCCoonnffiigg is present. If not it’s the same as ----llooccaall. - - -f config-file, --file config-file - Use the given config file instead of the one specified by GIT_CONFIG. - - --blob blob - Similar to ----ffiillee but use the given blob instead of a file. E.g. you can use _m_a_s_t_e_r_:_._g_i_t_m_o_d_u_l_e_s to - read values from the file _._g_i_t_m_o_d_u_l_e_s in the master branch. See "SPECIFYING REVISIONS" section in - ggiittrreevviissiioonnss(7) for a more complete list of ways to spell blob names. - - --remove-section - Remove the given section from the configuration file. - - --rename-section - Rename the given section to a new name. - - --unset - Remove the line matching the key from config file. - - --unset-all - Remove all lines matching the key from config file. - - -l, --list - List all variables set in config file, along with their values. - - --type - _g_i_t _c_o_n_f_i_g will ensure that any input or output is valid under the given type constraint(s), and - will canonicalize outgoing values in <>'s canonical form. - - Valid <>'s include: - - • _b_o_o_l: canonicalize values as either "true" or "false". - - • _i_n_t: canonicalize values as simple decimal numbers. An optional suffix of _k, _m, or _g will cause - the value to be multiplied by 1024, 1048576, or 1073741824 upon input. - - • _b_o_o_l_-_o_r_-_i_n_t: canonicalize according to either _b_o_o_l or _i_n_t, as described above. - - • _p_a_t_h: canonicalize by adding a leading ~~ to the value of $$HHOOMMEE and ~~uusseerr to the home directory - for the specified user. This specifier has no effect when setting the value (but you can use - ggiitt ccoonnffiigg sseeccttiioonn..vvaarriiaabbllee ~~// from the command line to let your shell do the expansion.) - - • _e_x_p_i_r_y_-_d_a_t_e: canonicalize by converting from a fixed or relative date-string to a timestamp. - This specifier has no effect when setting the value. - - • _c_o_l_o_r: When getting a value, canonicalize by converting to an ANSI color escape sequence. When - setting a value, a sanity-check is performed to ensure that the given value is - canonicalize-able as an ANSI color, but it is written as-is. - - --bool, --int, --bool-or-int, --path, --expiry-date - Historical options for selecting a type specifier. Prefer instead ----ttyyppee (see above). - - --no-type - Un-sets the previously set type specifier (if one was previously set). This option requests that - _g_i_t _c_o_n_f_i_g not canonicalize the retrieved variable. ----nnoo--ttyyppee has no effect without ----ttyyppee==<> - or ----<>. - - -z, --null - For all options that output values and/or keys, always end values with the null character (instead - of a newline). Use newline instead as a delimiter between key and value. This allows for secure - parsing of the output without getting confused e.g. by values that contain line breaks. - - --name-only - Output only the names of config variables for ----lliisstt or ----ggeett--rreeggeexxpp. - - --show-origin - Augment the output of all queried config options with the origin type (file, standard input, blob, - command line) and the actual origin (config file path, ref, or blob id if applicable). - - --get-colorbool name [stdout-is-tty] - Find the color setting for nnaammee (e.g. ccoolloorr..ddiiffff) and output "true" or "false". ssttddoouutt--iiss--ttttyy - should be either "true" or "false", and is taken into account when configuration says "auto". If - ssttddoouutt--iiss--ttttyy is missing, then checks the standard output of the command itself, and exits with - status 0 if color is to be used, or exits with status 1 otherwise. When the color setting for nnaammee - is undefined, the command uses ccoolloorr..uuii as fallback. - - --get-color name [default] - Find the color configured for nnaammee (e.g. ccoolloorr..ddiiffff..nneeww) and output it as the ANSI color escape - sequence to the standard output. The optional ddeeffaauulltt parameter is used instead, if there is no - color configured for nnaammee. - - ----ttyyppee==ccoolloorr [[----ddeeffaauulltt==<>]] is preferred over ----ggeett--ccoolloorr. - - -e, --edit - Opens an editor to modify the specified config file; either ----ssyysstteemm, ----gglloobbaall, or repository - (default). - - --[no-]includes - Respect iinncclluuddee..** directives in config files when looking up values. Defaults to ooffff when a - specific file is given (e.g., using ----ffiillee, ----gglloobbaall, etc) and oonn when searching all config files. - - --default - When using ----ggeett, and the requested variable is not found, behave as if were the value - assigned to the that variable. - -CCOONNFFIIGGUURRAATTIIOONN - ppaaggeerr..ccoonnffiigg is only respected when listing configuration, i.e., when using ----lliisstt or any of the - ----ggeett--** which may return multiple results. The default is to use a pager. - -FFIILLEESS - If not set explicitly with ----ffiillee, there are four files where _g_i_t _c_o_n_f_i_g will search for configuration - options: - - $(prefix)/etc/gitconfig - System-wide configuration file. - - $XDG_CONFIG_HOME/git/config - Second user-specific configuration file. If $XDG_CONFIG_HOME is not set or empty, - $$HHOOMMEE//..ccoonnffiigg//ggiitt//ccoonnffiigg will be used. Any single-valued variable set in this file will be - overwritten by whatever is in ~~//..ggiittccoonnffiigg. It is a good idea not to create this file if you - sometimes use older versions of Git, as support for this file was added fairly recently. - - ~/.gitconfig - User-specific configuration file. Also called "global" configuration file. - - $GIT_DIR/config - Repository specific configuration file. - - $GIT_DIR/config.worktree - This is optional and is only searched when eexxtteennssiioonnss..wwoorrkkttrreeeeCCoonnffiigg is present in $GIT_DIR/config. - - If no further options are given, all reading options will read all of these files that are available. - If the global or the system-wide configuration file are not available they will be ignored. If the - repository configuration file is not available or readable, _g_i_t _c_o_n_f_i_g will exit with a non-zero error - code. However, in neither case will an error message be issued. - - The files are read in the order given above, with last value found taking precedence over values read - earlier. When multiple values are taken then all values of a key from all files will be used. - - You may override individual configuration parameters when running any git command by using the --cc - option. See ggiitt(1) for details. - - All writing options will per default write to the repository specific configuration file. Note that - this also affects options like ----rreeppllaaccee--aallll and ----uunnsseett. _g_i_t _c_o_n_f_i_g wwiillll oonnllyy eevveerr cchhaannggee oonnee ffiillee aatt - aa ttiimmee. - - You can override these rules either by command-line options or by environment variables. The ----gglloobbaall, - ----ssyysstteemm and ----wwoorrkkttrreeee options will limit the file used to the global, system-wide or per-worktree - file respectively. The GGIITT__CCOONNFFIIGG environment variable has a similar effect, but you can specify any - filename you want. - -EENNVVIIRROONNMMEENNTT - GIT_CONFIG - Take the configuration from the given file instead of .git/config. Using the "--global" option - forces this to ~/.gitconfig. Using the "--system" option forces this to $(prefix)/etc/gitconfig. - - GIT_CONFIG_NOSYSTEM - Whether to skip reading settings from the system-wide $(prefix)/etc/gitconfig file. See ggiitt(1) for - details. - - See also the section called “FILES”. - -EEXXAAMMPPLLEESS - Given a .git/config like this: - - # - # This is the config file, and - # a '#' or ';' character indicates - # a comment - # - - ; core variables - [core] - ; Don't trust file modes - filemode = false - - ; Our diff algorithm - [diff] - external = /usr/local/bin/diff-wrapper - renames = true - - ; Proxy settings - [core] - gitproxy=proxy-command for kernel.org - gitproxy=default-proxy ; for all the rest - - ; HTTP - [http] - sslVerify - [http "https://weak.example.com"] - sslVerify = false - cookieFile = /tmp/cookie.txt - - you can set the filemode to true with - - % git config core.filemode true - - The hypothetical proxy command entries actually have a postfix to discern what URL they apply to. Here - is how to change the entry for kernel.org to "ssh". - - % git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$' - - This makes sure that only the key/value pair for kernel.org is replaced. - - To delete the entry for renames, do - - % git config --unset diff.renames - - If you want to delete an entry for a multivar (like core.gitproxy above), you have to provide a regex - matching the value of exactly one line. - - To query the value for a given key, do - - % git config --get core.filemode - - or - - % git config core.filemode - - or, to query a multivar: - - % git config --get core.gitproxy "for kernel.org$" - - If you want to know all the values for a multivar, do: - - % git config --get-all core.gitproxy - - If you like to live dangerously, you can replace aallll core.gitproxy by a new one with - - % git config --replace-all core.gitproxy ssh - - However, if you really only want to replace the line for the default proxy, i.e. the one without a "for - ..." postfix, do something like this: - - % git config core.gitproxy ssh '! for ' - - To actually match only values with an exclamation mark, you have to - - % git config section.key value '[!]' - - To add a new proxy, without altering any of the existing ones, use - - % git config --add core.gitproxy '"proxy-command" for example.com' - - An example to use customized color from the configuration in your script: - - #!/bin/sh - WS=$(git config --get-color color.diff.whitespace "blue reverse") - RESET=$(git config --get-color "" "reset") - echo "${WS}your whitespace color or blue reverse${RESET}" - - For URLs in hhttttppss::////wweeaakk..eexxaammppllee..ccoomm, hhttttpp..ssssllVVeerriiffyy is set to false, while it is set to ttrruuee for all - others: - - % git config --type=bool --get-urlmatch http.sslverify https://good.example.com - true - % git config --type=bool --get-urlmatch http.sslverify https://weak.example.com - false - % git config --get-urlmatch http https://weak.example.com - http.cookieFile /tmp/cookie.txt - http.sslverify false - -CCOONNFFIIGGUURRAATTIIOONN FFIILLEE - The Git configuration file contains a number of variables that affect the Git commands' behavior. The - files ..ggiitt//ccoonnffiigg and optionally ccoonnffiigg..wwoorrkkttrreeee (see eexxtteennssiioonnss..wwoorrkkttrreeeeCCoonnffiigg below) in each - repository are used to store the configuration for that repository, and $$HHOOMMEE//..ggiittccoonnffiigg is used to - store a per-user configuration as fallback values for the ..ggiitt//ccoonnffiigg file. The file //eettcc//ggiittccoonnffiigg can - be used to store a system-wide default configuration. - - The configuration variables are used by both the Git plumbing and the porcelains. The variables are - divided into sections, wherein the fully qualified variable name of the variable itself is the last - dot-separated segment and the section name is everything before the last dot. The variable names are - case-insensitive, allow only alphanumeric characters and --, and must start with an alphabetic - character. Some variables may appear multiple times; we say then that the variable is multivalued. - - SSyynnttaaxx - The syntax is fairly flexible and permissive; whitespaces are mostly ignored. The _# and _; characters - begin comments to the end of line, blank lines are ignored. - - The file consists of sections and variables. A section begins with the name of the section in square - brackets and continues until the next section begins. Section names are case-insensitive. Only - alphanumeric characters, -- and .. are allowed in section names. Each variable must belong to some - section, which means that there must be a section header before the first setting of a variable. - - Sections can be further divided into subsections. To begin a subsection put its name in double quotes, - separated by space from the section name, in the section header, like in the example below: - - [section "subsection"] - - Subsection names are case sensitive and can contain any characters except newline and the null byte. - Doublequote "" and backslash can be included by escaping them as \\"" and \\\\, respectively. Backslashes - preceding other characters are dropped when reading; for example, \\tt is read as tt and \\00 is read as 00 - Section headers cannot span multiple lines. Variables may belong directly to a section or to a given - subsection. You can have [[sseeccttiioonn]] if you have [[sseeccttiioonn ""ssuubbsseeccttiioonn""]], but you don’t need to. - - There is also a deprecated [[sseeccttiioonn..ssuubbsseeccttiioonn]] syntax. With this syntax, the subsection name is - converted to lower-case and is also compared case sensitively. These subsection names follow the same - restrictions as section names. - - All the other lines (and the remainder of the line after the section header) are recognized as setting - variables, in the form _n_a_m_e _= _v_a_l_u_e (or just _n_a_m_e, which is a short-hand to say that the variable is - the boolean "true"). The variable names are case-insensitive, allow only alphanumeric characters and --, - and must start with an alphabetic character. - - A line that defines a value can be continued to the next line by ending it with a \\; the backquote and - the end-of-line are stripped. Leading whitespaces after _n_a_m_e _=, the remainder of the line after the - first comment character _# or _;, and trailing whitespaces of the line are discarded unless they are - enclosed in double quotes. Internal whitespaces within the value are retained verbatim. - - Inside double quotes, double quote "" and backslash \\ characters must be escaped: use \\"" for "" and \\\\ - for \\. - - The following escape sequences (beside \\"" and \\\\) are recognized: \\nn for newline character (NL), \\tt for - horizontal tabulation (HT, TAB) and \\bb for backspace (BS). Other char escape sequences (including octal - escape sequences) are invalid. - - IInncclluuddeess - The iinncclluuddee and iinncclluuddeeIIff sections allow you to include config directives from another source. These - sections behave identically to each other with the exception that iinncclluuddeeIIff sections may be ignored if - their condition does not evaluate to true; see "Conditional includes" below. - - You can include a config file from another by setting the special iinncclluuddee..ppaatthh (or iinncclluuddeeIIff..**..ppaatthh) - variable to the name of the file to be included. The variable takes a pathname as its value, and is - subject to tilde expansion. These variables can be given multiple times. - - The contents of the included file are inserted immediately, as if they had been found at the location - of the include directive. If the value of the variable is a relative path, the path is considered to be - relative to the configuration file in which the include directive was found. See below for examples. - - CCoonnddiittiioonnaall iinncclluuddeess - You can include a config file from another conditionally by setting a iinncclluuddeeIIff..<>..ppaatthh - variable to the name of the file to be included. - - The condition starts with a keyword followed by a colon and some data whose format and meaning depends - on the keyword. Supported keywords are: - - ggiittddiirr - The data that follows the keyword ggiittddiirr:: is used as a glob pattern. If the location of the .git - directory matches the pattern, the include condition is met. - - The .git location may be auto-discovered, or come from $$GGIITT__DDIIRR environment variable. If the - repository is auto discovered via a .git file (e.g. from submodules, or a linked worktree), the - .git location would be the final location where the .git directory is, not where the .git file is. - - The pattern can contain standard globbing wildcards and two additional ones, ****// and //****, that can - match multiple path components. Please refer to ggiittiiggnnoorree(5) for details. For convenience: - - • If the pattern starts with ~~//, ~~ will be substituted with the content of the environment - variable HHOOMMEE. - - • If the pattern starts with ..//, it is replaced with the directory containing the current config - file. - - • If the pattern does not start with either ~~//, ..// or //, ****// will be automatically prepended. For - example, the pattern ffoooo//bbaarr becomes ****//ffoooo//bbaarr and would match //aannyy//ppaatthh//ttoo//ffoooo//bbaarr. - - • If the pattern ends with //, **** will be automatically added. For example, the pattern ffoooo// - becomes ffoooo//****. In other words, it matches "foo" and everything inside, recursively. - - ggiittddiirr//ii - This is the same as ggiittddiirr except that matching is done case-insensitively (e.g. on - case-insensitive file sytems) - - A few more notes on matching via ggiittddiirr and ggiittddiirr//ii: - - • Symlinks in $$GGIITT__DDIIRR are not resolved before matching. - - • Both the symlink & realpath versions of paths will be matched outside of $$GGIITT__DDIIRR. E.g. if ~/git is - a symlink to /mnt/storage/git, both ggiittddiirr::~~//ggiitt and ggiittddiirr:://mmnntt//ssttoorraaggee//ggiitt will match. - - This was not the case in the initial release of this feature in v2.13.0, which only matched the - realpath version. Configuration that wants to be compatible with the initial release of this - feature needs to either specify only the realpath version, or both versions. - - • Note that "../" is not special and will match literally, which is unlikely what you want. - - EExxaammppllee - # Core variables - [core] - ; Don't trust file modes - filemode = false - - # Our diff algorithm - [diff] - external = /usr/local/bin/diff-wrapper - renames = true - - [branch "devel"] - remote = origin - merge = refs/heads/devel - - # Proxy settings - [core] - gitProxy="ssh" for "kernel.org" - gitProxy=default-proxy ; for the rest - - [include] - path = /path/to/foo.inc ; include by absolute path - path = foo.inc ; find "foo.inc" relative to the current file - path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory - - ; include if $GIT_DIR is /path/to/foo/.git - [includeIf "gitdir:/path/to/foo/.git"] - path = /path/to/foo.inc - - ; include for all repositories inside /path/to/group - [includeIf "gitdir:/path/to/group/"] - path = /path/to/foo.inc - - ; include for all repositories inside $HOME/to/group - [includeIf "gitdir:~/to/group/"] - path = /path/to/foo.inc - - ; relative paths are always relative to the including - ; file (if the condition is true); their location is not - ; affected by the condition - [includeIf "gitdir:/path/to/group/"] - path = foo.inc - - VVaalluueess - Values of many variables are treated as a simple string, but there are variables that take values of - specific types and there are rules as to how to spell them. - - boolean - When a variable is said to take a boolean value, many synonyms are accepted for _t_r_u_e and _f_a_l_s_e; - these are all case-insensitive. - - true - Boolean true literals are yyeess, oonn, ttrruuee, and 11. Also, a variable defined without == <> is - taken as true. - - false - Boolean false literals are nnoo, ooffff, ffaallssee, 00 and the empty string. - - When converting a value to its canonical form using the ----ttyyppee==bbooooll type specifier, _g_i_t _c_o_n_f_i_g - will ensure that the output is "true" or "false" (spelled in lowercase). - - integer - The value for many variables that specify various sizes can be suffixed with kk, MM,... to mean - "scale the number by 1024", "by 1024x1024", etc. - - color - The value for a variable that takes a color is a list of colors (at most two, one for foreground - and one for background) and attributes (as many as you want), separated by spaces. - - The basic colors accepted are nnoorrmmaall, bbllaacckk, rreedd, ggrreeeenn, yyeellllooww, bblluuee, mmaaggeennttaa, ccyyaann and wwhhiittee. The - first color given is the foreground; the second is the background. - - Colors may also be given as numbers between 0 and 255; these use ANSI 256-color mode (but note that - not all terminals may support this). If your terminal supports it, you may also specify 24-bit RGB - values as hex, like ##ffff00aabb33. - - The accepted attributes are bboolldd, ddiimm, uull, bblliinnkk, rreevveerrssee, iittaalliicc, and ssttrriikkee (for crossed-out or - "strikethrough" letters). The position of any attributes with respect to the colors (before, after, - or in between), doesn’t matter. Specific attributes may be turned off by prefixing them with nnoo or - nnoo-- (e.g., nnoorreevveerrssee, nnoo--uull, etc). - - An empty color string produces no color effect at all. This can be used to avoid coloring specific - elements without disabling color entirely. - - For git’s pre-defined color slots, the attributes are meant to be reset at the beginning of each - item in the colored output. So setting ccoolloorr..ddeeccoorraattee..bbrraanncchh to bbllaacckk will paint that branch name - in a plain bbllaacckk, even if the previous thing on the same output line (e.g. opening parenthesis - before the list of branch names in lloogg ----ddeeccoorraattee output) is set to be painted with bboolldd or some - other attribute. However, custom log formats may do more complicated and layered coloring, and the - negated forms may be useful there. - - pathname - A variable that takes a pathname value can be given a string that begins with "~~//" or "~~uusseerr//", and - the usual tilde expansion happens to such a string: ~~// is expanded to the value of $$HHOOMMEE, and - ~~uusseerr// to the specified user’s home directory. - - VVaarriiaabblleess - Note that this list is non-comprehensive and not necessarily complete. For command-specific variables, - you will find a more detailed description in the appropriate manual page. - - Other git-related tools may and do use their own variables. When inventing new variables for use in - your own tool, make sure their names do not conflict with those that are used by Git itself and other - popular tools, and describe them in your documentation. - - advice.* - These variables control various optional help messages designed to aid new users. All _a_d_v_i_c_e_._* - variables default to _t_r_u_e, and you can tell Git that you do not need help by setting these to - _f_a_l_s_e: - - pushUpdateRejected - Set this variable to _f_a_l_s_e if you want to disable _p_u_s_h_N_o_n_F_F_C_u_r_r_e_n_t, _p_u_s_h_N_o_n_F_F_M_a_t_c_h_i_n_g, - _p_u_s_h_A_l_r_e_a_d_y_E_x_i_s_t_s, _p_u_s_h_F_e_t_c_h_F_i_r_s_t, and _p_u_s_h_N_e_e_d_s_F_o_r_c_e simultaneously. - - pushNonFFCurrent - Advice shown when ggiitt--ppuusshh(1) fails due to a non-fast-forward update to the current branch. - - pushNonFFMatching - Advice shown when you ran ggiitt--ppuusshh(1) and pushed _m_a_t_c_h_i_n_g _r_e_f_s explicitly (i.e. you used _:, or - specified a refspec that isn’t your current branch) and it resulted in a non-fast-forward - error. - - pushAlreadyExists - Shown when ggiitt--ppuusshh(1) rejects an update that does not qualify for fast-forwarding (e.g., a - tag.) - - pushFetchFirst - Shown when ggiitt--ppuusshh(1) rejects an update that tries to overwrite a remote ref that points at an - object we do not have. - - pushNeedsForce - Shown when ggiitt--ppuusshh(1) rejects an update that tries to overwrite a remote ref that points at an - object that is not a commit-ish, or make the remote ref point at an object that is not a - commit-ish. - - statusHints - Show directions on how to proceed from the current state in the output of ggiitt--ssttaattuuss(1), in the - template shown when writing commit messages in ggiitt--ccoommmmiitt(1), and in the help message shown by - ggiitt--cchheecckkoouutt(1) when switching branch. - - statusUoption - Advise to consider using the --uu option to ggiitt--ssttaattuuss(1) when the command takes more than 2 - seconds to enumerate untracked files. - - commitBeforeMerge - Advice shown when ggiitt--mmeerrggee(1) refuses to merge to avoid overwriting local changes. - - resetQuiet - Advice to consider using the ----qquuiieett option to ggiitt--rreesseett(1) when the command takes more than 2 - seconds to enumerate unstaged changes after reset. - - resolveConflict - Advice shown by various commands when conflicts prevent the operation from being performed. - - implicitIdentity - Advice on how to set your identity configuration when your information is guessed from the - system username and domain name. - - detachedHead - Advice shown when you used ggiitt--cchheecckkoouutt(1) to move to the detach HEAD state, to instruct how to - create a local branch after the fact. - - checkoutAmbiguousRemoteBranchName - Advice shown when the argument to ggiitt--cchheecckkoouutt(1) ambiguously resolves to a remote tracking - branch on more than one remote in situations where an unambiguous argument would have otherwise - caused a remote-tracking branch to be checked out. See the cchheecckkoouutt..ddeeffaauullttRReemmoottee configuration - variable for how to set a given remote to used by default in some situations where this advice - would be printed. - - amWorkDir - Advice that shows the location of the patch file when ggiitt--aamm(1) fails to apply it. - - rmHints - In case of failure in the output of ggiitt--rrmm(1), show directions on how to proceed from the - current state. - - addEmbeddedRepo - Advice on what to do when you’ve accidentally added one git repo inside of another. - - ignoredHook - Advice shown if a hook is ignored because the hook is not set as executable. - - waitingForEditor - Print a message to the terminal whenever Git is waiting for editor input from the user. - - core.fileMode - Tells Git if the executable bit of files in the working tree is to be honored. - - Some filesystems lose the executable bit when a file that is marked as executable is checked out, - or checks out a non-executable file with executable bit on. ggiitt--cclloonnee(1) or ggiitt--iinniitt(1) probe the - filesystem to see if it handles the executable bit correctly and this variable is automatically set - as necessary. - - A repository, however, may be on a filesystem that handles the filemode correctly, and this - variable is set to _t_r_u_e when created, but later may be made accessible from another environment - that loses the filemode (e.g. exporting ext4 via CIFS mount, visiting a Cygwin created repository - with Git for Windows or Eclipse). In such a case it may be necessary to set this variable to _f_a_l_s_e. - See ggiitt--uuppddaattee--iinnddeexx(1). - - The default is true (when core.filemode is not specified in the config file). - - core.hideDotFiles - (Windows-only) If true, mark newly-created directories and files whose name starts with a dot as - hidden. If _d_o_t_G_i_t_O_n_l_y, only the ..ggiitt// directory is hidden, but no other files starting with a dot. - The default mode is _d_o_t_G_i_t_O_n_l_y. - - core.ignoreCase - Internal variable which enables various workarounds to enable Git to work better on filesystems - that are not case sensitive, like APFS, HFS+, FAT, NTFS, etc. For example, if a directory listing - finds "makefile" when Git expects "Makefile", Git will assume it is really the same file, and - continue to remember it as "Makefile". - - The default is false, except ggiitt--cclloonnee(1) or ggiitt--iinniitt(1) will probe and set core.ignoreCase true if - appropriate when the repository is created. - - Git relies on the proper configuration of this variable for your operating and file system. - Modifying this value may result in unexpected behavior. - - core.precomposeUnicode - This option is only used by Mac OS implementation of Git. When core.precomposeUnicode=true, Git - reverts the unicode decomposition of filenames done by Mac OS. This is useful when sharing a - repository between Mac OS and Linux or Windows. (Git for Windows 1.7.10 or higher is needed, or Git - under cygwin 1.7). When false, file names are handled fully transparent by Git, which is backward - compatible with older versions of Git. - - core.protectHFS - If set to true, do not allow checkout of paths that would be considered equivalent to ..ggiitt on an - HFS+ filesystem. Defaults to ttrruuee on Mac OS, and ffaallssee elsewhere. - - core.protectNTFS - If set to true, do not allow checkout of paths that would cause problems with the NTFS filesystem, - e.g. conflict with 8.3 "short" names. Defaults to ttrruuee on Windows, and ffaallssee elsewhere. - - core.fsmonitor - If set, the value of this variable is used as a command which will identify all files that may have - changed since the requested date/time. This information is used to speed up git by avoiding - unnecessary processing of files that have not changed. See the "fsmonitor-watchman" section of - ggiitthhooookkss(5). - - core.trustctime - If false, the ctime differences between the index and the working tree are ignored; useful when the - inode change time is regularly modified by something outside Git (file system crawlers and some - backup systems). See ggiitt--uuppddaattee--iinnddeexx(1). True by default. - - core.splitIndex - If true, the split-index feature of the index will be used. See ggiitt--uuppddaattee--iinnddeexx(1). False by - default. - - core.untrackedCache - Determines what to do about the untracked cache feature of the index. It will be kept, if this - variable is unset or set to kkeeeepp. It will automatically be added if set to ttrruuee. And it will - automatically be removed, if set to ffaallssee. Before setting it to ttrruuee, you should check that mtime - is working properly on your system. See ggiitt--uuppddaattee--iinnddeexx(1). kkeeeepp by default. - - core.checkStat - When missing or is set to ddeeffaauulltt, many fields in the stat structure are checked to detect if a - file has been modified since Git looked at it. When this configuration variable is set to mmiinniimmaall, - sub-second part of mtime and ctime, the uid and gid of the owner of the file, the inode number (and - the device number, if Git was compiled to use it), are excluded from the check among these fields, - leaving only the whole-second part of mtime (and ctime, if ccoorree..ttrruussttCCttiimmee is set) and the filesize - to be checked. - - There are implementations of Git that do not leave usable values in some fields (e.g. JGit); by - excluding these fields from the comparison, the mmiinniimmaall mode may help interoperability when the - same repository is used by these other systems at the same time. - - core.quotePath - Commands that output paths (e.g. _l_s_-_f_i_l_e_s, _d_i_f_f), will quote "unusual" characters in the pathname - by enclosing the pathname in double-quotes and escaping those characters with backslashes in the - same way C escapes control characters (e.g. \\tt for TAB, \\nn for LF, \\\\ for backslash) or bytes with - values larger than 0x80 (e.g. octal \\330022\\226655 for "micro" in UTF-8). If this variable is set to - false, bytes higher than 0x80 are not considered "unusual" any more. Double-quotes, backslash and - control characters are always escaped regardless of the setting of this variable. A simple space - character is not considered "unusual". Many commands can output pathnames completely verbatim using - the --zz option. The default value is true. - - core.eol - Sets the line ending type to use in the working directory for files that have the tteexxtt property set - when core.autocrlf is false. Alternatives are _l_f, _c_r_l_f and _n_a_t_i_v_e, which uses the platform’s native - line ending. The default value is nnaattiivvee. See ggiittaattttrriibbuutteess(5) for more information on end-of-line - conversion. - - core.safecrlf - If true, makes Git check if converting CCRRLLFF is reversible when end-of-line conversion is active. - Git will verify if a command modifies a file in the work tree either directly or indirectly. For - example, committing a file followed by checking out the same file should yield the original file in - the work tree. If this is not the case for the current setting of ccoorree..aauuttooccrrllff, Git will reject - the file. The variable can be set to "warn", in which case Git will only warn about an irreversible - conversion but continue the operation. - - CRLF conversion bears a slight chance of corrupting data. When it is enabled, Git will convert CRLF - to LF during commit and LF to CRLF during checkout. A file that contains a mixture of LF and CRLF - before the commit cannot be recreated by Git. For text files this is the right thing to do: it - corrects line endings such that we have only LF line endings in the repository. But for binary - files that are accidentally classified as text the conversion can corrupt data. - - If you recognize such corruption early you can easily fix it by setting the conversion type - explicitly in .gitattributes. Right after committing you still have the original file in your work - tree and this file is not yet corrupted. You can explicitly tell Git that this file is binary and - Git will handle the file appropriately. - - Unfortunately, the desired effect of cleaning up text files with mixed line endings and the - undesired effect of corrupting binary files cannot be distinguished. In both cases CRLFs are - removed in an irreversible way. For text files this is the right thing to do because CRLFs are line - endings, while for binary files converting CRLFs corrupts data. - - Note, this safety check does not mean that a checkout will generate a file identical to the - original file for a different setting of ccoorree..eeooll and ccoorree..aauuttooccrrllff, but only for the current one. - For example, a text file with LLFF would be accepted with ccoorree..eeooll==llff and could later be checked out - with ccoorree..eeooll==ccrrllff, in which case the resulting file would contain CCRRLLFF, although the original file - contained LLFF. However, in both work trees the line endings would be consistent, that is either all - LLFF or all CCRRLLFF, but never mixed. A file with mixed line endings would be reported by the - ccoorree..ssaaffeeccrrllff mechanism. - - core.autocrlf - Setting this variable to "true" is the same as setting the tteexxtt attribute to "auto" on all files - and core.eol to "crlf". Set to true if you want to have CCRRLLFF line endings in your working directory - and the repository has LF line endings. This variable can be set to _i_n_p_u_t, in which case no output - conversion is performed. - - core.checkRoundtripEncoding - A comma and/or whitespace separated list of encodings that Git performs UTF-8 round trip checks on - if they are used in an wwoorrkkiinngg--ttrreeee--eennccooddiinngg attribute (see ggiittaattttrriibbuutteess(5)). The default value is - SSHHIIFFTT--JJIISS. - - core.symlinks - If false, symbolic links are checked out as small plain files that contain the link text. ggiitt-- - uuppddaattee--iinnddeexx(1) and ggiitt--aadddd(1) will not change the recorded type to regular file. Useful on - filesystems like FAT that do not support symbolic links. - - The default is true, except ggiitt--cclloonnee(1) or ggiitt--iinniitt(1) will probe and set core.symlinks false if - appropriate when the repository is created. - - core.gitProxy - A "proxy command" to execute (as _c_o_m_m_a_n_d _h_o_s_t _p_o_r_t) instead of establishing direct connection to - the remote server when using the Git protocol for fetching. If the variable value is in the - "COMMAND for DOMAIN" format, the command is applied only on hostnames ending with the specified - domain string. This variable may be set multiple times and is matched in the given order; the first - match wins. - - Can be overridden by the GGIITT__PPRROOXXYY__CCOOMMMMAANNDD environment variable (which always applies universally, - without the special "for" handling). - - The special string nnoonnee can be used as the proxy command to specify that no proxy be used for a - given domain pattern. This is useful for excluding servers inside a firewall from proxy use, while - defaulting to a common proxy for external domains. - - core.sshCommand - If this variable is set, ggiitt ffeettcchh and ggiitt ppuusshh will use the specified command instead of sssshh when - they need to connect to a remote system. The command is in the same form as the GGIITT__SSSSHH__CCOOMMMMAANNDD - environment variable and is overridden when the environment variable is set. - - core.ignoreStat - If true, Git will avoid using lstat() calls to detect if files have changed by setting the - "assume-unchanged" bit for those tracked files which it has updated identically in both the index - and working tree. - - When files are modified outside of Git, the user will need to stage the modified files explicitly - (e.g. see _E_x_a_m_p_l_e_s section in ggiitt--uuppddaattee--iinnddeexx(1)). Git will not normally detect changes to those - files. - - This is useful on systems where lstat() calls are very slow, such as CIFS/Microsoft Windows. - - False by default. - - core.preferSymlinkRefs - Instead of the default "symref" format for HEAD and other symbolic reference files, use symbolic - links. This is sometimes needed to work with old scripts that expect HEAD to be a symbolic link. - - core.alternateRefsCommand - When advertising tips of available history from an alternate, use the shell to execute the - specified command instead of ggiitt--ffoorr--eeaacchh--rreeff(1). The first argument is the absolute path of the - alternate. Output must contain one hex object id per line (i.e., the same as produced by ggiitt - ffoorr--eeaacchh--rreeff ----ffoorrmmaatt==''%%((oobbjjeeccttnnaammee))''). - - Note that you cannot generally put ggiitt ffoorr--eeaacchh--rreeff directly into the config value, as it does not - take a repository path as an argument (but you can wrap the command above in a shell script). - - core.alternateRefsPrefixes - When listing references from an alternate, list only references that begin with the given prefix. - Prefixes match as if they were given as arguments to ggiitt--ffoorr--eeaacchh--rreeff(1). To list multiple - prefixes, separate them with whitespace. If ccoorree..aalltteerrnnaatteeRReeffssCCoommmmaanndd is set, setting - ccoorree..aalltteerrnnaatteeRReeffssPPrreeffiixxeess has no effect. - - core.bare - If true this repository is assumed to be _b_a_r_e and has no working directory associated with it. If - this is the case a number of commands that require a working directory will be disabled, such as - ggiitt--aadddd(1) or ggiitt--mmeerrggee(1). - - This setting is automatically guessed by ggiitt--cclloonnee(1) or ggiitt--iinniitt(1) when the repository was - created. By default a repository that ends in "/.git" is assumed to be not bare (bare = false), - while all other repositories are assumed to be bare (bare = true). - - core.worktree - Set the path to the root of the working tree. If GGIITT__CCOOMMMMOONN__DDIIRR environment variable is set, - core.worktree is ignored and not used for determining the root of working tree. This can be - overridden by the GGIITT__WWOORRKK__TTRREEEE environment variable and the ----wwoorrkk--ttrreeee command-line option. The - value can be an absolute path or relative to the path to the .git directory, which is either - specified by --git-dir or GIT_DIR, or automatically discovered. If --git-dir or GIT_DIR is - specified but none of --work-tree, GIT_WORK_TREE and core.worktree is specified, the current - working directory is regarded as the top level of your working tree. - - Note that this variable is honored even when set in a configuration file in a ".git" subdirectory - of a directory and its value differs from the latter directory (e.g. "/path/to/.git/config" has - core.worktree set to "/different/path"), which is most likely a misconfiguration. Running Git - commands in the "/path/to" directory will still use "/different/path" as the root of the work tree - and can cause confusion unless you know what you are doing (e.g. you are creating a read-only - snapshot of the same index to a location different from the repository’s usual working tree). - - core.logAllRefUpdates - Enable the reflog. Updates to a ref is logged to the file "$$GGIITT__DDIIRR//llooggss//<>", by appending - the new and old SHA-1, the date/time and the reason of the update, but only when the file exists. - If this configuration variable is set to ttrruuee, missing "$$GGIITT__DDIIRR//llooggss//<>" file is automatically - created for branch heads (i.e. under rreeffss//hheeaaddss//), remote refs (i.e. under rreeffss//rreemmootteess//), note - refs (i.e. under rreeffss//nnootteess//), and the symbolic ref HHEEAADD. If it is set to aallwwaayyss, then a missing - reflog is automatically created for any ref under rreeffss//. - - This information can be used to determine what commit was the tip of a branch "2 days ago". - - This value is true by default in a repository that has a working directory associated with it, and - false by default in a bare repository. - - core.repositoryFormatVersion - Internal variable identifying the repository format and layout version. - - core.sharedRepository - When _g_r_o_u_p (or _t_r_u_e), the repository is made shareable between several users in a group (making - sure all the files and objects are group-writable). When _a_l_l (or _w_o_r_l_d or _e_v_e_r_y_b_o_d_y), the - repository will be readable by all users, additionally to being group-shareable. When _u_m_a_s_k (or - _f_a_l_s_e), Git will use permissions reported by umask(2). When _0_x_x_x, where _0_x_x_x is an octal number, - files in the repository will have this mode value. _0_x_x_x will override user’s umask value (whereas - the other options will only override requested parts of the user’s umask value). Examples: _0_6_6_0 - will make the repo read/write-able for the owner and group, but inaccessible to others (equivalent - to _g_r_o_u_p unless umask is e.g. _0_0_2_2). _0_6_4_0 is a repository that is group-readable but not - group-writable. See ggiitt--iinniitt(1). False by default. - - core.warnAmbiguousRefs - If true, Git will warn you if the ref name you passed it is ambiguous and might match multiple refs - in the repository. True by default. - - core.compression - An integer -1..9, indicating a default compression level. -1 is the zlib default. 0 means no - compression, and 1..9 are various speed/size tradeoffs, 9 being slowest. If set, this provides a - default to other compression variables, such as ccoorree..lloooosseeCCoommpprreessssiioonn and ppaacckk..ccoommpprreessssiioonn. - - core.looseCompression - An integer -1..9, indicating the compression level for objects that are not in a pack file. -1 is - the zlib default. 0 means no compression, and 1..9 are various speed/size tradeoffs, 9 being - slowest. If not set, defaults to core.compression. If that is not set, defaults to 1 (best speed). - - core.packedGitWindowSize - Number of bytes of a pack file to map into memory in a single mapping operation. Larger window - sizes may allow your system to process a smaller number of large pack files more quickly. Smaller - window sizes will negatively affect performance due to increased calls to the operating system’s - memory manager, but may improve performance when accessing a large number of large pack files. - - Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32 MiB on 32 bit platforms and 1 GiB - on 64 bit platforms. This should be reasonable for all users/operating systems. You probably do not - need to adjust this value. - - Common unit suffixes of _k, _m, or _g are supported. - - core.packedGitLimit - Maximum number of bytes to map simultaneously into memory from pack files. If Git needs to access - more than this many bytes at once to complete an operation it will unmap existing regions to - reclaim virtual address space within the process. - - Default is 256 MiB on 32 bit platforms and 32 TiB (effectively unlimited) on 64 bit platforms. This - should be reasonable for all users/operating systems, except on the largest projects. You probably - do not need to adjust this value. - - Common unit suffixes of _k, _m, or _g are supported. - - core.deltaBaseCacheLimit - Maximum number of bytes to reserve for caching base objects that may be referenced by multiple - deltified objects. By storing the entire decompressed base objects in a cache Git is able to avoid - unpacking and decompressing frequently used base objects multiple times. - - Default is 96 MiB on all platforms. This should be reasonable for all users/operating systems, - except on the largest projects. You probably do not need to adjust this value. - - Common unit suffixes of _k, _m, or _g are supported. - - core.bigFileThreshold - Files larger than this size are stored deflated, without attempting delta compression. Storing - large files without delta compression avoids excessive memory usage, at the slight expense of - increased disk usage. Additionally files larger than this size are always treated as binary. - - Default is 512 MiB on all platforms. This should be reasonable for most projects as source code and - other text files can still be delta compressed, but larger binary media files won’t be. - - Common unit suffixes of _k, _m, or _g are supported. - - core.excludesFile - Specifies the pathname to the file that contains patterns to describe paths that are not meant to - be tracked, in addition to _._g_i_t_i_g_n_o_r_e (per-directory) and _._g_i_t_/_i_n_f_o_/_e_x_c_l_u_d_e. Defaults to - $$XXDDGG__CCOONNFFIIGG__HHOOMMEE//ggiitt//iiggnnoorree. If $$XXDDGG__CCOONNFFIIGG__HHOOMMEE is either not set or empty, - $$HHOOMMEE//..ccoonnffiigg//ggiitt//iiggnnoorree is used instead. See ggiittiiggnnoorree(5). - - core.askPass - Some commands (e.g. svn and http interfaces) that interactively ask for a password can be told to - use an external program given via the value of this variable. Can be overridden by the GGIITT__AASSKKPPAASSSS - environment variable. If not set, fall back to the value of the SSSSHH__AASSKKPPAASSSS environment variable - or, failing that, a simple password prompt. The external program shall be given a suitable prompt - as command-line argument and write the password on its STDOUT. - - core.attributesFile - In addition to _._g_i_t_a_t_t_r_i_b_u_t_e_s (per-directory) and _._g_i_t_/_i_n_f_o_/_a_t_t_r_i_b_u_t_e_s, Git looks into this file - for attributes (see ggiittaattttrriibbuutteess(5)). Path expansions are made the same way as for - ccoorree..eexxcclluuddeessFFiillee. Its default value is $$XXDDGG__CCOONNFFIIGG__HHOOMMEE//ggiitt//aattttrriibbuutteess. If $$XXDDGG__CCOONNFFIIGG__HHOOMMEE is - either not set or empty, $$HHOOMMEE//..ccoonnffiigg//ggiitt//aattttrriibbuutteess is used instead. - - core.hooksPath - By default Git will look for your hooks in the _$_G_I_T___D_I_R_/_h_o_o_k_s directory. Set this to different - path, e.g. _/_e_t_c_/_g_i_t_/_h_o_o_k_s, and Git will try to find your hooks in that directory, e.g. - _/_e_t_c_/_g_i_t_/_h_o_o_k_s_/_p_r_e_-_r_e_c_e_i_v_e instead of in _$_G_I_T___D_I_R_/_h_o_o_k_s_/_p_r_e_-_r_e_c_e_i_v_e. - - The path can be either absolute or relative. A relative path is taken as relative to the directory - where the hooks are run (see the "DESCRIPTION" section of ggiitthhooookkss(5)). - - This configuration variable is useful in cases where you’d like to centrally configure your Git - hooks instead of configuring them on a per-repository basis, or as a more flexible and centralized - alternative to having an iinniitt..tteemmppllaatteeDDiirr where you’ve changed default hooks. - - core.editor - Commands such as ccoommmmiitt and ttaagg that let you edit messages by launching an editor use the value of - this variable when it is set, and the environment variable GGIITT__EEDDIITTOORR is not set. See ggiitt--vvaarr(1). - - core.commentChar - Commands such as ccoommmmiitt and ttaagg that let you edit messages consider a line that begins with this - character commented, and removes them after the editor returns (default _#). - - If set to "auto", ggiitt--ccoommmmiitt would select a character that is not the beginning character of any - line in existing commit messages. - - core.filesRefLockTimeout - The length of time, in milliseconds, to retry when trying to lock an individual reference. Value 0 - means not to retry at all; -1 means to try indefinitely. Default is 100 (i.e., retry for 100ms). - - core.packedRefsTimeout - The length of time, in milliseconds, to retry when trying to lock the ppaacckkeedd--rreeffss file. Value 0 - means not to retry at all; -1 means to try indefinitely. Default is 1000 (i.e., retry for 1 - second). - - core.pager - Text viewer for use by Git commands (e.g., _l_e_s_s). The value is meant to be interpreted by the - shell. The order of preference is the $$GGIITT__PPAAGGEERR environment variable, then ccoorree..ppaaggeerr - configuration, then $$PPAAGGEERR, and then the default chosen at compile time (usually _l_e_s_s). - - When the LLEESSSS environment variable is unset, Git sets it to FFRRXX (if LLEESSSS environment variable is - set, Git does not change it at all). If you want to selectively override Git’s default setting for - LLEESSSS, you can set ccoorree..ppaaggeerr to e.g. lleessss --SS. This will be passed to the shell by Git, which will - translate the final command to LLEESSSS==FFRRXX lleessss --SS. The environment does not set the SS option but the - command line does, instructing less to truncate long lines. Similarly, setting ccoorree..ppaaggeerr to lleessss - --++FF will deactivate the FF option specified by the environment from the command-line, deactivating - the "quit if one screen" behavior of lleessss. One can specifically activate some flags for particular - commands: for example, setting ppaaggeerr..bbllaammee to lleessss --SS enables line truncation only for ggiitt bbllaammee. - - Likewise, when the LLVV environment variable is unset, Git sets it to --cc. You can override this - setting by exporting LLVV with another value or setting ccoorree..ppaaggeerr to llvv ++cc. - - core.whitespace - A comma separated list of common whitespace problems to notice. _g_i_t _d_i_f_f will use - ccoolloorr..ddiiffff..wwhhiitteessppaaccee to highlight them, and _g_i_t _a_p_p_l_y _-_-_w_h_i_t_e_s_p_a_c_e_=_e_r_r_o_r will consider them as - errors. You can prefix -- to disable any of them (e.g. --ttrraaiilliinngg--ssppaaccee): - - • bbllaannkk--aatt--eeooll treats trailing whitespaces at the end of the line as an error (enabled by - default). - - • ssppaaccee--bbeeffoorree--ttaabb treats a space character that appears immediately before a tab character in - the initial indent part of the line as an error (enabled by default). - - • iinnddeenntt--wwiitthh--nnoonn--ttaabb treats a line that is indented with space characters instead of the - equivalent tabs as an error (not enabled by default). - - • ttaabb--iinn--iinnddeenntt treats a tab character in the initial indent part of the line as an error (not - enabled by default). - - • bbllaannkk--aatt--eeooff treats blank lines added at the end of file as an error (enabled by default). - - • ttrraaiilliinngg--ssppaaccee is a short-hand to cover both bbllaannkk--aatt--eeooll and bbllaannkk--aatt--eeooff. - - • ccrr--aatt--eeooll treats a carriage-return at the end of line as part of the line terminator, i.e. with - it, ttrraaiilliinngg--ssppaaccee does not trigger if the character before such a carriage-return is not a - whitespace (not enabled by default). - - • ttaabbwwiiddtthh==<> tells how many character positions a tab occupies; this is relevant for - iinnddeenntt--wwiitthh--nnoonn--ttaabb and when Git fixes ttaabb--iinn--iinnddeenntt errors. The default tab width is 8. - Allowed values are 1 to 63. - - core.fsyncObjectFiles - This boolean will enable _f_s_y_n_c_(_) when writing object files. - - This is a total waste of time and effort on a filesystem that orders data writes properly, but can - be useful for filesystems that do not use journalling (traditional UNIX filesystems) or that only - journal metadata and not file contents (OS X’s HFS+, or Linux ext3 with "data=writeback"). - - core.preloadIndex - Enable parallel index preload for operations like _g_i_t _d_i_f_f - - This can speed up operations like _g_i_t _d_i_f_f and _g_i_t _s_t_a_t_u_s especially on filesystems like NFS that - have weak caching semantics and thus relatively high IO latencies. When enabled, Git will do the - index comparison to the filesystem data in parallel, allowing overlapping IO’s. Defaults to true. - - core.unsetenvvars - Windows-only: comma-separated list of environment variables' names that need to be unset before - spawning any other process. Defaults to PPEERRLL55LLIIBB to account for the fact that Git for Windows - insists on using its own Perl interpreter. - - core.createObject - You can set this to _l_i_n_k, in which case a hardlink followed by a delete of the source are used to - make sure that object creation will not overwrite existing objects. - - On some file system/operating system combinations, this is unreliable. Set this config setting to - _r_e_n_a_m_e there; However, This will remove the check that makes sure that existing object files will - not get overwritten. - - core.notesRef - When showing commit messages, also show notes which are stored in the given ref. The ref must be - fully qualified. If the given ref does not exist, it is not an error but means that no notes should - be printed. - - This setting defaults to "refs/notes/commits", and it can be overridden by the GGIITT__NNOOTTEESS__RREEFF - environment variable. See ggiitt--nnootteess(1). - - core.commitGraph - If true, then git will read the commit-graph file (if it exists) to parse the graph structure of - commits. Defaults to false. See ggiitt--ccoommmmiitt--ggrraapphh(1) for more information. - - core.useReplaceRefs - If set to ffaallssee, behave as if the ----nnoo--rreeppllaaccee--oobbjjeeccttss option was given on the command line. See - ggiitt(1) and ggiitt--rreeppllaaccee(1) for more information. - - core.multiPackIndex - Use the multi-pack-index file to track multiple packfiles using a single index. See tthhee - mmuullttii--ppaacckk--iinnddeexx ddeessiiggnn ddooccuummeenntt[1]. - - core.sparseCheckout - Enable "sparse checkout" feature. See section "Sparse checkout" in ggiitt--rreeaadd--ttrreeee(1) for more - information. - - core.abbrev - Set the length object names are abbreviated to. If unspecified or set to "auto", an appropriate - value is computed based on the approximate number of packed objects in your repository, which - hopefully is enough for abbreviated object names to stay unique for some time. The minimum length - is 4. - - add.ignoreErrors, add.ignore-errors (deprecated) - Tells _g_i_t _a_d_d to continue adding files when some files cannot be added due to indexing errors. - Equivalent to the ----iiggnnoorree--eerrrroorrss option of ggiitt--aadddd(1). aadddd..iiggnnoorree--eerrrroorrss is deprecated, as it - does not follow the usual naming convention for configuration variables. - - alias.* - Command aliases for the ggiitt(1) command wrapper - e.g. after defining "alias.last = cat-file commit - HEAD", the invocation "git last" is equivalent to "git cat-file commit HEAD". To avoid confusion - and troubles with script usage, aliases that hide existing Git commands are ignored. Arguments are - split by spaces, the usual shell quoting and escaping is supported. A quote pair or a backslash can - be used to quote them. - - If the alias expansion is prefixed with an exclamation point, it will be treated as a shell - command. For example, defining "alias.new = !gitk --all --not ORIG_HEAD", the invocation "git new" - is equivalent to running the shell command "gitk --all --not ORIG_HEAD". Note that shell commands - will be executed from the top-level directory of a repository, which may not necessarily be the - current directory. GGIITT__PPRREEFFIIXX is set as returned by running _g_i_t _r_e_v_-_p_a_r_s_e _-_-_s_h_o_w_-_p_r_e_f_i_x from the - original current directory. See ggiitt--rreevv--ppaarrssee(1). - - am.keepcr - If true, git-am will call git-mailsplit for patches in mbox format with parameter ----kkeeeepp--ccrr. In - this case git-mailsplit will not remove \\rr from lines ending with \\rr\\nn. Can be overridden by giving - ----nnoo--kkeeeepp--ccrr from the command line. See ggiitt--aamm(1), ggiitt--mmaaiillsspplliitt(1). - - am.threeWay - By default, ggiitt aamm will fail if the patch does not apply cleanly. When set to true, this setting - tells ggiitt aamm to fall back on 3-way merge if the patch records the identity of blobs it is supposed - to apply to and we have those blobs available locally (equivalent to giving the ----33wwaayy option from - the command line). Defaults to ffaallssee. See ggiitt--aamm(1). - - apply.ignoreWhitespace - When set to _c_h_a_n_g_e, tells _g_i_t _a_p_p_l_y to ignore changes in whitespace, in the same way as the - ----iiggnnoorree--ssppaaccee--cchhaannggee option. When set to one of: no, none, never, false tells _g_i_t _a_p_p_l_y to respect - all whitespace differences. See ggiitt--aappppllyy(1). - - apply.whitespace - Tells _g_i_t _a_p_p_l_y how to handle whitespaces, in the same way as the ----wwhhiitteessppaaccee option. See ggiitt-- - aappppllyy(1). - - blame.blankBoundary - Show blank commit object name for boundary commits in ggiitt--bbllaammee(1). This option defaults to false. - - blame.coloring - This determines the coloring scheme to be applied to blame output. It can be _r_e_p_e_a_t_e_d_L_i_n_e_s, - _h_i_g_h_l_i_g_h_t_R_e_c_e_n_t, or _n_o_n_e which is the default. - - blame.date - Specifies the format used to output dates in ggiitt--bbllaammee(1). If unset the iso format is used. For - supported values, see the discussion of the ----ddaattee option at ggiitt--lloogg(1). - - blame.showEmail - Show the author email instead of author name in ggiitt--bbllaammee(1). This option defaults to false. - - blame.showRoot - Do not treat root commits as boundaries in ggiitt--bbllaammee(1). This option defaults to false. - - branch.autoSetupMerge - Tells _g_i_t _b_r_a_n_c_h and _g_i_t _c_h_e_c_k_o_u_t to set up new branches so that ggiitt--ppuullll(1) will appropriately - merge from the starting point branch. Note that even if this option is not set, this behavior can - be chosen per-branch using the ----ttrraacckk and ----nnoo--ttrraacckk options. The valid settings are: ffaallssee — no - automatic setup is done; ttrruuee — automatic setup is done when the starting point is a - remote-tracking branch; aallwwaayyss — automatic setup is done when the starting point is either a local - branch or remote-tracking branch. This option defaults to true. - - branch.autoSetupRebase - When a new branch is created with _g_i_t _b_r_a_n_c_h or _g_i_t _c_h_e_c_k_o_u_t that tracks another branch, this - variable tells Git to set up pull to rebase instead of merge (see "branch..rebase"). When - nneevveerr, rebase is never automatically set to true. When llooccaall, rebase is set to true for tracked - branches of other local branches. When rreemmoottee, rebase is set to true for tracked branches of - remote-tracking branches. When aallwwaayyss, rebase will be set to true for all tracking branches. See - "branch.autoSetupMerge" for details on how to set up a branch to track another branch. This option - defaults to never. - - branch.sort - This variable controls the sort ordering of branches when displayed by ggiitt--bbrraanncchh(1). Without the - "--sort=" option provided, the value of this variable will be used as the default. See ggiitt-- - ffoorr--eeaacchh--rreeff(1) field names for valid values. - - branch..remote - When on branch , it tells _g_i_t _f_e_t_c_h and _g_i_t _p_u_s_h which remote to fetch from/push to. The - remote to push to may be overridden with rreemmoottee..ppuusshhDDeeffaauulltt (for all branches). The remote to push - to, for the current branch, may be further overridden by bbrraanncchh..<>..ppuusshhRReemmoottee. If no remote is - configured, or if you are not on any branch, it defaults to oorriiggiinn for fetching and - rreemmoottee..ppuusshhDDeeffaauulltt for pushing. Additionally, .. (a period) is the current local repository (a - dot-repository), see bbrraanncchh..<>..mmeerrggee's final note below. - - branch..pushRemote - When on branch , it overrides bbrraanncchh..<>..rreemmoottee for pushing. It also overrides - rreemmoottee..ppuusshhDDeeffaauulltt for pushing from branch . When you pull from one place (e.g. your - upstream) and push to another place (e.g. your own publishing repository), you would want to set - rreemmoottee..ppuusshhDDeeffaauulltt to specify the remote to push to for all branches, and use this option to - override it for a specific branch. - - branch..merge - Defines, together with branch..remote, the upstream branch for the given branch. It tells _g_i_t - _f_e_t_c_h/_g_i_t _p_u_l_l/_g_i_t _r_e_b_a_s_e which branch to merge and can also affect _g_i_t _p_u_s_h (see push.default). - When in branch , it tells _g_i_t _f_e_t_c_h the default refspec to be marked for merging in - FETCH_HEAD. The value is handled like the remote part of a refspec, and must match a ref which is - fetched from the remote given by "branch..remote". The merge information is used by _g_i_t _p_u_l_l - (which at first calls _g_i_t _f_e_t_c_h) to lookup the default branch for merging. Without this option, _g_i_t - _p_u_l_l defaults to merge the first refspec fetched. Specify multiple values to get an octopus merge. - If you wish to setup _g_i_t _p_u_l_l so that it merges into from another branch in the local - repository, you can point branch..merge to the desired branch, and use the relative path - setting .. (a period) for branch..remote. - - branch..mergeOptions - Sets default options for merging into branch . The syntax and supported options are the same - as those of ggiitt--mmeerrggee(1), but option values containing whitespace characters are currently not - supported. - - branch..rebase - When true, rebase the branch on top of the fetched branch, instead of merging the default - branch from the default remote when "git pull" is run. See "pull.rebase" for doing this in a non - branch-specific manner. - - When mmeerrggeess, pass the ----rreebbaassee--mmeerrggeess option to _g_i_t _r_e_b_a_s_e so that the local merge commits are - included in the rebase (see ggiitt--rreebbaassee(1) for details). - - When preserve, also pass ----pprreesseerrvvee--mmeerrggeess along to _g_i_t _r_e_b_a_s_e so that locally committed merge - commits will not be flattened by running _g_i_t _p_u_l_l. - - When the value is iinntteerraaccttiivvee, the rebase is run in interactive mode. - - NNOOTTEE: this is a possibly dangerous operation; do nnoott use it unless you understand the implications - (see ggiitt--rreebbaassee(1) for details). - - branch..description - Branch description, can be edited with ggiitt bbrraanncchh ----eeddiitt--ddeessccrriippttiioonn. Branch description is - automatically added in the format-patch cover letter or request-pull summary. - - browser..cmd - Specify the command to invoke the specified browser. The specified command is evaluated in shell - with the URLs passed as arguments. (See ggiitt--wweebb----bbrroowwssee(1).) - - browser..path - Override the path for the given tool that may be used to browse HTML help (see --ww option in ggiitt-- - hheellpp(1)) or a working repository in gitweb (see ggiitt--iinnssttaawweebb(1)). - - checkout.defaultRemote - When you run _g_i_t _c_h_e_c_k_o_u_t _<_s_o_m_e_t_h_i_n_g_> and only have one remote, it may implicitly fall back on - checking out and tracking e.g. _o_r_i_g_i_n_/_<_s_o_m_e_t_h_i_n_g_>. This stops working as soon as you have more - than one remote with a _<_s_o_m_e_t_h_i_n_g_> reference. This setting allows for setting the name of a - preferred remote that should always win when it comes to disambiguation. The typical use-case is to - set this to oorriiggiinn. - - Currently this is used by ggiitt--cchheecckkoouutt(1) when _g_i_t _c_h_e_c_k_o_u_t _<_s_o_m_e_t_h_i_n_g_> will checkout the - _<_s_o_m_e_t_h_i_n_g_> branch on another remote, and by ggiitt--wwoorrkkttrreeee(1) when _g_i_t _w_o_r_k_t_r_e_e _a_d_d refers to a - remote branch. This setting might be used for other checkout-like commands or functionality in the - future. - - checkout.optimizeNewBranch - Optimizes the performance of "git checkout -b " when using sparse-checkout. When set to - true, git will not update the repo based on the current sparse-checkout settings. This means it - will not update the skip-worktree bit in the index nor add/remove files in the working directory to - reflect the current sparse checkout settings nor will it show the local changes. - - clean.requireForce - A boolean to make git-clean do nothing unless given -f, -i or -n. Defaults to true. - - color.advice - A boolean to enable/disable color in hints (e.g. when a push failed, see aaddvviiccee..** for a list). May - be set to aallwwaayyss, ffaallssee (or nneevveerr) or aauuttoo (or ttrruuee), in which case colors are used only when the - error output goes to a terminal. If unset, then the value of ccoolloorr..uuii is used (aauuttoo by default). - - color.advice.hint - Use customized color for hints. - - color.blame.highlightRecent - This can be used to color the metadata of a blame line depending on age of the line. - - This setting should be set to a comma-separated list of color and date settings, starting and - ending with a color, the dates should be set from oldest to newest. The metadata will be colored - given the colors if the the line was introduced before the given timestamp, overwriting older - timestamped colors. - - Instead of an absolute timestamp relative timestamps work as well, e.g. 2.weeks.ago is valid to - address anything older than 2 weeks. - - It defaults to _b_l_u_e_,_1_2 _m_o_n_t_h _a_g_o_,_w_h_i_t_e_,_1 _m_o_n_t_h _a_g_o_,_r_e_d, which colors everything older than one year - blue, recent changes between one month and one year old are kept white, and lines introduced within - the last month are colored red. - - color.blame.repeatedLines - Use the customized color for the part of git-blame output that is repeated meta information per - line (such as commit id, author name, date and timezone). Defaults to cyan. - - color.branch - A boolean to enable/disable color in the output of ggiitt--bbrraanncchh(1). May be set to aallwwaayyss, ffaallssee (or - nneevveerr) or aauuttoo (or ttrruuee), in which case colors are used only when the output is to a terminal. If - unset, then the value of ccoolloorr..uuii is used (aauuttoo by default). - - color.branch. - Use customized color for branch coloration. <> is one of ccuurrrreenntt (the current branch), llooccaall - (a local branch), rreemmoottee (a remote-tracking branch in refs/remotes/), uuppssttrreeaamm (upstream tracking - branch), ppllaaiinn (other refs). - - color.diff - Whether to use ANSI escape sequences to add color to patches. If this is set to aallwwaayyss, ggiitt-- - ddiiffff(1), ggiitt--lloogg(1), and ggiitt--sshhooww(1) will use color for all patches. If it is set to ttrruuee or aauuttoo, - those commands will only use color when output is to the terminal. If unset, then the value of - ccoolloorr..uuii is used (aauuttoo by default). - - This does not affect ggiitt--ffoorrmmaatt--ppaattcchh(1) or the _g_i_t_-_d_i_f_f_-_* plumbing commands. Can be overridden on - the command line with the ----ccoolloorr[[==<>]] option. - - color.diff. - Use customized color for diff colorization. <> specifies which part of the patch to use the - specified color, and is one of ccoonntteexxtt (context text - ppllaaiinn is a historical synonym), mmeettaa - (metainformation), ffrraagg (hunk header), _f_u_n_c (function in hunk header), oolldd (removed lines), nneeww - (added lines), ccoommmmiitt (commit headers), wwhhiitteessppaaccee (highlighting whitespace errors), oollddMMoovveedd - (deleted lines), nneewwMMoovveedd (added lines), oollddMMoovveeddDDiimmmmeedd, oollddMMoovveeddAAlltteerrnnaattiivvee, - oollddMMoovveeddAAlltteerrnnaattiivveeDDiimmmmeedd, nneewwMMoovveeddDDiimmmmeedd, nneewwMMoovveeddAAlltteerrnnaattiivvee nneewwMMoovveeddAAlltteerrnnaattiivveeDDiimmmmeedd (See the - _<_m_o_d_e_> setting of _-_-_c_o_l_o_r_-_m_o_v_e_d in ggiitt--ddiiffff(1) for details), ccoonntteexxttDDiimmmmeedd, oollddDDiimmmmeedd, nneewwDDiimmmmeedd, - ccoonntteexxttBBoolldd, oollddBBoolldd, and nneewwBBoolldd (see ggiitt--rraannggee--ddiiffff(1) for details). - - color.decorate. - Use customized color for _g_i_t _l_o_g _-_-_d_e_c_o_r_a_t_e output. <> is one of bbrraanncchh, rreemmootteeBBrraanncchh, ttaagg, - ssttaasshh or HHEEAADD for local branches, remote-tracking branches, tags, stash and HEAD, respectively and - ggrraafftteedd for grafted commits. - - color.grep - When set to aallwwaayyss, always highlight matches. When ffaallssee (or nneevveerr), never. When set to ttrruuee or - aauuttoo, use color only when the output is written to the terminal. If unset, then the value of - ccoolloorr..uuii is used (aauuttoo by default). - - color.grep. - Use customized color for grep colorization. <> specifies which part of the line to use the - specified color, and is one of - - ccoonntteexxtt - non-matching text in context lines (when using --AA, --BB, or --CC) - - ffiilleennaammee - filename prefix (when not using --hh) - - ffuunnccttiioonn - function name lines (when using --pp) - - lliinneeNNuummbbeerr - line number prefix (when using --nn) - - ccoolluummnn - column number prefix (when using ----ccoolluummnn) - - mmaattcchh - matching text (same as setting mmaattcchhCCoonntteexxtt and mmaattcchhSSeelleecctteedd) - - mmaattcchhCCoonntteexxtt - matching text in context lines - - mmaattcchhSSeelleecctteedd - matching text in selected lines - - sseelleecctteedd - non-matching text in selected lines - - sseeppaarraattoorr - separators between fields on a line (::, --, and ==) and between hunks (----) - - color.interactive - When set to aallwwaayyss, always use colors for interactive prompts and displays (such as those used by - "git-add --interactive" and "git-clean --interactive"). When false (or nneevveerr), never. When set to - ttrruuee or aauuttoo, use colors only when the output is to the terminal. If unset, then the value of - ccoolloorr..uuii is used (aauuttoo by default). - - color.interactive. - Use customized color for _g_i_t _a_d_d _-_-_i_n_t_e_r_a_c_t_i_v_e and _g_i_t _c_l_e_a_n _-_-_i_n_t_e_r_a_c_t_i_v_e output. <> may be - pprroommpptt, hheeaaddeerr, hheellpp or eerrrroorr, for four distinct types of normal output from interactive commands. - - color.pager - A boolean to enable/disable colored output when the pager is in use (default is true). - - color.push - A boolean to enable/disable color in push errors. May be set to aallwwaayyss, ffaallssee (or nneevveerr) or aauuttoo - (or ttrruuee), in which case colors are used only when the error output goes to a terminal. If unset, - then the value of ccoolloorr..uuii is used (aauuttoo by default). - - color.push.error - Use customized color for push errors. - - color.remote - If set, keywords at the start of the line are highlighted. The keywords are "error", "warning", - "hint" and "success", and are matched case-insensitively. May be set to aallwwaayyss, ffaallssee (or nneevveerr) or - aauuttoo (or ttrruuee). If unset, then the value of ccoolloorr..uuii is used (aauuttoo by default). - - color.remote. - Use customized color for each remote keyword. <> may be hhiinntt, wwaarrnniinngg, ssuucccceessss or eerrrroorr which - match the corresponding keyword. - - color.showBranch - A boolean to enable/disable color in the output of ggiitt--sshhooww--bbrraanncchh(1). May be set to aallwwaayyss, ffaallssee - (or nneevveerr) or aauuttoo (or ttrruuee), in which case colors are used only when the output is to a terminal. - If unset, then the value of ccoolloorr..uuii is used (aauuttoo by default). - - color.status - A boolean to enable/disable color in the output of ggiitt--ssttaattuuss(1). May be set to aallwwaayyss, ffaallssee (or - nneevveerr) or aauuttoo (or ttrruuee), in which case colors are used only when the output is to a terminal. If - unset, then the value of ccoolloorr..uuii is used (aauuttoo by default). - - color.status. - Use customized color for status colorization. <> is one of hheeaaddeerr (the header text of the - status message), aaddddeedd or uuppddaatteedd (files which are added but not committed), cchhaannggeedd (files which - are changed but not added in the index), uunnttrraacckkeedd (files which are not tracked by Git), bbrraanncchh - (the current branch), nnoobbrraanncchh (the color the _n_o _b_r_a_n_c_h warning is shown in, defaulting to red), - llooccaallBBrraanncchh or rreemmootteeBBrraanncchh (the local and remote branch names, respectively, when branch and - tracking information is displayed in the status short-format), or uunnmmeerrggeedd (files which have - unmerged changes). - - color.transport - A boolean to enable/disable color when pushes are rejected. May be set to aallwwaayyss, ffaallssee (or nneevveerr) - or aauuttoo (or ttrruuee), in which case colors are used only when the error output goes to a terminal. If - unset, then the value of ccoolloorr..uuii is used (aauuttoo by default). - - color.transport.rejected - Use customized color when a push was rejected. - - color.ui - This variable determines the default value for variables such as ccoolloorr..ddiiffff and ccoolloorr..ggrreepp that - control the use of color per command family. Its scope will expand as more commands learn - configuration to set a default for the ----ccoolloorr option. Set it to ffaallssee or nneevveerr if you prefer Git - commands not to use color unless enabled explicitly with some other configuration or the ----ccoolloorr - option. Set it to aallwwaayyss if you want all output not intended for machine consumption to use color, - to ttrruuee or aauuttoo (this is the default since Git 1.8.4) if you want such output to use color when - written to the terminal. - - column.ui - Specify whether supported commands should output in columns. This variable consists of a list of - tokens separated by spaces or commas: - - These options control when the feature should be enabled (defaults to _n_e_v_e_r): - - aallwwaayyss - always show in columns - - nneevveerr - never show in columns - - aauuttoo - show in columns if the output is to the terminal - - These options control layout (defaults to _c_o_l_u_m_n). Setting any of these implies _a_l_w_a_y_s if none of - _a_l_w_a_y_s, _n_e_v_e_r, or _a_u_t_o are specified. - - ccoolluummnn - fill columns before rows - - rrooww - fill rows before columns - - ppllaaiinn - show in one column - - Finally, these options can be combined with a layout option (defaults to _n_o_d_e_n_s_e): - - ddeennssee - make unequal size columns to utilize more space - - nnooddeennssee - make equal size columns - - column.branch - Specify whether to output branch listing in ggiitt bbrraanncchh in columns. See ccoolluummnn..uuii for details. - - column.clean - Specify the layout when list items in ggiitt cclleeaann --ii, which always shows files and directories in - columns. See ccoolluummnn..uuii for details. - - column.status - Specify whether to output untracked files in ggiitt ssttaattuuss in columns. See ccoolluummnn..uuii for details. - - column.tag - Specify whether to output tag listing in ggiitt ttaagg in columns. See ccoolluummnn..uuii for details. - - commit.cleanup - This setting overrides the default of the ----cclleeaannuupp option in ggiitt ccoommmmiitt. See ggiitt--ccoommmmiitt(1) for - details. Changing the default can be useful when you always want to keep lines that begin with - comment character ## in your log message, in which case you would do ggiitt ccoonnffiigg ccoommmmiitt..cclleeaannuupp - wwhhiitteessppaaccee (note that you will have to remove the help lines that begin with ## in the commit log - template yourself, if you do this). - - commit.gpgSign - A boolean to specify whether all commits should be GPG signed. Use of this option when doing - operations such as rebase can result in a large number of commits being signed. It may be - convenient to use an agent to avoid typing your GPG passphrase several times. - - commit.status - A boolean to enable/disable inclusion of status information in the commit message template when - using an editor to prepare the commit message. Defaults to true. - - commit.template - Specify the pathname of a file to use as the template for new commit messages. - - commit.verbose - A boolean or int to specify the level of verbose with ggiitt ccoommmmiitt. See ggiitt--ccoommmmiitt(1). - - credential.helper - Specify an external helper to be called when a username or password credential is needed; the - helper may consult external storage to avoid prompting the user for the credentials. Note that - multiple helpers may be defined. See ggiittccrreeddeennttiiaallss(7) for details. - - credential.useHttpPath - When acquiring credentials, consider the "path" component of an http or https URL to be important. - Defaults to false. See ggiittccrreeddeennttiiaallss(7) for more information. - - credential.username - If no username is set for a network authentication, use this username by default. See - credential..* below, and ggiittccrreeddeennttiiaallss(7). - - credential..* - Any of the credential.* options above can be applied selectively to some credentials. For example - "credential.https://example.com.username" would set the default username only for https connections - to example.com. See ggiittccrreeddeennttiiaallss(7) for details on how URLs are matched. - - credentialCache.ignoreSIGHUP - Tell git-credential-cache—daemon to ignore SIGHUP, instead of quitting. - - completion.commands - This is only used by git-completion.bash to add or remove commands from the list of completed - commands. Normally only porcelain commands and a few select others are completed. You can add more - commands, separated by space, in this variable. Prefixing the command with _- will remove it from - the existing list. - - diff.autoRefreshIndex - When using _g_i_t _d_i_f_f to compare with work tree files, do not consider stat-only change as changed. - Instead, silently run ggiitt uuppddaattee--iinnddeexx ----rreeffrreesshh to update the cached stat information for paths - whose contents in the work tree match the contents in the index. This option defaults to true. Note - that this affects only _g_i_t _d_i_f_f Porcelain, and not lower level _d_i_f_f commands such as _g_i_t - _d_i_f_f_-_f_i_l_e_s. - - diff.dirstat - A comma separated list of ----ddiirrssttaatt parameters specifying the default behavior of the ----ddiirrssttaatt - option to ggiitt--ddiiffff(1)` and friends. The defaults can be overridden on the command line (using - ----ddiirrssttaatt==<>). The fallback defaults (when not changed by ddiiffff..ddiirrssttaatt) are - cchhaannggeess,,nnoonnccuummuullaattiivvee,,33. The following parameters are available: - - cchhaannggeess - Compute the dirstat numbers by counting the lines that have been removed from the source, or - added to the destination. This ignores the amount of pure code movements within a file. In - other words, rearranging lines in a file is not counted as much as other changes. This is the - default behavior when no parameter is given. - - lliinneess - Compute the dirstat numbers by doing the regular line-based diff analysis, and summing the - removed/added line counts. (For binary files, count 64-byte chunks instead, since binary files - have no natural concept of lines). This is a more expensive ----ddiirrssttaatt behavior than the cchhaannggeess - behavior, but it does count rearranged lines within a file as much as other changes. The - resulting output is consistent with what you get from the other ----**ssttaatt options. - - ffiilleess - Compute the dirstat numbers by counting the number of files changed. Each changed file counts - equally in the dirstat analysis. This is the computationally cheapest ----ddiirrssttaatt behavior, since - it does not have to look at the file contents at all. - - ccuummuullaattiivvee - Count changes in a child directory for the parent directory as well. Note that when using - ccuummuullaattiivvee, the sum of the percentages reported may exceed 100%. The default (non-cumulative) - behavior can be specified with the nnoonnccuummuullaattiivvee parameter. - - - An integer parameter specifies a cut-off percent (3% by default). Directories contributing less - than this percentage of the changes are not shown in the output. - - Example: The following will count changed files, while ignoring directories with less than 10% of - the total amount of changed files, and accumulating child directory counts in the parent - directories: ffiilleess,,1100,,ccuummuullaattiivvee. - - diff.statGraphWidth - Limit the width of the graph part in --stat output. If set, applies to all commands generating - --stat output except format-patch. - - diff.context - Generate diffs with lines of context instead of the default of 3. This value is overridden by - the -U option. - - diff.interHunkContext - Show the context between diff hunks, up to the specified number of lines, thereby fusing the hunks - that are close to each other. This value serves as the default for the ----iinntteerr--hhuunnkk--ccoonntteexxtt command - line option. - - diff.external - If this config variable is set, diff generation is not performed using the internal diff machinery, - but using the given command. Can be overridden with the ‘GIT_EXTERNAL_DIFF’ environment variable. - The command is called with parameters as described under "git Diffs" in ggiitt(1). Note: if you want - to use an external diff program only on a subset of your files, you might want to use - ggiittaattttrriibbuutteess(5) instead. - - diff.ignoreSubmodules - Sets the default value of --ignore-submodules. Note that this affects only _g_i_t _d_i_f_f Porcelain, and - not lower level _d_i_f_f commands such as _g_i_t _d_i_f_f_-_f_i_l_e_s. _g_i_t _c_h_e_c_k_o_u_t also honors this setting when - reporting uncommitted changes. Setting it to _a_l_l disables the submodule summary normally shown by - _g_i_t _c_o_m_m_i_t and _g_i_t _s_t_a_t_u_s when ssttaattuuss..ssuubbmmoodduulleeSSuummmmaarryy is set unless it is overridden by using the - --ignore-submodules command-line option. The _g_i_t _s_u_b_m_o_d_u_l_e commands are not affected by this - setting. - - diff.mnemonicPrefix - If set, _g_i_t _d_i_f_f uses a prefix pair that is different from the standard "a/" and "b/" depending on - what is being compared. When this configuration is in effect, reverse diff output also swaps the - order of the prefixes: - - ggiitt ddiiffff - compares the (i)ndex and the (w)ork tree; - - ggiitt ddiiffff HHEEAADD - compares a (c)ommit and the (w)ork tree; - - ggiitt ddiiffff ----ccaacchheedd - compares a (c)ommit and the (i)ndex; - - ggiitt ddiiffff HHEEAADD::ffiillee11 ffiillee22 - compares an (o)bject and a (w)ork tree entity; - - ggiitt ddiiffff ----nnoo--iinnddeexx aa bb - compares two non-git things (1) and (2). - - diff.noprefix - If set, _g_i_t _d_i_f_f does not show any source or destination prefix. - - diff.orderFile - File indicating how to order files within a diff. See the _-_O option to ggiitt--ddiiffff(1) for details. If - ddiiffff..oorrddeerrFFiillee is a relative pathname, it is treated as relative to the top of the working tree. - - diff.renameLimit - The number of files to consider when performing the copy/rename detection; equivalent to the _g_i_t - _d_i_f_f option --ll. This setting has no effect if rename detection is turned off. - - diff.renames - Whether and how Git detects renames. If set to "false", rename detection is disabled. If set to - "true", basic rename detection is enabled. If set to "copies" or "copy", Git will detect copies, as - well. Defaults to true. Note that this affects only _g_i_t _d_i_f_f Porcelain like ggiitt--ddiiffff(1) and ggiitt-- - lloogg(1), and not lower level commands such as ggiitt--ddiiffff--ffiilleess(1). - - diff.suppressBlankEmpty - A boolean to inhibit the standard behavior of printing a space before each empty output line. - Defaults to false. - - diff.submodule - Specify the format in which differences in submodules are shown. The "short" format just shows the - names of the commits at the beginning and end of the range. The "log" format lists the commits in - the range like ggiitt--ssuubbmmoodduullee(1) ssuummmmaarryy does. The "diff" format shows an inline diff of the changed - contents of the submodule. Defaults to "short". - - diff.wordRegex - A POSIX Extended Regular Expression used to determine what is a "word" when performing word-by-word - difference calculations. Character sequences that match the regular expression are "words", all - other characters are iiggnnoorraabbllee whitespace. - - diff..command - The custom diff driver command. See ggiittaattttrriibbuutteess(5) for details. - - diff..xfuncname - The regular expression that the diff driver should use to recognize the hunk header. A built-in - pattern may also be used. See ggiittaattttrriibbuutteess(5) for details. - - diff..binary - Set this option to true to make the diff driver treat files as binary. See ggiittaattttrriibbuutteess(5) for - details. - - diff..textconv - The command that the diff driver should call to generate the text-converted version of a file. The - result of the conversion is used to generate a human-readable diff. See ggiittaattttrriibbuutteess(5) for - details. - - diff..wordRegex - The regular expression that the diff driver should use to split words in a line. See - ggiittaattttrriibbuutteess(5) for details. - - diff..cachetextconv - Set this option to true to make the diff driver cache the text conversion outputs. See - ggiittaattttrriibbuutteess(5) for details. - - diff.tool - Controls which diff tool is used by ggiitt--ddiiffffttooooll(1). This variable overrides the value configured - in mmeerrggee..ttooooll. The list below shows the valid built-in values. Any other value is treated as a - custom diff tool and requires that a corresponding difftool..cmd variable is defined. - - diff.guitool - Controls which diff tool is used by ggiitt--ddiiffffttooooll(1) when the -g/--gui flag is specified. This - variable overrides the value configured in mmeerrggee..gguuiittooooll. The list below shows the valid built-in - values. Any other value is treated as a custom diff tool and requires that a corresponding - difftool..cmd variable is defined. - - • araxis - - • bc - - • bc3 - - • codecompare - - • deltawalker - - • diffmerge - - • diffuse - - • ecmerge - - • emerge - - • examdiff - - • guiffy - - • gvimdiff - - • gvimdiff2 - - • gvimdiff3 - - • kdiff3 - - • kompare - - • meld - - • opendiff - - • p4merge - - • tkdiff - - • vimdiff - - • vimdiff2 - - • vimdiff3 - - • winmerge - - • xxdiff - - diff.indentHeuristic - Set this option to ttrruuee to enable experimental heuristics that shift diff hunk boundaries to make - patches easier to read. - - diff.algorithm - Choose a diff algorithm. The variants are as follows: - - ddeeffaauulltt, mmyyeerrss - The basic greedy diff algorithm. Currently, this is the default. - - mmiinniimmaall - Spend extra time to make sure the smallest possible diff is produced. - - ppaattiieennccee - Use "patience diff" algorithm when generating patches. - - hhiissttooggrraamm - This algorithm extends the patience algorithm to "support low-occurrence common elements". - - diff.wsErrorHighlight - Highlight whitespace errors in the ccoonntteexxtt, oolldd or nneeww lines of the diff. Multiple values are - separated by comma, nnoonnee resets previous values, ddeeffaauulltt reset the list to nneeww and aallll is a - shorthand for oolldd,,nneeww,,ccoonntteexxtt. The whitespace errors are colored with ccoolloorr..ddiiffff..wwhhiitteessppaaccee. The - command line option ----wwss--eerrrroorr--hhiigghhlliigghhtt==<> overrides this setting. - - diff.colorMoved - If set to either a valid <> or a true value, moved lines in a diff are colored differently, for - details of valid modes see _-_-_c_o_l_o_r_-_m_o_v_e_d in ggiitt--ddiiffff(1). If simply set to true the default color - mode will be used. When set to false, moved lines are not colored. - - diff.colorMovedWS - When moved lines are colored using e.g. the ddiiffff..ccoolloorrMMoovveedd setting, this option controls the - <> how spaces are treated for details of valid modes see _-_-_c_o_l_o_r_-_m_o_v_e_d_-_w_s in ggiitt--ddiiffff(1). - - difftool..path - Override the path for the given tool. This is useful in case your tool is not in the PATH. - - difftool..cmd - Specify the command to invoke the specified diff tool. The specified command is evaluated in shell - with the following variables available: _L_O_C_A_L is set to the name of the temporary file containing - the contents of the diff pre-image and _R_E_M_O_T_E is set to the name of the temporary file containing - the contents of the diff post-image. - - difftool.prompt - Prompt before each invocation of the diff tool. - - fastimport.unpackLimit - If the number of objects imported by ggiitt--ffaasstt--iimmppoorrtt(1) is below this limit, then the objects will - be unpacked into loose object files. However if the number of imported objects equals or exceeds - this limit then the pack will be stored as a pack. Storing the pack from a fast-import can make the - import operation complete faster, especially on slow filesystems. If not set, the value of - ttrraannssffeerr..uunnppaacckkLLiimmiitt is used instead. - - fetch.recurseSubmodules - This option can be either set to a boolean value or to _o_n_-_d_e_m_a_n_d. Setting it to a boolean changes - the behavior of fetch and pull to unconditionally recurse into submodules when set to true or to - not recurse at all when set to false. When set to _o_n_-_d_e_m_a_n_d (the default value), fetch and pull - will only recurse into a populated submodule when its superproject retrieves a commit that updates - the submodule’s reference. - - fetch.fsckObjects - If it is set to true, git-fetch-pack will check all fetched objects. See ttrraannssffeerr..ffsscckkOObbjjeeccttss for - what’s checked. Defaults to false. If not set, the value of ttrraannssffeerr..ffsscckkOObbjjeeccttss is used instead. - - fetch.fsck. - Acts like ffsscckk..<>, but is used by ggiitt--ffeettcchh--ppaacckk(1) instead of ggiitt--ffsscckk(1). See the - ffsscckk..<> documentation for details. - - fetch.fsck.skipList - Acts like ffsscckk..sskkiippLLiisstt, but is used by ggiitt--ffeettcchh--ppaacckk(1) instead of ggiitt--ffsscckk(1). See the - ffsscckk..sskkiippLLiisstt documentation for details. - - fetch.unpackLimit - If the number of objects fetched over the Git native transfer is below this limit, then the objects - will be unpacked into loose object files. However if the number of received objects equals or - exceeds this limit then the received pack will be stored as a pack, after adding any missing delta - bases. Storing the pack from a push can make the push operation complete faster, especially on slow - filesystems. If not set, the value of ttrraannssffeerr..uunnppaacckkLLiimmiitt is used instead. - - fetch.prune - If true, fetch will automatically behave as if the ----pprruunnee option was given on the command line. - See also rreemmoottee..<>..pprruunnee and the PRUNING section of ggiitt--ffeettcchh(1). - - fetch.pruneTags - If true, fetch will automatically behave as if the rreeffss//ttaaggss//**::rreeffss//ttaaggss//** refspec was provided - when pruning, if not set already. This allows for setting both this option and ffeettcchh..pprruunnee to - maintain a 1=1 mapping to upstream refs. See also rreemmoottee..<>..pprruunneeTTaaggss and the PRUNING section - of ggiitt--ffeettcchh(1). - - fetch.output - Control how ref update status is printed. Valid values are ffuullll and ccoommppaacctt. Default value is ffuullll. - See section OUTPUT in ggiitt--ffeettcchh(1) for detail. - - fetch.negotiationAlgorithm - Control how information about the commits in the local repository is sent when negotiating the - contents of the packfile to be sent by the server. Set to "skipping" to use an algorithm that skips - commits in an effort to converge faster, but may result in a larger-than-necessary packfile; The - default is "default" which instructs Git to use the default algorithm that never skips commits - (unless the server has acknowledged it or one of its descendants). Unknown values will cause _g_i_t - _f_e_t_c_h to error out. - - See also the ----nneeggoottiiaattiioonn--ttiipp option for ggiitt--ffeettcchh(1). - - format.attach - Enable multipart/mixed attachments as the default for _f_o_r_m_a_t_-_p_a_t_c_h. The value can also be a double - quoted string which will enable attachments as the default and set the value as the boundary. See - the --attach option in ggiitt--ffoorrmmaatt--ppaattcchh(1). - - format.from - Provides the default value for the ----ffrroomm option to format-patch. Accepts a boolean value, or a - name and email address. If false, format-patch defaults to ----nnoo--ffrroomm, using commit authors directly - in the "From:" field of patch mails. If true, format-patch defaults to ----ffrroomm, using your committer - identity in the "From:" field of patch mails and including a "From:" field in the body of the patch - mail if different. If set to a non-boolean value, format-patch uses that value instead of your - committer identity. Defaults to false. - - format.numbered - A boolean which can enable or disable sequence numbers in patch subjects. It defaults to "auto" - which enables it only if there is more than one patch. It can be enabled or disabled for all - messages by setting it to "true" or "false". See --numbered option in ggiitt--ffoorrmmaatt--ppaattcchh(1). - - format.headers - Additional email headers to include in a patch to be submitted by mail. See ggiitt--ffoorrmmaatt--ppaattcchh(1). - - format.to, format.cc - Additional recipients to include in a patch to be submitted by mail. See the --to and --cc options - in ggiitt--ffoorrmmaatt--ppaattcchh(1). - - format.subjectPrefix - The default for format-patch is to output files with the _[_P_A_T_C_H_] subject prefix. Use this variable - to change that prefix. - - format.signature - The default for format-patch is to output a signature containing the Git version number. Use this - variable to change that default. Set this variable to the empty string ("") to suppress signature - generation. - - format.signatureFile - Works just like format.signature except the contents of the file specified by this variable will be - used as the signature. - - format.suffix - The default for format-patch is to output files with the suffix ..ppaattcchh. Use this variable to change - that suffix (make sure to include the dot if you want it). - - format.pretty - The default pretty format for log/show/whatchanged command, See ggiitt--lloogg(1), ggiitt--sshhooww(1), ggiitt-- - wwhhaattcchhaannggeedd(1). - - format.thread - The default threading style for _g_i_t _f_o_r_m_a_t_-_p_a_t_c_h. Can be a boolean value, or sshhaallllooww or ddeeeepp. - sshhaallllooww threading makes every mail a reply to the head of the series, where the head is chosen from - the cover letter, the ----iinn--rreeppllyy--ttoo, and the first patch mail, in this order. ddeeeepp threading makes - every mail a reply to the previous one. A true boolean value is the same as sshhaallllooww, and a false - value disables threading. - - format.signOff - A boolean value which lets you enable the --ss//----ssiiggnnooffff option of format-patch by default. NNoottee:: - Adding the Signed-off-by: line to a patch should be a conscious act and means that you certify you - have the rights to submit this work under the same open source license. Please see the - _S_u_b_m_i_t_t_i_n_g_P_a_t_c_h_e_s document for further discussion. - - format.coverLetter - A boolean that controls whether to generate a cover-letter when format-patch is invoked, but in - addition can be set to "auto", to generate a cover-letter only when there’s more than one patch. - - format.outputDirectory - Set a custom directory to store the resulting files instead of the current working directory. - - format.useAutoBase - A boolean value which lets you enable the ----bbaassee==aauuttoo option of format-patch by default. - - filter..clean - The command which is used to convert the content of a worktree file to a blob upon checkin. See - ggiittaattttrriibbuutteess(5) for details. - - filter..smudge - The command which is used to convert the content of a blob object to a worktree file upon checkout. - See ggiittaattttrriibbuutteess(5) for details. - - fsck. - During fsck git may find issues with legacy data which wouldn’t be generated by current versions of - git, and which wouldn’t be sent over the wire if ttrraannssffeerr..ffsscckkOObbjjeeccttss was set. This feature is - intended to support working with legacy repositories containing such data. - - Setting ffsscckk..<> will be picked up by ggiitt--ffsscckk(1), but to accept pushes of such data set - rreecceeiivvee..ffsscckk..<> instead, or to clone or fetch it set ffeettcchh..ffsscckk..<>. - - The rest of the documentation discusses ffsscckk..** for brevity, but the same applies for the - corresponding rreecceeiivvee..ffsscckk..** and ffeettcchh..<>..**. variables. - - Unlike variables like ccoolloorr..uuii and ccoorree..eeddiittoorr the rreecceeiivvee..ffsscckk..<> and ffeettcchh..ffsscckk..<> - variables will not fall back on the ffsscckk..<> configuration if they aren’t set. To uniformly - configure the same fsck settings in different circumstances all three of them they must all set to - the same values. - - When ffsscckk..<> is set, errors can be switched to warnings and vice versa by configuring the - ffsscckk..<> setting where the <> is the fsck message ID and the value is one of eerrrroorr, wwaarrnn - or iiggnnoorree. For convenience, fsck prefixes the error/warning with the message ID, e.g. - "missingEmail: invalid author/committer line - missing email" means that setting ffsscckk..mmiissssiinnggEEmmaaiill - == iiggnnoorree will hide that issue. - - In general, it is better to enumerate existing objects with problems with ffsscckk..sskkiippLLiisstt, instead of - listing the kind of breakages these problematic objects share to be ignored, as doing the latter - will allow new instances of the same breakages go unnoticed. - - Setting an unknown ffsscckk..<> value will cause fsck to die, but doing the same for - rreecceeiivvee..ffsscckk..<> and ffeettcchh..ffsscckk..<> will only cause git to warn. - - fsck.skipList - The path to a list of object names (i.e. one unabbreviated SHA-1 per line) that are known to be - broken in a non-fatal way and should be ignored. On versions of Git 2.20 and later comments (_#), - empty lines, and any leading and trailing whitespace is ignored. Everything but a SHA-1 per line - will error out on older versions. - - This feature is useful when an established project should be accepted despite early commits - containing errors that can be safely ignored such as invalid committer email addresses. Note: - corrupt objects cannot be skipped with this setting. - - Like ffsscckk..<> this variable has corresponding rreecceeiivvee..ffsscckk..sskkiippLLiisstt and ffeettcchh..ffsscckk..sskkiippLLiisstt - variants. - - Unlike variables like ccoolloorr..uuii and ccoorree..eeddiittoorr the rreecceeiivvee..ffsscckk..sskkiippLLiisstt and ffeettcchh..ffsscckk..sskkiippLLiisstt - variables will not fall back on the ffsscckk..sskkiippLLiisstt configuration if they aren’t set. To uniformly - configure the same fsck settings in different circumstances all three of them they must all set to - the same values. - - Older versions of Git (before 2.20) documented that the object names list should be sorted. This - was never a requirement, the object names could appear in any order, but when reading the list we - tracked whether the list was sorted for the purposes of an internal binary search implementation, - which could save itself some work with an already sorted list. Unless you had a humongous list - there was no reason to go out of your way to pre-sort the list. After Git version 2.20 a hash - implementation is used instead, so there’s now no reason to pre-sort the list. - - gc.aggressiveDepth - The depth parameter used in the delta compression algorithm used by _g_i_t _g_c _-_-_a_g_g_r_e_s_s_i_v_e. This - defaults to 50. - - gc.aggressiveWindow - The window size parameter used in the delta compression algorithm used by _g_i_t _g_c _-_-_a_g_g_r_e_s_s_i_v_e. This - defaults to 250. - - gc.auto - When there are approximately more than this many loose objects in the repository, ggiitt ggcc ----aauuttoo - will pack them. Some Porcelain commands use this command to perform a light-weight garbage - collection from time to time. The default value is 6700. Setting this to 0 disables it. - - gc.autoPackLimit - When there are more than this many packs that are not marked with **..kkeeeepp file in the repository, - ggiitt ggcc ----aauuttoo consolidates them into one larger pack. The default value is 50. Setting this to 0 - disables it. - - gc.autoDetach - Make ggiitt ggcc ----aauuttoo return immediately and run in background if the system supports it. Default is - true. - - gc.bigPackThreshold - If non-zero, all packs larger than this limit are kept when ggiitt ggcc is run. This is very similar to - ----kkeeeepp--bbaassee--ppaacckk except that all packs that meet the threshold are kept, not just the base pack. - Defaults to zero. Common unit suffixes of _k, _m, or _g are supported. - - Note that if the number of kept packs is more than gc.autoPackLimit, this configuration variable is - ignored, all packs except the base pack will be repacked. After this the number of packs should go - below gc.autoPackLimit and gc.bigPackThreshold should be respected again. - - gc.writeCommitGraph - If true, then gc will rewrite the commit-graph file when ggiitt--ggcc(1) is run. When using ggiitt--ggcc(1) - _-_-_a_u_t_o the commit-graph will be updated if housekeeping is required. Default is false. See ggiitt-- - ccoommmmiitt--ggrraapphh(1) for details. - - gc.logExpiry - If the file gc.log exists, then ggiitt ggcc ----aauuttoo will print its content and exit with status zero - instead of running unless that file is more than _g_c_._l_o_g_E_x_p_i_r_y old. Default is "1.day". See - ggcc..pprruunneeEExxppiirree for more ways to specify its value. - - gc.packRefs - Running ggiitt ppaacckk--rreeffss in a repository renders it unclonable by Git versions prior to 1.5.1.2 over - dumb transports such as HTTP. This variable determines whether _g_i_t _g_c runs ggiitt ppaacckk--rreeffss. This can - be set to nnoottbbaarree to enable it within all non-bare repos or it can be set to a boolean value. The - default is ttrruuee. - - gc.pruneExpire - When _g_i_t _g_c is run, it will call _p_r_u_n_e _-_-_e_x_p_i_r_e _2_._w_e_e_k_s_._a_g_o. Override the grace period with this - config variable. The value "now" may be used to disable this grace period and always prune - unreachable objects immediately, or "never" may be used to suppress pruning. This feature helps - prevent corruption when _g_i_t _g_c runs concurrently with another process writing to the repository; - see the "NOTES" section of ggiitt--ggcc(1). - - gc.worktreePruneExpire - When _g_i_t _g_c is run, it calls _g_i_t _w_o_r_k_t_r_e_e _p_r_u_n_e _-_-_e_x_p_i_r_e _3_._m_o_n_t_h_s_._a_g_o. This config variable can be - used to set a different grace period. The value "now" may be used to disable the grace period and - prune $$GGIITT__DDIIRR//wwoorrkkttrreeeess immediately, or "never" may be used to suppress pruning. - - gc.reflogExpire, gc..reflogExpire - _g_i_t _r_e_f_l_o_g _e_x_p_i_r_e removes reflog entries older than this time; defaults to 90 days. The value "now" - expires all entries immediately, and "never" suppresses expiration altogether. With "" - (e.g. "refs/stash") in the middle the setting applies only to the refs that match the . - - gc.reflogExpireUnreachable, gc..reflogExpireUnreachable - _g_i_t _r_e_f_l_o_g _e_x_p_i_r_e removes reflog entries older than this time and are not reachable from the - current tip; defaults to 30 days. The value "now" expires all entries immediately, and "never" - suppresses expiration altogether. With "" (e.g. "refs/stash") in the middle, the setting - applies only to the refs that match the . - - gc.rerereResolved - Records of conflicted merge you resolved earlier are kept for this many days when _g_i_t _r_e_r_e_r_e _g_c is - run. You can also use more human-readable "1.month.ago", etc. The default is 60 days. See ggiitt-- - rreerreerree(1). - - gc.rerereUnresolved - Records of conflicted merge you have not resolved are kept for this many days when _g_i_t _r_e_r_e_r_e _g_c is - run. You can also use more human-readable "1.month.ago", etc. The default is 15 days. See ggiitt-- - rreerreerree(1). - - gitcvs.commitMsgAnnotation - Append this string to each commit message. Set to empty string to disable this feature. Defaults to - "via git-CVS emulator". - - gitcvs.enabled - Whether the CVS server interface is enabled for this repository. See ggiitt--ccvvsssseerrvveerr(1). - - gitcvs.logFile - Path to a log file where the CVS server interface well... logs various stuff. See ggiitt--ccvvsssseerrvveerr(1). - - gitcvs.usecrlfattr - If true, the server will look up the end-of-line conversion attributes for files to determine the - --kk modes to use. If the attributes force Git to treat a file as text, the --kk mode will be left - blank so CVS clients will treat it as text. If they suppress text conversion, the file will be set - with _-_k_b mode, which suppresses any newline munging the client might otherwise do. If the - attributes do not allow the file type to be determined, then ggiittccvvss..aallllBBiinnaarryy is used. See - ggiittaattttrriibbuutteess(5). - - gitcvs.allBinary - This is used if ggiittccvvss..uusseeccrrllffaattttrr does not resolve the correct _-_k_b mode to use. If true, all - unresolved files are sent to the client in mode _-_k_b. This causes the client to treat them as binary - files, which suppresses any newline munging it otherwise might do. Alternatively, if it is set to - "guess", then the contents of the file are examined to decide if it is binary, similar to - ccoorree..aauuttooccrrllff. - - gitcvs.dbName - Database used by git-cvsserver to cache revision information derived from the Git repository. The - exact meaning depends on the used database driver, for SQLite (which is the default driver) this is - a filename. Supports variable substitution (see ggiitt--ccvvsssseerrvveerr(1) for details). May not contain - semicolons (;;). Default: _%_G_g_i_t_c_v_s_._%_m_._s_q_l_i_t_e - - gitcvs.dbDriver - Used Perl DBI driver. You can specify any available driver for this here, but it might not work. - git-cvsserver is tested with _D_B_D_:_:_S_Q_L_i_t_e, reported to work with _D_B_D_:_:_P_g, and reported nnoott to work - with _D_B_D_:_:_m_y_s_q_l. Experimental feature. May not contain double colons (::). Default: _S_Q_L_i_t_e. See ggiitt-- - ccvvsssseerrvveerr(1). - - gitcvs.dbUser, gitcvs.dbPass - Database user and password. Only useful if setting ggiittccvvss..ddbbDDrriivveerr, since SQLite has no concept of - database users and/or passwords. _g_i_t_c_v_s_._d_b_U_s_e_r supports variable substitution (see ggiitt-- - ccvvsssseerrvveerr(1) for details). - - gitcvs.dbTableNamePrefix - Database table name prefix. Prepended to the names of any database tables used, allowing a single - database to be used for several repositories. Supports variable substitution (see ggiitt--ccvvsssseerrvveerr(1) - for details). Any non-alphabetic characters will be replaced with underscores. - - All gitcvs variables except for ggiittccvvss..uusseeccrrllffaattttrr and ggiittccvvss..aallllBBiinnaarryy can also be specified as - _g_i_t_c_v_s_._<_a_c_c_e_s_s___m_e_t_h_o_d_>_._<_v_a_r_n_a_m_e_> (where _a_c_c_e_s_s___m_e_t_h_o_d is one of "ext" and "pserver") to make them apply - only for the given access method. - - gitweb.category, gitweb.description, gitweb.owner, gitweb.url - See ggiittwweebb(1) for description. - - gitweb.avatar, gitweb.blame, gitweb.grep, gitweb.highlight, gitweb.patches, gitweb.pickaxe, - gitweb.remote_heads, gitweb.showSizes, gitweb.snapshot - See ggiittwweebb..ccoonnff(5) for description. - - grep.lineNumber - If set to true, enable --nn option by default. - - grep.column - If set to true, enable the ----ccoolluummnn option by default. - - grep.patternType - Set the default matching behavior. Using a value of _b_a_s_i_c, _e_x_t_e_n_d_e_d, _f_i_x_e_d, or _p_e_r_l will enable the - ----bbaassiicc--rreeggeexxpp, ----eexxtteennddeedd--rreeggeexxpp, ----ffiixxeedd--ssttrriinnggss, or ----ppeerrll--rreeggeexxpp option accordingly, while the - value _d_e_f_a_u_l_t will return to the default matching behavior. - - grep.extendedRegexp - If set to true, enable ----eexxtteennddeedd--rreeggeexxpp option by default. This option is ignored when the - ggrreepp..ppaatttteerrnnTTyyppee option is set to a value other than _d_e_f_a_u_l_t. - - grep.threads - Number of grep worker threads to use. See ggrreepp..tthhrreeaaddss in ggiitt--ggrreepp(1) for more information. - - grep.fallbackToNoIndex - If set to true, fall back to git grep --no-index if git grep is executed outside of a git - repository. Defaults to false. - - gpg.program - Use this custom program instead of "ggppgg" found on $$PPAATTHH when making or verifying a PGP signature. - The program must support the same command-line interface as GPG, namely, to verify a detached - signature, "ggppgg ----vveerriiffyy $$ffiillee -- <<$$ssiiggnnaattuurree" is run, and the program is expected to signal a good - signature by exiting with code 0, and to generate an ASCII-armored detached signature, the standard - input of "ggppgg --bbssaauu $$kkeeyy" is fed with the contents to be signed, and the program is expected to - send the result to its standard output. - - gpg.format - Specifies which key format to use when signing with ----ggppgg--ssiiggnn. Default is "openpgp" and another - possible value is "x509". - - gpg..program - Use this to customize the program used for the signing format you chose. (see ggppgg..pprrooggrraamm and - ggppgg..ffoorrmmaatt) ggppgg..pprrooggrraamm can still be used as a legacy synonym for ggppgg..ooppeennppggpp..pprrooggrraamm. The default - value for ggppgg..xx550099..pprrooggrraamm is "gpgsm". - - gui.commitMsgWidth - Defines how wide the commit message window is in the ggiitt--gguuii(1). "75" is the default. - - gui.diffContext - Specifies how many context lines should be used in calls to diff made by the ggiitt--gguuii(1). The - default is "5". - - gui.displayUntracked - Determines if ggiitt--gguuii(1) shows untracked files in the file list. The default is "true". - - gui.encoding - Specifies the default encoding to use for displaying of file contents in ggiitt--gguuii(1) and ggiittkk(1). It - can be overridden by setting the _e_n_c_o_d_i_n_g attribute for relevant files (see ggiittaattttrriibbuutteess(5)). If - this option is not set, the tools default to the locale encoding. - - gui.matchTrackingBranch - Determines if new branches created with ggiitt--gguuii(1) should default to tracking remote branches with - matching names or not. Default: "false". - - gui.newBranchTemplate - Is used as suggested name when creating new branches using the ggiitt--gguuii(1). - - gui.pruneDuringFetch - "true" if ggiitt--gguuii(1) should prune remote-tracking branches when performing a fetch. The default - value is "false". - - gui.trustmtime - Determines if ggiitt--gguuii(1) should trust the file modification timestamp or not. By default the - timestamps are not trusted. - - gui.spellingDictionary - Specifies the dictionary used for spell checking commit messages in the ggiitt--gguuii(1). When set to - "none" spell checking is turned off. - - gui.fastCopyBlame - If true, _g_i_t _g_u_i _b_l_a_m_e uses --CC instead of --CC --CC for original location detection. It makes blame - significantly faster on huge repositories at the expense of less thorough copy detection. - - gui.copyBlameThreshold - Specifies the threshold to use in _g_i_t _g_u_i _b_l_a_m_e original location detection, measured in - alphanumeric characters. See the ggiitt--bbllaammee(1) manual for more information on copy detection. - - gui.blamehistoryctx - Specifies the radius of history context in days to show in ggiittkk(1) for the selected commit, when - the SShhooww HHiissttoorryy CCoonntteexxtt menu item is invoked from _g_i_t _g_u_i _b_l_a_m_e. If this variable is set to zero, - the whole history is shown. - - guitool..cmd - Specifies the shell command line to execute when the corresponding item of the ggiitt--gguuii(1) TToooollss - menu is invoked. This option is mandatory for every tool. The command is executed from the root of - the working directory, and in the environment it receives the name of the tool as GGIITT__GGUUIITTOOOOLL, the - name of the currently selected file as _F_I_L_E_N_A_M_E, and the name of the current branch as _C_U_R___B_R_A_N_C_H - (if the head is detached, _C_U_R___B_R_A_N_C_H is empty). - - guitool..needsFile - Run the tool only if a diff is selected in the GUI. It guarantees that _F_I_L_E_N_A_M_E is not empty. - - guitool..noConsole - Run the command silently, without creating a window to display its output. - - guitool..noRescan - Don’t rescan the working directory for changes after the tool finishes execution. - - guitool..confirm - Show a confirmation dialog before actually running the tool. - - guitool..argPrompt - Request a string argument from the user, and pass it to the tool through the AARRGGSS environment - variable. Since requesting an argument implies confirmation, the _c_o_n_f_i_r_m option has no effect if - this is enabled. If the option is set to _t_r_u_e, _y_e_s, or _1, the dialog uses a built-in generic - prompt; otherwise the exact value of the variable is used. - - guitool..revPrompt - Request a single valid revision from the user, and set the RREEVVIISSIIOONN environment variable. In other - aspects this option is similar to _a_r_g_P_r_o_m_p_t, and can be used together with it. - - guitool..revUnmerged - Show only unmerged branches in the _r_e_v_P_r_o_m_p_t subdialog. This is useful for tools similar to merge - or rebase, but not for things like checkout or reset. - - guitool..title - Specifies the title to use for the prompt dialog. The default is the tool name. - - guitool..prompt - Specifies the general prompt string to display at the top of the dialog, before subsections for - _a_r_g_P_r_o_m_p_t and _r_e_v_P_r_o_m_p_t. The default value includes the actual command. - - help.browser - Specify the browser that will be used to display help in the _w_e_b format. See ggiitt--hheellpp(1). - - help.format - Override the default help format used by ggiitt--hheellpp(1). Values _m_a_n, _i_n_f_o, _w_e_b and _h_t_m_l are supported. - _m_a_n is the default. _w_e_b and _h_t_m_l are the same. - - help.autoCorrect - Automatically correct and execute mistyped commands after waiting for the given number of - deciseconds (0.1 sec). If more than one command can be deduced from the entered text, nothing will - be executed. If the value of this option is negative, the corrected command will be executed - immediately. If the value is 0 - the command will be just shown but not executed. This is the - default. - - help.htmlPath - Specify the path where the HTML documentation resides. File system paths and URLs are supported. - HTML pages will be prefixed with this path when help is displayed in the _w_e_b format. This defaults - to the documentation path of your Git installation. - - http.proxy - Override the HTTP proxy, normally configured using the _h_t_t_p___p_r_o_x_y, _h_t_t_p_s___p_r_o_x_y, and _a_l_l___p_r_o_x_y - environment variables (see ccuurrll((11))). In addition to the syntax understood by curl, it is possible - to specify a proxy string with a user name but no password, in which case git will attempt to - acquire one in the same way it does for other credentials. See ggiittccrreeddeennttiiaallss(7) for more - information. The syntax thus is _[_p_r_o_t_o_c_o_l_:_/_/_]_[_u_s_e_r_[_:_p_a_s_s_w_o_r_d_]_@_]_p_r_o_x_y_h_o_s_t_[_:_p_o_r_t_]. This can be - overridden on a per-remote basis; see remote..proxy - - http.proxyAuthMethod - Set the method with which to authenticate against the HTTP proxy. This only takes effect if the - configured proxy string contains a user name part (i.e. is of the form _u_s_e_r_@_h_o_s_t or - _u_s_e_r_@_h_o_s_t_:_p_o_r_t). This can be overridden on a per-remote basis; see rreemmoottee..<>..pprrooxxyyAAuutthhMMeetthhoodd. - Both can be overridden by the GGIITT__HHTTTTPP__PPRROOXXYY__AAUUTTHHMMEETTHHOODD environment variable. Possible values are: - - • aannyyaauutthh - Automatically pick a suitable authentication method. It is assumed that the proxy - answers an unauthenticated request with a 407 status code and one or more Proxy-authenticate - headers with supported authentication methods. This is the default. - - • bbaassiicc - HTTP Basic authentication - - • ddiiggeesstt - HTTP Digest authentication; this prevents the password from being transmitted to the - proxy in clear text - - • nneeggoottiiaattee - GSS-Negotiate authentication (compare the --negotiate option of ccuurrll((11))) - - • nnttllmm - NTLM authentication (compare the --ntlm option of ccuurrll((11))) - - http.emptyAuth - Attempt authentication without seeking a username or password. This can be used to attempt - GSS-Negotiate authentication without specifying a username in the URL, as libcurl normally requires - a username for authentication. - - http.delegation - Control GSSAPI credential delegation. The delegation is disabled by default in libcurl since - version 7.21.7. Set parameter to tell the server what it is allowed to delegate when it comes to - user credentials. Used with GSS/kerberos. Possible values are: - - • nnoonnee - Don’t allow any delegation. - - • ppoolliiccyy - Delegates if and only if the OK-AS-DELEGATE flag is set in the Kerberos service - ticket, which is a matter of realm policy. - - • aallwwaayyss - Unconditionally allow the server to delegate. - - http.extraHeader - Pass an additional HTTP header when communicating with a server. If more than one such entry - exists, all of them are added as extra headers. To allow overriding the settings inherited from the - system config, an empty value will reset the extra headers to the empty list. - - http.cookieFile - The pathname of a file containing previously stored cookie lines, which should be used in the Git - http session, if they match the server. The file format of the file to read cookies from should be - plain HTTP headers or the Netscape/Mozilla cookie file format (see ccuurrll((11))). NOTE that the file - specified with http.cookieFile is used only as input unless http.saveCookies is set. - - http.saveCookies - If set, store cookies received during requests to the file specified by http.cookieFile. Has no - effect if http.cookieFile is unset. - - http.sslVersion - The SSL version to use when negotiating an SSL connection, if you want to force the default. The - available and default version depend on whether libcurl was built against NSS or OpenSSL and the - particular configuration of the crypto library in use. Internally this sets the _C_U_R_L_O_P_T___S_S_L___V_E_R_S_I_O_N - option; see the libcurl documentation for more details on the format of this option and for the ssl - version supported. Actually the possible values of this option are: - - • sslv2 - - • sslv3 - - • tlsv1 - - • tlsv1.0 - - • tlsv1.1 - - • tlsv1.2 - - • tlsv1.3 - - Can be overridden by the GGIITT__SSSSLL__VVEERRSSIIOONN environment variable. To force git to use libcurl’s - default ssl version and ignore any explicit http.sslversion option, set GGIITT__SSSSLL__VVEERRSSIIOONN to the - empty string. - - http.sslCipherList - A list of SSL ciphers to use when negotiating an SSL connection. The available ciphers depend on - whether libcurl was built against NSS or OpenSSL and the particular configuration of the crypto - library in use. Internally this sets the _C_U_R_L_O_P_T___S_S_L___C_I_P_H_E_R___L_I_S_T option; see the libcurl - documentation for more details on the format of this list. - - Can be overridden by the GGIITT__SSSSLL__CCIIPPHHEERR__LLIISSTT environment variable. To force git to use libcurl’s - default cipher list and ignore any explicit http.sslCipherList option, set GGIITT__SSSSLL__CCIIPPHHEERR__LLIISSTT to - the empty string. - - http.sslVerify - Whether to verify the SSL certificate when fetching or pushing over HTTPS. Defaults to true. Can be - overridden by the GGIITT__SSSSLL__NNOO__VVEERRIIFFYY environment variable. - - http.sslCert - File containing the SSL certificate when fetching or pushing over HTTPS. Can be overridden by the - GGIITT__SSSSLL__CCEERRTT environment variable. - - http.sslKey - File containing the SSL private key when fetching or pushing over HTTPS. Can be overridden by the - GGIITT__SSSSLL__KKEEYY environment variable. - - http.sslCertPasswordProtected - Enable Git’s password prompt for the SSL certificate. Otherwise OpenSSL will prompt the user, - possibly many times, if the certificate or private key is encrypted. Can be overridden by the - GGIITT__SSSSLL__CCEERRTT__PPAASSSSWWOORRDD__PPRROOTTEECCTTEEDD environment variable. - - http.sslCAInfo - File containing the certificates to verify the peer with when fetching or pushing over HTTPS. Can - be overridden by the GGIITT__SSSSLL__CCAAIINNFFOO environment variable. - - http.sslCAPath - Path containing files with the CA certificates to verify the peer with when fetching or pushing - over HTTPS. Can be overridden by the GGIITT__SSSSLL__CCAAPPAATTHH environment variable. - - http.sslBackend - Name of the SSL backend to use (e.g. "openssl" or "schannel"). This option is ignored if cURL lacks - support for choosing the SSL backend at runtime. - - http.schannelCheckRevoke - Used to enforce or disable certificate revocation checks in cURL when http.sslBackend is set to - "schannel". Defaults to ttrruuee if unset. Only necessary to disable this if Git consistently errors - and the message is about checking the revocation status of a certificate. This option is ignored if - cURL lacks support for setting the relevant SSL option at runtime. - - http.schannelUseSSLCAInfo - As of cURL v7.60.0, the Secure Channel backend can use the certificate bundle provided via - hhttttpp..ssssllCCAAIInnffoo, but that would override the Windows Certificate Store. Since this is not desirable - by default, Git will tell cURL not to use that bundle by default when the sscchhaannnneell backend was - configured via hhttttpp..ssssllBBaacckkeenndd, unless hhttttpp..sscchhaannnneellUUsseeSSSSLLCCAAIInnffoo overrides this behavior. - - http.pinnedpubkey - Public key of the https service. It may either be the filename of a PEM or DER encoded public key - file or a string starting with _s_h_a_2_5_6_/_/ followed by the base64 encoded sha256 hash of the public - key. See also libcurl _C_U_R_L_O_P_T___P_I_N_N_E_D_P_U_B_L_I_C_K_E_Y. git will exit with an error if this option is set - but not supported by cURL. - - http.sslTry - Attempt to use AUTH SSL/TLS and encrypted data transfers when connecting via regular FTP protocol. - This might be needed if the FTP server requires it for security reasons or you wish to connect - securely whenever remote FTP server supports it. Default is false since it might trigger - certificate verification errors on misconfigured servers. - - http.maxRequests - How many HTTP requests to launch in parallel. Can be overridden by the GGIITT__HHTTTTPP__MMAAXX__RREEQQUUEESSTTSS - environment variable. Default is 5. - - http.minSessions - The number of curl sessions (counted across slots) to be kept across requests. They will not be - ended with curl_easy_cleanup() until http_cleanup() is invoked. If USE_CURL_MULTI is not defined, - this value will be capped at 1. Defaults to 1. - - http.postBuffer - Maximum size in bytes of the buffer used by smart HTTP transports when POSTing data to the remote - system. For requests larger than this buffer size, HTTP/1.1 and Transfer-Encoding: chunked is used - to avoid creating a massive pack file locally. Default is 1 MiB, which is sufficient for most - requests. - - http.lowSpeedLimit, http.lowSpeedTime - If the HTTP transfer speed is less than _h_t_t_p_._l_o_w_S_p_e_e_d_L_i_m_i_t for longer than _h_t_t_p_._l_o_w_S_p_e_e_d_T_i_m_e - seconds, the transfer is aborted. Can be overridden by the GGIITT__HHTTTTPP__LLOOWW__SSPPEEEEDD__LLIIMMIITT and - GGIITT__HHTTTTPP__LLOOWW__SSPPEEEEDD__TTIIMMEE environment variables. - - http.noEPSV - A boolean which disables using of EPSV ftp command by curl. This can helpful with some "poor" ftp - servers which don’t support EPSV mode. Can be overridden by the GGIITT__CCUURRLL__FFTTPP__NNOO__EEPPSSVV environment - variable. Default is false (curl will use EPSV). - - http.userAgent - The HTTP USER_AGENT string presented to an HTTP server. The default value represents the version of - the client Git such as git/1.7.1. This option allows you to override this value to a more common - value such as Mozilla/4.0. This may be necessary, for instance, if connecting through a firewall - that restricts HTTP connections to a set of common USER_AGENT strings (but not including those like - git/1.7.1). Can be overridden by the GGIITT__HHTTTTPP__UUSSEERR__AAGGEENNTT environment variable. - - http.followRedirects - Whether git should follow HTTP redirects. If set to ttrruuee, git will transparently follow any - redirect issued by a server it encounters. If set to ffaallssee, git will treat all redirects as errors. - If set to iinniittiiaall, git will follow redirects only for the initial request to a remote, but not for - subsequent follow-up HTTP requests. Since git uses the redirected URL as the base for the follow-up - requests, this is generally sufficient. The default is iinniittiiaall. - - http..* - Any of the http.* options above can be applied selectively to some URLs. For a config key to match - a URL, each element of the config key is compared to that of the URL, in the following order: - - 1. Scheme (e.g., hhttttppss in hhttttppss::////eexxaammppllee..ccoomm//). This field must match exactly between the config - key and the URL. - - 2. Host/domain name (e.g., eexxaammppllee..ccoomm in hhttttppss::////eexxaammppllee..ccoomm//). This field must match between the - config key and the URL. It is possible to specify a ** as part of the host name to match all - subdomains at this level. hhttttppss::////**..eexxaammppllee..ccoomm// for example would match - hhttttppss::////ffoooo..eexxaammppllee..ccoomm//, but not hhttttppss::////ffoooo..bbaarr..eexxaammppllee..ccoomm//. - - 3. Port number (e.g., 88008800 in hhttttpp::////eexxaammppllee..ccoomm::88008800//). This field must match exactly between the - config key and the URL. Omitted port numbers are automatically converted to the correct default - for the scheme before matching. - - 4. Path (e.g., rreeppoo..ggiitt in hhttttppss::////eexxaammppllee..ccoomm//rreeppoo..ggiitt). The path field of the config key must - match the path field of the URL either exactly or as a prefix of slash-delimited path elements. - This means a config key with path ffoooo// matches URL path ffoooo//bbaarr. A prefix can only match on a - slash (//) boundary. Longer matches take precedence (so a config key with path ffoooo//bbaarr is a - better match to URL path ffoooo//bbaarr than a config key with just path ffoooo//). - - 5. User name (e.g., uusseerr in hhttttppss::////uusseerr@@eexxaammppllee..ccoomm//rreeppoo..ggiitt). If the config key has a user name - it must match the user name in the URL exactly. If the config key does not have a user name, - that config key will match a URL with any user name (including none), but at a lower precedence - than a config key with a user name. - - The list above is ordered by decreasing precedence; a URL that matches a config key’s path is - preferred to one that matches its user name. For example, if the URL is - hhttttppss::////uusseerr@@eexxaammppllee..ccoomm//ffoooo//bbaarr a config key match of hhttttppss::////eexxaammppllee..ccoomm//ffoooo will be preferred - over a config key match of hhttttppss::////uusseerr@@eexxaammppllee..ccoomm. - - All URLs are normalized before attempting any matching (the password part, if embedded in the URL, - is always ignored for matching purposes) so that equivalent URLs that are simply spelled - differently will match properly. Environment variable settings always override any matches. The - URLs that are matched against are those given directly to Git commands. This means any URLs visited - as a result of a redirection do not participate in matching. - - i18n.commitEncoding - Character encoding the commit messages are stored in; Git itself does not care per se, but this - information is necessary e.g. when importing commits from emails or in the gitk graphical history - browser (and possibly at other places in the future or in other porcelains). See e.g. ggiitt-- - mmaaiilliinnffoo(1). Defaults to _u_t_f_-_8. - - i18n.logOutputEncoding - Character encoding the commit messages are converted to when running _g_i_t _l_o_g and friends. - - imap.folder - The folder to drop the mails into, which is typically the Drafts folder. For example: - "INBOX.Drafts", "INBOX/Drafts" or "[Gmail]/Drafts". Required. - - imap.tunnel - Command used to setup a tunnel to the IMAP server through which commands will be piped instead of - using a direct network connection to the server. Required when imap.host is not set. - - imap.host - A URL identifying the server. Use an iimmaapp:://// prefix for non-secure connections and an iimmaappss:://// - prefix for secure connections. Ignored when imap.tunnel is set, but required otherwise. - - imap.user - The username to use when logging in to the server. - - imap.pass - The password to use when logging in to the server. - - imap.port - An integer port number to connect to on the server. Defaults to 143 for imap:// hosts and 993 for - imaps:// hosts. Ignored when imap.tunnel is set. - - imap.sslverify - A boolean to enable/disable verification of the server certificate used by the SSL/TLS connection. - Default is ttrruuee. Ignored when imap.tunnel is set. - - imap.preformattedHTML - A boolean to enable/disable the use of html encoding when sending a patch. An html encoded patch - will be bracketed with
 and have a content type of text/html. Ironically, enabling this option
-           causes Thunderbird to send the patch as a plain/text, format=fixed email. Default is ffaallssee.
-
-       imap.authMethod
-           Specify authenticate method for authentication with IMAP server. If Git was built with the NO_CURL
-           option, or if your curl version is older than 7.34.0, or if you’re running git-imap-send with the
-           ----nnoo--ccuurrll option, the only supported method is _C_R_A_M_-_M_D_5. If this is not set then _g_i_t _i_m_a_p_-_s_e_n_d uses
-           the basic IMAP plaintext LOGIN command.
-
-       index.recordEndOfIndexEntries
-           Specifies whether the index file should include an "End Of Index Entry" section. This reduces index
-           load time on multiprocessor machines but produces a message "ignoring EOIE extension" when reading
-           the index using Git versions before 2.20. Defaults to _t_r_u_e if index.threads has been explicitly
-           enabled, _f_a_l_s_e otherwise.
-
-       index.recordOffsetTable
-           Specifies whether the index file should include an "Index Entry Offset Table" section. This reduces
-           index load time on multiprocessor machines but produces a message "ignoring IEOT extension" when
-           reading the index using Git versions before 2.20. Defaults to _t_r_u_e if index.threads has been
-           explicitly enabled, _f_a_l_s_e otherwise.
-
-       index.threads
-           Specifies the number of threads to spawn when loading the index. This is meant to reduce index load
-           time on multiprocessor machines. Specifying 0 or _t_r_u_e will cause Git to auto-detect the number of
-           CPU’s and set the number of threads accordingly. Specifying 1 or _f_a_l_s_e will disable multithreading.
-           Defaults to _t_r_u_e.
-
-       index.version
-           Specify the version with which new index files should be initialized. This does not affect existing
-           repositories.
-
-       init.templateDir
-           Specify the directory from which templates will be copied. (See the "TEMPLATE DIRECTORY" section of
-           ggiitt--iinniitt(1).)
-
-       instaweb.browser
-           Specify the program that will be used to browse your working repository in gitweb. See ggiitt--
-           iinnssttaawweebb(1).
-
-       instaweb.httpd
-           The HTTP daemon command-line to start gitweb on your working repository. See ggiitt--iinnssttaawweebb(1).
-
-       instaweb.local
-           If true the web server started by ggiitt--iinnssttaawweebb(1) will be bound to the local IP (127.0.0.1).
-
-       instaweb.modulePath
-           The default module path for ggiitt--iinnssttaawweebb(1) to use instead of /usr/lib/apache2/modules. Only used
-           if httpd is Apache.
-
-       instaweb.port
-           The port number to bind the gitweb httpd to. See ggiitt--iinnssttaawweebb(1).
-
-       interactive.singleKey
-           In interactive commands, allow the user to provide one-letter input with a single key (i.e.,
-           without hitting enter). Currently this is used by the ----ppaattcchh mode of ggiitt--aadddd(1), ggiitt--cchheecckkoouutt(1),
-           ggiitt--ccoommmmiitt(1), ggiitt--rreesseett(1), and ggiitt--ssttaasshh(1). Note that this setting is silently ignored if
-           portable keystroke input is not available; requires the Perl module Term::ReadKey.
-
-       interactive.diffFilter
-           When an interactive command (such as ggiitt aadddd ----ppaattcchh) shows a colorized diff, git will pipe the
-           diff through the shell command defined by this configuration variable. The command may mark up the
-           diff further for human consumption, provided that it retains a one-to-one correspondence with the
-           lines in the original diff. Defaults to disabled (no filtering).
-
-       log.abbrevCommit
-           If true, makes ggiitt--lloogg(1), ggiitt--sshhooww(1), and ggiitt--wwhhaattcchhaannggeedd(1) assume ----aabbbbrreevv--ccoommmmiitt. You may
-           override this option with ----nnoo--aabbbbrreevv--ccoommmmiitt.
-
-       log.date
-           Set the default date-time mode for the _l_o_g command. Setting a value for log.date is similar to
-           using _g_i_t _l_o_g's ----ddaattee option. See ggiitt--lloogg(1) for details.
-
-       log.decorate
-           Print out the ref names of any commits that are shown by the log command. If _s_h_o_r_t is specified,
-           the ref name prefixes _r_e_f_s_/_h_e_a_d_s_/, _r_e_f_s_/_t_a_g_s_/ and _r_e_f_s_/_r_e_m_o_t_e_s_/ will not be printed. If _f_u_l_l is
-           specified, the full ref name (including prefix) will be printed. If _a_u_t_o is specified, then if the
-           output is going to a terminal, the ref names are shown as if _s_h_o_r_t were given, otherwise no ref
-           names are shown. This is the same as the ----ddeeccoorraattee option of the ggiitt lloogg.
-
-       log.follow
-           If ttrruuee, ggiitt lloogg will act as if the ----ffoollllooww option was used when a single  is given. This
-           has the same limitations as ----ffoollllooww, i.e. it cannot be used to follow multiple files and does not
-           work well on non-linear history.
-
-       log.graphColors
-           A list of colors, separated by commas, that can be used to draw history lines in ggiitt lloogg ----ggrraapphh.
-
-       log.showRoot
-           If true, the initial commit will be shown as a big creation event. This is equivalent to a diff
-           against an empty tree. Tools like ggiitt--lloogg(1) or ggiitt--wwhhaattcchhaannggeedd(1), which normally hide the root
-           commit will now show it. True by default.
-
-       log.showSignature
-           If true, makes ggiitt--lloogg(1), ggiitt--sshhooww(1), and ggiitt--wwhhaattcchhaannggeedd(1) assume ----sshhooww--ssiiggnnaattuurree.
-
-       log.mailmap
-           If true, makes ggiitt--lloogg(1), ggiitt--sshhooww(1), and ggiitt--wwhhaattcchhaannggeedd(1) assume ----uussee--mmaaiillmmaapp.
-
-       mailinfo.scissors
-           If true, makes ggiitt--mmaaiilliinnffoo(1) (and therefore ggiitt--aamm(1)) act by default as if the --scissors option
-           was provided on the command-line. When active, this features removes everything from the message
-           body before a scissors line (i.e. consisting mainly of ">8", "8<" and "-").
-
-       mailmap.file
-           The location of an augmenting mailmap file. The default mailmap, located in the root of the
-           repository, is loaded first, then the mailmap file pointed to by this variable. The location of the
-           mailmap file may be in a repository subdirectory, or somewhere outside of the repository itself.
-           See ggiitt--sshhoorrttlloogg(1) and ggiitt--bbllaammee(1).
-
-       mailmap.blob
-           Like mmaaiillmmaapp..ffiillee, but consider the value as a reference to a blob in the repository. If both
-           mmaaiillmmaapp..ffiillee and mmaaiillmmaapp..bblloobb are given, both are parsed, with entries from mmaaiillmmaapp..ffiillee taking
-           precedence. In a bare repository, this defaults to HHEEAADD::..mmaaiillmmaapp. In a non-bare repository, it
-           defaults to empty.
-
-       man.viewer
-           Specify the programs that may be used to display help in the _m_a_n format. See ggiitt--hheellpp(1).
-
-       man..cmd
-           Specify the command to invoke the specified man viewer. The specified command is evaluated in shell
-           with the man page passed as argument. (See ggiitt--hheellpp(1).)
-
-       man..path
-           Override the path for the given tool that may be used to display help in the _m_a_n format. See ggiitt--
-           hheellpp(1).
-
-       merge.conflictStyle
-           Specify the style in which conflicted hunks are written out to working tree files upon merge. The
-           default is "merge", which shows a <<<<<<<<<<<<<< conflict marker, changes made by one side, a ==============
-           marker, changes made by the other side, and then a >>>>>>>>>>>>>> marker. An alternate style, "diff3",
-           adds a |||||||||||||| marker and the original text before the ============== marker.
-
-       merge.defaultToUpstream
-           If merge is called without any commit argument, merge the upstream branches configured for the
-           current branch by using their last observed values stored in their remote-tracking branches. The
-           values of the bbrraanncchh..<>..mmeerrggee that name the branches at the remote named by
-           bbrraanncchh..<>..rreemmoottee are consulted, and then they are mapped via rreemmoottee..<>..ffeettcchh to
-           their corresponding remote-tracking branches, and the tips of these tracking branches are merged.
-
-       merge.ff
-           By default, Git does not create an extra merge commit when merging a commit that is a descendant of
-           the current commit. Instead, the tip of the current branch is fast-forwarded. When set to ffaallssee,
-           this variable tells Git to create an extra merge commit in such a case (equivalent to giving the
-           ----nnoo--ffff option from the command line). When set to oonnllyy, only such fast-forward merges are allowed
-           (equivalent to giving the ----ffff--oonnllyy option from the command line).
-
-       merge.verifySignatures
-           If true, this is equivalent to the --verify-signatures command line option. See ggiitt--mmeerrggee(1) for
-           details.
-
-       merge.branchdesc
-           In addition to branch names, populate the log message with the branch description text associated
-           with them. Defaults to false.
-
-       merge.log
-           In addition to branch names, populate the log message with at most the specified number of one-line
-           descriptions from the actual commits that are being merged. Defaults to false, and true is a
-           synonym for 20.
-
-       merge.renameLimit
-           The number of files to consider when performing rename detection during a merge; if not specified,
-           defaults to the value of diff.renameLimit. This setting has no effect if rename detection is turned
-           off.
-
-       merge.renames
-           Whether and how Git detects renames. If set to "false", rename detection is disabled. If set to
-           "true", basic rename detection is enabled. Defaults to the value of diff.renames.
-
-       merge.renormalize
-           Tell Git that canonical representation of files in the repository has changed over time (e.g.
-           earlier commits record text files with CRLF line endings, but recent ones use LF line endings). In
-           such a repository, Git can convert the data recorded in commits to a canonical form before
-           performing a merge to reduce unnecessary conflicts. For more information, see section "Merging
-           branches with differing checkin/checkout attributes" in ggiittaattttrriibbuutteess(5).
-
-       merge.stat
-           Whether to print the diffstat between ORIG_HEAD and the merge result at the end of the merge. True
-           by default.
-
-       merge.tool
-           Controls which merge tool is used by ggiitt--mmeerrggeettooooll(1). The list below shows the valid built-in
-           values. Any other value is treated as a custom merge tool and requires that a corresponding
-           mergetool..cmd variable is defined.
-
-       merge.guitool
-           Controls which merge tool is used by ggiitt--mmeerrggeettooooll(1) when the -g/--gui flag is specified. The list
-           below shows the valid built-in values. Any other value is treated as a custom merge tool and
-           requires that a corresponding mergetool..cmd variable is defined.
-
-           •   araxis
-
-           •   bc
-
-           •   bc3
-
-           •   codecompare
-
-           •   deltawalker
-
-           •   diffmerge
-
-           •   diffuse
-
-           •   ecmerge
-
-           •   emerge
-
-           •   examdiff
-
-           •   guiffy
-
-           •   gvimdiff
-
-           •   gvimdiff2
-
-           •   gvimdiff3
-
-           •   kdiff3
-
-           •   meld
-
-           •   opendiff
-
-           •   p4merge
-
-           •   tkdiff
-
-           •   tortoisemerge
-
-           •   vimdiff
-
-           •   vimdiff2
-
-           •   vimdiff3
-
-           •   winmerge
-
-           •   xxdiff
-
-       merge.verbosity
-           Controls the amount of output shown by the recursive merge strategy. Level 0 outputs nothing except
-           a final error message if conflicts were detected. Level 1 outputs only conflicts, 2 outputs
-           conflicts and file changes. Level 5 and above outputs debugging information. The default is level
-           2. Can be overridden by the GGIITT__MMEERRGGEE__VVEERRBBOOSSIITTYY environment variable.
-
-       merge..name
-           Defines a human-readable name for a custom low-level merge driver. See ggiittaattttrriibbuutteess(5) for
-           details.
-
-       merge..driver
-           Defines the command that implements a custom low-level merge driver. See ggiittaattttrriibbuutteess(5) for
-           details.
-
-       merge..recursive
-           Names a low-level merge driver to be used when performing an internal merge between common
-           ancestors. See ggiittaattttrriibbuutteess(5) for details.
-
-       mergetool..path
-           Override the path for the given tool. This is useful in case your tool is not in the PATH.
-
-       mergetool..cmd
-           Specify the command to invoke the specified merge tool. The specified command is evaluated in shell
-           with the following variables available: _B_A_S_E is the name of a temporary file containing the common
-           base of the files to be merged, if available; _L_O_C_A_L is the name of a temporary file containing the
-           contents of the file on the current branch; _R_E_M_O_T_E is the name of a temporary file containing the
-           contents of the file from the branch being merged; _M_E_R_G_E_D contains the name of the file to which
-           the merge tool should write the results of a successful merge.
-
-       mergetool..trustExitCode
-           For a custom merge command, specify whether the exit code of the merge command can be used to
-           determine whether the merge was successful. If this is not set to true then the merge target file
-           timestamp is checked and the merge assumed to have been successful if the file has been updated,
-           otherwise the user is prompted to indicate the success of the merge.
-
-       mergetool.meld.hasOutput
-           Older versions of mmeelldd do not support the ----oouuttppuutt option. Git will attempt to detect whether mmeelldd
-           supports ----oouuttppuutt by inspecting the output of mmeelldd ----hheellpp. Configuring mmeerrggeettooooll..mmeelldd..hhaassOOuuttppuutt
-           will make Git skip these checks and use the configured value instead. Setting
-           mmeerrggeettooooll..mmeelldd..hhaassOOuuttppuutt to ttrruuee tells Git to unconditionally use the ----oouuttppuutt option, and ffaallssee
-           avoids using ----oouuttppuutt.
-
-       mergetool.keepBackup
-           After performing a merge, the original file with conflict markers can be saved as a file with a
-           ..oorriigg extension. If this variable is set to ffaallssee then this file is not preserved. Defaults to ttrruuee
-           (i.e. keep the backup files).
-
-       mergetool.keepTemporaries
-           When invoking a custom merge tool, Git uses a set of temporary files to pass to the tool. If the
-           tool returns an error and this variable is set to ttrruuee, then these temporary files will be
-           preserved, otherwise they will be removed after the tool has exited. Defaults to ffaallssee.
-
-       mergetool.writeToTemp
-           Git writes temporary _B_A_S_E, _L_O_C_A_L, and _R_E_M_O_T_E versions of conflicting files in the worktree by
-           default. Git will attempt to use a temporary directory for these files when set ttrruuee. Defaults to
-           ffaallssee.
-
-       mergetool.prompt
-           Prompt before each invocation of the merge resolution program.
-
-       notes.mergeStrategy
-           Which merge strategy to choose by default when resolving notes conflicts. Must be one of mmaannuuaall,
-           oouurrss, tthheeiirrss, uunniioonn, or ccaatt__ssoorrtt__uunniiqq. Defaults to mmaannuuaall. See "NOTES MERGE STRATEGIES" section of
-           ggiitt--nnootteess(1) for more information on each strategy.
-
-       notes..mergeStrategy
-           Which merge strategy to choose when doing a notes merge into refs/notes/. This overrides the
-           more general "notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section in ggiitt--nnootteess(1) for
-           more information on the available strategies.
-
-       notes.displayRef
-           The (fully qualified) refname from which to show notes when showing commit messages. The value of
-           this variable can be set to a glob, in which case notes from all matching refs will be shown. You
-           may also specify this configuration variable several times. A warning will be issued for refs that
-           do not exist, but a glob that does not match any refs is silently ignored.
-
-           This setting can be overridden with the GGIITT__NNOOTTEESS__DDIISSPPLLAAYY__RREEFF environment variable, which must be a
-           colon separated list of refs or globs.
-
-           The effective value of "core.notesRef" (possibly overridden by GIT_NOTES_REF) is also implicitly
-           added to the list of refs to be displayed.
-
-       notes.rewrite.
-           When rewriting commits with  (currently aammeenndd or rreebbaassee) and this variable is set to ttrruuee,
-           Git automatically copies your notes from the original to the rewritten commit. Defaults to ttrruuee,
-           but see "notes.rewriteRef" below.
-
-       notes.rewriteMode
-           When copying notes during a rewrite (see the "notes.rewrite." option), determines what to
-           do if the target commit already has a note. Must be one of oovveerrwwrriittee, ccoonnccaatteennaattee, ccaatt__ssoorrtt__uunniiqq,
-           or iiggnnoorree. Defaults to ccoonnccaatteennaattee.
-
-           This setting can be overridden with the GGIITT__NNOOTTEESS__RREEWWRRIITTEE__MMOODDEE environment variable.
-
-       notes.rewriteRef
-           When copying notes during a rewrite, specifies the (fully qualified) ref whose notes should be
-           copied. The ref may be a glob, in which case notes in all matching refs will be copied. You may
-           also specify this configuration several times.
-
-           Does not have a default value; you must configure this variable to enable note rewriting. Set it to
-           rreeffss//nnootteess//ccoommmmiittss to enable rewriting for the default commit notes.
-
-           This setting can be overridden with the GGIITT__NNOOTTEESS__RREEWWRRIITTEE__RREEFF environment variable, which must be a
-           colon separated list of refs or globs.
-
-       pack.window
-           The size of the window used by ggiitt--ppaacckk--oobbjjeeccttss(1) when no window size is given on the command
-           line. Defaults to 10.
-
-       pack.depth
-           The maximum delta depth used by ggiitt--ppaacckk--oobbjjeeccttss(1) when no maximum depth is given on the command
-           line. Defaults to 50. Maximum value is 4095.
-
-       pack.windowMemory
-           The maximum size of memory that is consumed by each thread in ggiitt--ppaacckk--oobbjjeeccttss(1) for pack window
-           memory when no limit is given on the command line. The value can be suffixed with "k", "m", or "g".
-           When left unconfigured (or set explicitly to 0), there will be no limit.
-
-       pack.compression
-           An integer -1..9, indicating the compression level for objects in a pack file. -1 is the zlib
-           default. 0 means no compression, and 1..9 are various speed/size tradeoffs, 9 being slowest. If not
-           set, defaults to core.compression. If that is not set, defaults to -1, the zlib default, which is
-           "a default compromise between speed and compression (currently equivalent to level 6)."
-
-           Note that changing the compression level will not automatically recompress all existing objects.
-           You can force recompression by passing the -F option to ggiitt--rreeppaacckk(1).
-
-       pack.island
-           An extended regular expression configuring a set of delta islands. See "DELTA ISLANDS" in ggiitt--ppaacckk--
-           oobbjjeeccttss(1) for details.
-
-       pack.islandCore
-           Specify an island name which gets to have its objects be packed first. This creates a kind of
-           pseudo-pack at the front of one pack, so that the objects from the specified island are hopefully
-           faster to copy into any pack that should be served to a user requesting these objects. In practice
-           this means that the island specified should likely correspond to what is the most commonly cloned
-           in the repo. See also "DELTA ISLANDS" in ggiitt--ppaacckk--oobbjjeeccttss(1).
-
-       pack.deltaCacheSize
-           The maximum memory in bytes used for caching deltas in ggiitt--ppaacckk--oobbjjeeccttss(1) before writing them out
-           to a pack. This cache is used to speed up the writing object phase by not having to recompute the
-           final delta result once the best match for all objects is found. Repacking large repositories on
-           machines which are tight with memory might be badly impacted by this though, especially if this
-           cache pushes the system into swapping. A value of 0 means no limit. The smallest size of 1 byte may
-           be used to virtually disable this cache. Defaults to 256 MiB.
-
-       pack.deltaCacheLimit
-           The maximum size of a delta, that is cached in ggiitt--ppaacckk--oobbjjeeccttss(1). This cache is used to speed up
-           the writing object phase by not having to recompute the final delta result once the best match for
-           all objects is found. Defaults to 1000. Maximum value is 65535.
-
-       pack.threads
-           Specifies the number of threads to spawn when searching for best delta matches. This requires that
-           ggiitt--ppaacckk--oobbjjeeccttss(1) be compiled with pthreads otherwise this option is ignored with a warning. This
-           is meant to reduce packing time on multiprocessor machines. The required amount of memory for the
-           delta search window is however multiplied by the number of threads. Specifying 0 will cause Git to
-           auto-detect the number of CPU’s and set the number of threads accordingly.
-
-       pack.indexVersion
-           Specify the default pack index version. Valid values are 1 for legacy pack index used by Git
-           versions prior to 1.5.2, and 2 for the new pack index with capabilities for packs larger than 4 GB
-           as well as proper protection against the repacking of corrupted packs. Version 2 is the default.
-           Note that version 2 is enforced and this config option ignored whenever the corresponding pack is
-           larger than 2 GB.
-
-           If you have an old Git that does not understand the version 2 **..iiddxx file, cloning or fetching over
-           a non native protocol (e.g. "http") that will copy both **..ppaacckk file and corresponding **..iiddxx file
-           from the other side may give you a repository that cannot be accessed with your older version of
-           Git. If the **..ppaacckk file is smaller than 2 GB, however, you can use ggiitt--iinnddeexx--ppaacckk(1) on the *.pack
-           file to regenerate the **..iiddxx file.
-
-       pack.packSizeLimit
-           The maximum size of a pack. This setting only affects packing to a file when repacking, i.e. the
-           git:// protocol is unaffected. It can be overridden by the ----mmaaxx--ppaacckk--ssiizzee option of ggiitt--rreeppaacckk(1).
-           Reaching this limit results in the creation of multiple packfiles; which in turn prevents bitmaps
-           from being created. The minimum size allowed is limited to 1 MiB. The default is unlimited. Common
-           unit suffixes of _k, _m, or _g are supported.
-
-       pack.useBitmaps
-           When true, git will use pack bitmaps (if available) when packing to stdout (e.g., during the server
-           side of a fetch). Defaults to true. You should not generally need to turn this off unless you are
-           debugging pack bitmaps.
-
-       pack.writeBitmaps (deprecated)
-           This is a deprecated synonym for rreeppaacckk..wwrriitteeBBiittmmaappss.
-
-       pack.writeBitmapHashCache
-           When true, git will include a "hash cache" section in the bitmap index (if one is written). This
-           cache can be used to feed git’s delta heuristics, potentially leading to better deltas between
-           bitmapped and non-bitmapped objects (e.g., when serving a fetch between an older, bitmapped pack
-           and objects that have been pushed since the last gc). The downside is that it consumes 4 bytes per
-           object of disk space, and that JGit’s bitmap implementation does not understand it, causing it to
-           complain if Git and JGit are used on the same repository. Defaults to false.
-
-       pager.
-           If the value is boolean, turns on or off pagination of the output of a particular Git subcommand
-           when writing to a tty. Otherwise, turns on pagination for the subcommand using the pager specified
-           by the value of ppaaggeerr..<>. If ----ppaaggiinnaattee or ----nnoo--ppaaggeerr is specified on the command line, it takes
-           precedence over this option. To disable pagination for all commands, set ccoorree..ppaaggeerr or GGIITT__PPAAGGEERR to
-           ccaatt.
-
-       pretty.
-           Alias for a --pretty= format string, as specified in ggiitt--lloogg(1). Any aliases defined here can be
-           used just as the built-in pretty formats could. For example, running ggiitt ccoonnffiigg pprreettttyy..cchhaannggeelloogg
-           ""ffoorrmmaatt::** %%HH %%ss"" would cause the invocation ggiitt lloogg ----pprreettttyy==cchhaannggeelloogg to be equivalent to running
-           ggiitt lloogg ""----pprreettttyy==ffoorrmmaatt::** %%HH %%ss"". Note that an alias with the same name as a built-in format will
-           be silently ignored.
-
-       protocol.allow
-           If set, provide a user defined default policy for all protocols which don’t explicitly have a
-           policy (pprroottooccooll..<>..aallllooww). By default, if unset, known-safe protocols (http, https, git, ssh,
-           file) have a default policy of aallwwaayyss, known-dangerous protocols (ext) have a default policy of
-           nneevveerr, and all other protocols have a default policy of uusseerr. Supported policies:
-
-           •   aallwwaayyss - protocol is always able to be used.
-
-           •   nneevveerr - protocol is never able to be used.
-
-           •   uusseerr - protocol is only able to be used when GGIITT__PPRROOTTOOCCOOLL__FFRROOMM__UUSSEERR is either unset or has a
-               value of 1. This policy should be used when you want a protocol to be directly usable by the
-               user but don’t want it used by commands which execute clone/fetch/push commands without user
-               input, e.g. recursive submodule initialization.
-
-       protocol..allow
-           Set a policy to be used by protocol <> with clone/fetch/push commands. See pprroottooccooll..aallllooww above
-           for the available policies.
-
-           The protocol names currently used by git are:
-
-           •   ffiillee: any local file-based path (including ffiillee:://// URLs, or local paths)
-
-           •   ggiitt: the anonymous git protocol over a direct TCP connection (or proxy, if configured)
-
-           •   sssshh: git over ssh (including hhoosstt::ppaatthh syntax, sssshh::////, etc).
-
-           •   hhttttpp: git over http, both "smart http" and "dumb http". Note that this does _n_o_t include hhttttppss;
-               if you want to configure both, you must do so individually.
-
-           •   any external helpers are named by their protocol (e.g., use hhgg to allow the ggiitt--rreemmoottee--hhgg
-               helper)
-
-       protocol.version
-           Experimental. If set, clients will attempt to communicate with a server using the specified
-           protocol version. If unset, no attempt will be made by the client to communicate using a particular
-           protocol version, this results in protocol version 0 being used. Supported versions:
-
-           •   00 - the original wire protocol.
-
-           •   11 - the original wire protocol with the addition of a version string in the initial response
-               from the server.
-
-           •   22 - wwiirree pprroottooccooll vveerrssiioonn 22[2].
-
-       pull.ff
-           By default, Git does not create an extra merge commit when merging a commit that is a descendant of
-           the current commit. Instead, the tip of the current branch is fast-forwarded. When set to ffaallssee,
-           this variable tells Git to create an extra merge commit in such a case (equivalent to giving the
-           ----nnoo--ffff option from the command line). When set to oonnllyy, only such fast-forward merges are allowed
-           (equivalent to giving the ----ffff--oonnllyy option from the command line). This setting overrides mmeerrggee..ffff
-           when pulling.
-
-       pull.rebase
-           When true, rebase branches on top of the fetched branch, instead of merging the default branch from
-           the default remote when "git pull" is run. See "branch..rebase" for setting this on a
-           per-branch basis.
-
-           When mmeerrggeess, pass the ----rreebbaassee--mmeerrggeess option to _g_i_t _r_e_b_a_s_e so that the local merge commits are
-           included in the rebase (see ggiitt--rreebbaassee(1) for details).
-
-           When preserve, also pass ----pprreesseerrvvee--mmeerrggeess along to _g_i_t _r_e_b_a_s_e so that locally committed merge
-           commits will not be flattened by running _g_i_t _p_u_l_l.
-
-           When the value is iinntteerraaccttiivvee, the rebase is run in interactive mode.
-
-           NNOOTTEE: this is a possibly dangerous operation; do nnoott use it unless you understand the implications
-           (see ggiitt--rreebbaassee(1) for details).
-
-       pull.octopus
-           The default merge strategy to use when pulling multiple branches at once.
-
-       pull.twohead
-           The default merge strategy to use when pulling a single branch.
-
-       push.default
-           Defines the action ggiitt ppuusshh should take if no refspec is explicitly given. Different values are
-           well-suited for specific workflows; for instance, in a purely central workflow (i.e. the fetch
-           source is equal to the push destination), uuppssttrreeaamm is probably what you want. Possible values are:
-
-           •   nnootthhiinngg - do not push anything (error out) unless a refspec is explicitly given. This is
-               primarily meant for people who want to avoid mistakes by always being explicit.
-
-           •   ccuurrrreenntt - push the current branch to update a branch with the same name on the receiving end.
-               Works in both central and non-central workflows.
-
-           •   uuppssttrreeaamm - push the current branch back to the branch whose changes are usually integrated into
-               the current branch (which is called @@{{uuppssttrreeaamm}}). This mode only makes sense if you are pushing
-               to the same repository you would normally pull from (i.e. central workflow).
-
-           •   ttrraacckkiinngg - This is a deprecated synonym for uuppssttrreeaamm.
-
-           •   ssiimmppllee - in centralized workflow, work like uuppssttrreeaamm with an added safety to refuse to push if
-               the upstream branch’s name is different from the local one.
-
-               When pushing to a remote that is different from the remote you normally pull from, work as
-               ccuurrrreenntt. This is the safest option and is suited for beginners.
-
-               This mode has become the default in Git 2.0.
-
-           •   mmaattcchhiinngg - push all branches having the same name on both ends. This makes the repository you
-               are pushing to remember the set of branches that will be pushed out (e.g. if you always push
-               _m_a_i_n_t and _m_a_s_t_e_r there and no other branches, the repository you push to will have these two
-               branches, and your local _m_a_i_n_t and _m_a_s_t_e_r will be pushed there).
-
-               To use this mode effectively, you have to make sure _a_l_l the branches you would push out are
-               ready to be pushed out before running _g_i_t _p_u_s_h, as the whole point of this mode is to allow you
-               to push all of the branches in one go. If you usually finish work on only one branch and push
-               out the result, while other branches are unfinished, this mode is not for you. Also this mode
-               is not suitable for pushing into a shared central repository, as other people may add new
-               branches there, or update the tip of existing branches outside your control.
-
-               This used to be the default, but not since Git 2.0 (ssiimmppllee is the new default).
-
-       push.followTags
-           If set to true enable ----ffoollllooww--ttaaggss option by default. You may override this configuration at time
-           of push by specifying ----nnoo--ffoollllooww--ttaaggss.
-
-       push.gpgSign
-           May be set to a boolean value, or the string _i_f_-_a_s_k_e_d. A true value causes all pushes to be GPG
-           signed, as if ----ssiiggnneedd is passed to ggiitt--ppuusshh(1). The string _i_f_-_a_s_k_e_d causes pushes to be signed if
-           the server supports it, as if ----ssiiggnneedd==iiff--aasskkeedd is passed to _g_i_t _p_u_s_h. A false value may override a
-           value from a lower-priority config file. An explicit command-line flag always overrides this config
-           option.
-
-       push.pushOption
-           When no ----ppuusshh--ooppttiioonn==<> argument is given from the command line, ggiitt ppuusshh behaves as if each
-            of this variable is given as ----ppuusshh--ooppttiioonn==<>.
-
-           This is a multi-valued variable, and an empty value can be used in a higher priority configuration
-           file (e.g.  ..ggiitt//ccoonnffiigg in a repository) to clear the values inherited from a lower priority
-           configuration files (e.g.  $$HHOOMMEE//..ggiittccoonnffiigg).
-
-           Example:
-
-           /etc/gitconfig push.pushoption = a push.pushoption = b
-
-           ~/.gitconfig push.pushoption = c
-
-           repo/.git/config push.pushoption = push.pushoption = b
-
-           This will result in only b (a and c are cleared).
-
-       push.recurseSubmodules
-           Make sure all submodule commits used by the revisions to be pushed are available on a
-           remote-tracking branch. If the value is _c_h_e_c_k then Git will verify that all submodule commits that
-           changed in the revisions to be pushed are available on at least one remote of the submodule. If any
-           commits are missing, the push will be aborted and exit with non-zero status. If the value is
-           _o_n_-_d_e_m_a_n_d then all submodules that changed in the revisions to be pushed will be pushed. If
-           on-demand was not able to push all necessary revisions it will also be aborted and exit with
-           non-zero status. If the value is _n_o then default behavior of ignoring submodules when pushing is
-           retained. You may override this configuration at time of push by specifying
-           _-_-_r_e_c_u_r_s_e_-_s_u_b_m_o_d_u_l_e_s_=_c_h_e_c_k_|_o_n_-_d_e_m_a_n_d_|_n_o.
-
-       rebase.useBuiltin
-           Set to ffaallssee to use the legacy shellscript implementation of ggiitt--rreebbaassee(1). Is ttrruuee by default,
-           which means use the built-in rewrite of it in C.
-
-           The C rewrite is first included with Git version 2.20. This option serves an an escape hatch to
-           re-enable the legacy version in case any bugs are found in the rewrite. This option and the
-           shellscript version of ggiitt--rreebbaassee(1) will be removed in some future release.
-
-           If you find some reason to set this option to ffaallssee other than one-off testing you should report
-           the behavior difference as a bug in git.
-
-       rebase.stat
-           Whether to show a diffstat of what changed upstream since the last rebase. False by default.
-
-       rebase.autoSquash
-           If set to true enable ----aauuttoossqquuaasshh option by default.
-
-       rebase.autoStash
-           When set to true, automatically create a temporary stash entry before the operation begins, and
-           apply it after the operation ends. This means that you can run rebase on a dirty worktree. However,
-           use with care: the final stash application after a successful rebase might result in non-trivial
-           conflicts. This option can be overridden by the ----nnoo--aauuttoossttaasshh and ----aauuttoossttaasshh options of ggiitt--
-           rreebbaassee(1). Defaults to false.
-
-       rebase.missingCommitsCheck
-           If set to "warn", git rebase -i will print a warning if some commits are removed (e.g. a line was
-           deleted), however the rebase will still proceed. If set to "error", it will print the previous
-           warning and stop the rebase, _g_i_t _r_e_b_a_s_e _-_-_e_d_i_t_-_t_o_d_o can then be used to correct the error. If set
-           to "ignore", no checking is done. To drop a commit without warning or error, use the ddrroopp command
-           in the todo list. Defaults to "ignore".
-
-       rebase.instructionFormat
-           A format string, as specified in ggiitt--lloogg(1), to be used for the todo list during an interactive
-           rebase. The format will automatically have the long commit hash prepended to the format.
-
-       rebase.abbreviateCommands
-           If set to true, ggiitt rreebbaassee will use abbreviated command names in the todo list resulting in
-           something like this:
-
-                       p deadbee The oneline of the commit
-                       p fa1afe1 The oneline of the next commit
-                       ...
-
-           instead of:
-
-                       pick deadbee The oneline of the commit
-                       pick fa1afe1 The oneline of the next commit
-                       ...
-
-           Defaults to false.
-
-       receive.advertiseAtomic
-           By default, git-receive-pack will advertise the atomic push capability to its clients. If you don’t
-           want to advertise this capability, set this variable to false.
-
-       receive.advertisePushOptions
-           When set to true, git-receive-pack will advertise the push options capability to its clients. False
-           by default.
-
-       receive.autogc
-           By default, git-receive-pack will run "git-gc --auto" after receiving data from git-push and
-           updating refs. You can stop it by setting this variable to false.
-
-       receive.certNonceSeed
-           By setting this variable to a string, ggiitt rreecceeiivvee--ppaacckk will accept a ggiitt ppuusshh ----ssiiggnneedd and verifies
-           it by using a "nonce" protected by HMAC using this string as a secret key.
-
-       receive.certNonceSlop
-           When a ggiitt ppuusshh ----ssiiggnneedd sent a push certificate with a "nonce" that was issued by a receive-pack
-           serving the same repository within this many seconds, export the "nonce" found in the certificate
-           to GGIITT__PPUUSSHH__CCEERRTT__NNOONNCCEE to the hooks (instead of what the receive-pack asked the sending side to
-           include). This may allow writing checks in pprree--rreecceeiivvee and ppoosstt--rreecceeiivvee a bit easier. Instead of
-           checking GGIITT__PPUUSSHH__CCEERRTT__NNOONNCCEE__SSLLOOPP environment variable that records by how many seconds the nonce
-           is stale to decide if they want to accept the certificate, they only can check
-           GGIITT__PPUUSSHH__CCEERRTT__NNOONNCCEE__SSTTAATTUUSS is OOKK.
-
-       receive.fsckObjects
-           If it is set to true, git-receive-pack will check all received objects. See ttrraannssffeerr..ffsscckkOObbjjeeccttss
-           for what’s checked. Defaults to false. If not set, the value of ttrraannssffeerr..ffsscckkOObbjjeeccttss is used
-           instead.
-
-       receive.fsck.
-           Acts like ffsscckk..<>, but is used by ggiitt--rreecceeiivvee--ppaacckk(1) instead of ggiitt--ffsscckk(1). See the
-           ffsscckk..<> documentation for details.
-
-       receive.fsck.skipList
-           Acts like ffsscckk..sskkiippLLiisstt, but is used by ggiitt--rreecceeiivvee--ppaacckk(1) instead of ggiitt--ffsscckk(1). See the
-           ffsscckk..sskkiippLLiisstt documentation for details.
-
-       receive.keepAlive
-           After receiving the pack from the client, rreecceeiivvee--ppaacckk may produce no output (if ----qquuiieett was
-           specified) while processing the pack, causing some networks to drop the TCP connection. With this
-           option set, if rreecceeiivvee--ppaacckk does not transmit any data in this phase for rreecceeiivvee..kkeeeeppAAlliivvee seconds,
-           it will send a short keepalive packet. The default is 5 seconds; set to 0 to disable keepalives
-           entirely.
-
-       receive.unpackLimit
-           If the number of objects received in a push is below this limit then the objects will be unpacked
-           into loose object files. However if the number of received objects equals or exceeds this limit
-           then the received pack will be stored as a pack, after adding any missing delta bases. Storing the
-           pack from a push can make the push operation complete faster, especially on slow filesystems. If
-           not set, the value of ttrraannssffeerr..uunnppaacckkLLiimmiitt is used instead.
-
-       receive.maxInputSize
-           If the size of the incoming pack stream is larger than this limit, then git-receive-pack will error
-           out, instead of accepting the pack file. If not set or set to 0, then the size is unlimited.
-
-       receive.denyDeletes
-           If set to true, git-receive-pack will deny a ref update that deletes the ref. Use this to prevent
-           such a ref deletion via a push.
-
-       receive.denyDeleteCurrent
-           If set to true, git-receive-pack will deny a ref update that deletes the currently checked out
-           branch of a non-bare repository.
-
-       receive.denyCurrentBranch
-           If set to true or "refuse", git-receive-pack will deny a ref update to the currently checked out
-           branch of a non-bare repository. Such a push is potentially dangerous because it brings the HEAD
-           out of sync with the index and working tree. If set to "warn", print a warning of such a push to
-           stderr, but allow the push to proceed. If set to false or "ignore", allow such pushes with no
-           message. Defaults to "refuse".
-
-           Another option is "updateInstead" which will update the working tree if pushing into the current
-           branch. This option is intended for synchronizing working directories when one side is not easily
-           accessible via interactive ssh (e.g. a live web site, hence the requirement that the working
-           directory be clean). This mode also comes in handy when developing inside a VM to test and fix code
-           on different Operating Systems.
-
-           By default, "updateInstead" will refuse the push if the working tree or the index have any
-           difference from the HEAD, but the ppuusshh--ttoo--cchheecckkoouutt hook can be used to customize this. See
-           ggiitthhooookkss(5).
-
-       receive.denyNonFastForwards
-           If set to true, git-receive-pack will deny a ref update which is not a fast-forward. Use this to
-           prevent such an update via a push, even if that push is forced. This configuration variable is set
-           when initializing a shared repository.
-
-       receive.hideRefs
-           This variable is the same as ttrraannssffeerr..hhiiddeeRReeffss, but applies only to rreecceeiivvee--ppaacckk (and so affects
-           pushes, but not fetches). An attempt to update or delete a hidden ref by ggiitt ppuusshh is rejected.
-
-       receive.updateServerInfo
-           If set to true, git-receive-pack will run git-update-server-info after receiving data from git-push
-           and updating refs.
-
-       receive.shallowUpdate
-           If set to true, .git/shallow can be updated when new refs require new shallow roots. Otherwise
-           those refs are rejected.
-
-       remote.pushDefault
-           The remote to push to by default. Overrides bbrraanncchh..<>..rreemmoottee for all branches, and is
-           overridden by bbrraanncchh..<>..ppuusshhRReemmoottee for specific branches.
-
-       remote..url
-           The URL of a remote repository. See ggiitt--ffeettcchh(1) or ggiitt--ppuusshh(1).
-
-       remote..pushurl
-           The push URL of a remote repository. See ggiitt--ppuusshh(1).
-
-       remote..proxy
-           For remotes that require curl (http, https and ftp), the URL to the proxy to use for that remote.
-           Set to the empty string to disable proxying for that remote.
-
-       remote..proxyAuthMethod
-           For remotes that require curl (http, https and ftp), the method to use for authenticating against
-           the proxy in use (probably set in rreemmoottee..<>..pprrooxxyy). See hhttttpp..pprrooxxyyAAuutthhMMeetthhoodd.
-
-       remote..fetch
-           The default set of "refspec" for ggiitt--ffeettcchh(1). See ggiitt--ffeettcchh(1).
-
-       remote..push
-           The default set of "refspec" for ggiitt--ppuusshh(1). See ggiitt--ppuusshh(1).
-
-       remote..mirror
-           If true, pushing to this remote will automatically behave as if the ----mmiirrrroorr option was given on
-           the command line.
-
-       remote..skipDefaultUpdate
-           If true, this remote will be skipped by default when updating using ggiitt--ffeettcchh(1) or the uuppddaattee
-           subcommand of ggiitt--rreemmoottee(1).
-
-       remote..skipFetchAll
-           If true, this remote will be skipped by default when updating using ggiitt--ffeettcchh(1) or the uuppddaattee
-           subcommand of ggiitt--rreemmoottee(1).
-
-       remote..receivepack
-           The default program to execute on the remote side when pushing. See option --receive-pack of ggiitt--
-           ppuusshh(1).
-
-       remote..uploadpack
-           The default program to execute on the remote side when fetching. See option --upload-pack of ggiitt--
-           ffeettcchh--ppaacckk(1).
-
-       remote..tagOpt
-           Setting this value to --no-tags disables automatic tag following when fetching from remote .
-           Setting it to --tags will fetch every tag from remote , even if they are not reachable from
-           remote branch heads. Passing these flags directly to ggiitt--ffeettcchh(1) can override this setting. See
-           options --tags and --no-tags of ggiitt--ffeettcchh(1).
-
-       remote..vcs
-           Setting this to a value  will cause Git to interact with the remote with the git-remote-
-           helper.
-
-       remote..prune
-           When set to true, fetching from this remote by default will also remove any remote-tracking
-           references that no longer exist on the remote (as if the ----pprruunnee option was given on the command
-           line). Overrides ffeettcchh..pprruunnee settings, if any.
-
-       remote..pruneTags
-           When set to true, fetching from this remote by default will also remove any local tags that no
-           longer exist on the remote if pruning is activated in general via rreemmoottee..<>..pprruunnee, ffeettcchh..pprruunnee
-           or ----pprruunnee. Overrides ffeettcchh..pprruunneeTTaaggss settings, if any.
-
-           See also rreemmoottee..<>..pprruunnee and the PRUNING section of ggiitt--ffeettcchh(1).
-
-       remotes.
-           The list of remotes which are fetched by "git remote update ". See ggiitt--rreemmoottee(1).
-
-       repack.useDeltaBaseOffset
-           By default, ggiitt--rreeppaacckk(1) creates packs that use delta-base offset. If you need to share your
-           repository with Git older than version 1.4.4, either directly or via a dumb protocol such as http,
-           then you need to set this option to "false" and repack. Access from old Git versions over the
-           native protocol are unaffected by this option.
-
-       repack.packKeptObjects
-           If set to true, makes ggiitt rreeppaacckk act as if ----ppaacckk--kkeepptt--oobbjjeeccttss was passed. See ggiitt--rreeppaacckk(1) for
-           details. Defaults to ffaallssee normally, but ttrruuee if a bitmap index is being written (either via
-           ----wwrriittee--bbiittmmaapp--iinnddeexx or rreeppaacckk..wwrriitteeBBiittmmaappss).
-
-       repack.useDeltaIslands
-           If set to true, makes ggiitt rreeppaacckk act as if ----ddeellttaa--iissllaannddss was passed. Defaults to ffaallssee.
-
-       repack.writeBitmaps
-           When true, git will write a bitmap index when packing all objects to disk (e.g., when ggiitt rreeppaacckk --aa
-           is run). This index can speed up the "counting objects" phase of subsequent packs created for
-           clones and fetches, at the cost of some disk space and extra time spent on the initial repack. This
-           has no effect if multiple packfiles are created. Defaults to false.
-
-       rerere.autoUpdate
-           When set to true, ggiitt--rreerreerree updates the index with the resulting contents after it cleanly
-           resolves conflicts using previously recorded resolution. Defaults to false.
-
-       rerere.enabled
-           Activate recording of resolved conflicts, so that identical conflict hunks can be resolved
-           automatically, should they be encountered again. By default, ggiitt--rreerreerree(1) is enabled if there is
-           an rrrr--ccaacchhee directory under the $$GGIITT__DDIIRR, e.g. if "rerere" was previously used in the repository.
-
-       reset.quiet
-           When set to true, _g_i_t _r_e_s_e_t will default to the _-_-_q_u_i_e_t option.
-
-       sendemail.identity
-           A configuration identity. When given, causes values in the _s_e_n_d_e_m_a_i_l_._<_i_d_e_n_t_i_t_y_> subsection to take
-           precedence over values in the _s_e_n_d_e_m_a_i_l section. The default identity is the value of
-           sseennddeemmaaiill..iiddeennttiittyy.
-
-       sendemail.smtpEncryption
-           See ggiitt--sseenndd--eemmaaiill(1) for description. Note that this setting is not subject to the _i_d_e_n_t_i_t_y
-           mechanism.
-
-       sendemail.smtpssl (deprecated)
-           Deprecated alias for _s_e_n_d_e_m_a_i_l_._s_m_t_p_E_n_c_r_y_p_t_i_o_n _= _s_s_l.
-
-       sendemail.smtpsslcertpath
-           Path to ca-certificates (either a directory or a single file). Set it to an empty string to disable
-           certificate verification.
-
-       sendemail..*
-           Identity-specific versions of the _s_e_n_d_e_m_a_i_l_._*  parameters found below, taking precedence over those
-           when this identity is selected, through either the command-line or sseennddeemmaaiill..iiddeennttiittyy.
-
-       sendemail.aliasesFile, sendemail.aliasFileType, sendemail.annotate, sendemail.bcc, sendemail.cc,
-       sendemail.ccCmd, sendemail.chainReplyTo, sendemail.confirm, sendemail.envelopeSender, sendemail.from,
-       sendemail.multiEdit, sendemail.signedoffbycc, sendemail.smtpPass, sendemail.suppresscc,
-       sendemail.suppressFrom, sendemail.to, sendemail.tocmd, sendemail.smtpDomain, sendemail.smtpServer,
-       sendemail.smtpServerPort, sendemail.smtpServerOption, sendemail.smtpUser, sendemail.thread,
-       sendemail.transferEncoding, sendemail.validate, sendemail.xmailer
-           See ggiitt--sseenndd--eemmaaiill(1) for description.
-
-       sendemail.signedoffcc (deprecated)
-           Deprecated alias for sseennddeemmaaiill..ssiiggnneeddooffffbbyycccc.
-
-       sendemail.smtpBatchSize
-           Number of messages to be sent per connection, after that a relogin will happen. If the value is 0
-           or undefined, send all messages in one connection. See also the ----bbaattcchh--ssiizzee option of ggiitt--sseenndd--
-           eemmaaiill(1).
-
-       sendemail.smtpReloginDelay
-           Seconds wait before reconnecting to smtp server. See also the ----rreellooggiinn--ddeellaayy option of ggiitt--sseenndd--
-           eemmaaiill(1).
-
-       sequence.editor
-           Text editor used by ggiitt rreebbaassee --ii for editing the rebase instruction file. The value is meant to be
-           interpreted by the shell when it is used. It can be overridden by the GGIITT__SSEEQQUUEENNCCEE__EEDDIITTOORR
-           environment variable. When not configured the default commit message editor is used instead.
-
-       showBranch.default
-           The default set of branches for ggiitt--sshhooww--bbrraanncchh(1). See ggiitt--sshhooww--bbrraanncchh(1).
-
-       splitIndex.maxPercentChange
-           When the split index feature is used, this specifies the percent of entries the split index can
-           contain compared to the total number of entries in both the split index and the shared index before
-           a new shared index is written. The value should be between 0 and 100. If the value is 0 then a new
-           shared index is always written, if it is 100 a new shared index is never written. By default the
-           value is 20, so a new shared index is written if the number of entries in the split index would be
-           greater than 20 percent of the total number of entries. See ggiitt--uuppddaattee--iinnddeexx(1).
-
-       splitIndex.sharedIndexExpire
-           When the split index feature is used, shared index files that were not modified since the time this
-           variable specifies will be removed when a new shared index file is created. The value "now" expires
-           all entries immediately, and "never" suppresses expiration altogether. The default value is
-           "2.weeks.ago". Note that a shared index file is considered modified (for the purpose of expiration)
-           each time a new split-index file is either created based on it or read from it. See ggiitt--uuppddaattee--
-           iinnddeexx(1).
-
-       ssh.variant
-           By default, Git determines the command line arguments to use based on the basename of the
-           configured SSH command (configured using the environment variable GGIITT__SSSSHH or GGIITT__SSSSHH__CCOOMMMMAANNDD or the
-           config setting ccoorree..sssshhCCoommmmaanndd). If the basename is unrecognized, Git will attempt to detect
-           support of OpenSSH options by first invoking the configured SSH command with the --GG (print
-           configuration) option and will subsequently use OpenSSH options (if that is successful) or no
-           options besides the host and remote command (if it fails).
-
-           The config variable sssshh..vvaarriiaanntt can be set to override this detection. Valid values are sssshh (to use
-           OpenSSH options), pplliinnkk, ppuuttttyy, ttoorrttooiisseepplliinnkk, ssiimmppllee (no options except the host and remote
-           command). The default auto-detection can be explicitly requested using the value aauuttoo. Any other
-           value is treated as sssshh. This setting can also be overridden via the environment variable
-           GGIITT__SSSSHH__VVAARRIIAANNTT.
-
-           The current command-line parameters used for each variant are as follows:
-
-           •   sssshh - [-p port] [-4] [-6] [-o option] [username@]host command
-
-           •   ssiimmppllee - [username@]host command
-
-           •   pplliinnkk or ppuuttttyy - [-P port] [-4] [-6] [username@]host command
-
-           •   ttoorrttooiisseepplliinnkk - [-P port] [-4] [-6] -batch [username@]host command
-
-           Except for the ssiimmppllee variant, command-line parameters are likely to change as git gains new
-           features.
-
-       status.relativePaths
-           By default, ggiitt--ssttaattuuss(1) shows paths relative to the current directory. Setting this variable to
-           ffaallssee shows paths relative to the repository root (this was the default for Git prior to v1.5.4).
-
-       status.short
-           Set to true to enable --short by default in ggiitt--ssttaattuuss(1). The option --no-short takes precedence
-           over this variable.
-
-       status.branch
-           Set to true to enable --branch by default in ggiitt--ssttaattuuss(1). The option --no-branch takes precedence
-           over this variable.
-
-       status.displayCommentPrefix
-           If set to true, ggiitt--ssttaattuuss(1) will insert a comment prefix before each output line (starting with
-           ccoorree..ccoommmmeennttCChhaarr, i.e.  ## by default). This was the behavior of ggiitt--ssttaattuuss(1) in Git 1.8.4 and
-           previous. Defaults to false.
-
-       status.renameLimit
-           The number of files to consider when performing rename detection in ggiitt--ssttaattuuss(1) and ggiitt--
-           ccoommmmiitt(1). Defaults to the value of diff.renameLimit.
-
-       status.renames
-           Whether and how Git detects renames in ggiitt--ssttaattuuss(1) and ggiitt--ccoommmmiitt(1) . If set to "false", rename
-           detection is disabled. If set to "true", basic rename detection is enabled. If set to "copies" or
-           "copy", Git will detect copies, as well. Defaults to the value of diff.renames.
-
-       status.showStash
-           If set to true, ggiitt--ssttaattuuss(1) will display the number of entries currently stashed away. Defaults
-           to false.
-
-       status.showUntrackedFiles
-           By default, ggiitt--ssttaattuuss(1) and ggiitt--ccoommmmiitt(1) show files which are not currently tracked by Git.
-           Directories which contain only untracked files, are shown with the directory name only. Showing
-           untracked files means that Git needs to lstat() all the files in the whole repository, which might
-           be slow on some systems. So, this variable controls how the commands displays the untracked files.
-           Possible values are:
-
-           •   nnoo - Show no untracked files.
-
-           •   nnoorrmmaall - Show untracked files and directories.
-
-           •   aallll - Show also individual files in untracked directories.
-
-           If this variable is not specified, it defaults to _n_o_r_m_a_l. This variable can be overridden with the
-           -u|--untracked-files option of ggiitt--ssttaattuuss(1) and ggiitt--ccoommmmiitt(1).
-
-       status.submoduleSummary
-           Defaults to false. If this is set to a non zero number or true (identical to -1 or an unlimited
-           number), the submodule summary will be enabled and a summary of commits for modified submodules
-           will be shown (see --summary-limit option of ggiitt--ssuubbmmoodduullee(1)). Please note that the summary output
-           command will be suppressed for all submodules when ddiiffff..iiggnnoorreeSSuubbmmoodduulleess is set to _a_l_l or only for
-           those submodules where ssuubbmmoodduullee..<>..iiggnnoorree==aallll. The only exception to that rule is that status
-           and commit will show staged submodule changes. To also view the summary for ignored submodules you
-           can either use the --ignore-submodules=dirty command-line option or the _g_i_t _s_u_b_m_o_d_u_l_e _s_u_m_m_a_r_y
-           command, which shows a similar output but does not honor these settings.
-
-       stash.showPatch
-           If this is set to true, the ggiitt ssttaasshh sshhooww command without an option will show the stash entry in
-           patch form. Defaults to false. See description of _s_h_o_w command in ggiitt--ssttaasshh(1).
-
-       stash.showStat
-           If this is set to true, the ggiitt ssttaasshh sshhooww command without an option will show diffstat of the
-           stash entry. Defaults to true. See description of _s_h_o_w command in ggiitt--ssttaasshh(1).
-
-       submodule..url
-           The URL for a submodule. This variable is copied from the .gitmodules file to the git config via
-           _g_i_t _s_u_b_m_o_d_u_l_e _i_n_i_t. The user can change the configured URL before obtaining the submodule via _g_i_t
-           _s_u_b_m_o_d_u_l_e _u_p_d_a_t_e. If neither submodule..active or submodule.active are set, the presence of
-           this variable is used as a fallback to indicate whether the submodule is of interest to git
-           commands. See ggiitt--ssuubbmmoodduullee(1) and ggiittmmoodduulleess(5) for details.
-
-       submodule..update
-           The method by which a submodule is updated by _g_i_t _s_u_b_m_o_d_u_l_e _u_p_d_a_t_e, which is the only affected
-           command, others such as _g_i_t _c_h_e_c_k_o_u_t _-_-_r_e_c_u_r_s_e_-_s_u_b_m_o_d_u_l_e_s are unaffected. It exists for historical
-           reasons, when _g_i_t _s_u_b_m_o_d_u_l_e was the only command to interact with submodules; settings like
-           ssuubbmmoodduullee..aaccttiivvee and ppuullll..rreebbaassee are more specific. It is populated by ggiitt ssuubbmmoodduullee iinniitt from the
-           ggiittmmoodduulleess(5) file. See description of _u_p_d_a_t_e command in ggiitt--ssuubbmmoodduullee(1).
-
-       submodule..branch
-           The remote branch name for a submodule, used by ggiitt ssuubbmmoodduullee uuppddaattee ----rreemmoottee. Set this option to
-           override the value found in the ..ggiittmmoodduulleess file. See ggiitt--ssuubbmmoodduullee(1) and ggiittmmoodduulleess(5) for
-           details.
-
-       submodule..fetchRecurseSubmodules
-           This option can be used to control recursive fetching of this submodule. It can be overridden by
-           using the --[no-]recurse-submodules command-line option to "git fetch" and "git pull". This setting
-           will override that from in the ggiittmmoodduulleess(5) file.
-
-       submodule..ignore
-           Defines under what circumstances "git status" and the diff family show a submodule as modified.
-           When set to "all", it will never be considered modified (but it will nonetheless show up in the
-           output of status and commit when it has been staged), "dirty" will ignore all changes to the
-           submodules work tree and takes only differences between the HEAD of the submodule and the commit
-           recorded in the superproject into account. "untracked" will additionally let submodules with
-           modified tracked files in their work tree show up. Using "none" (the default when this option is
-           not set) also shows submodules that have untracked files in their work tree as changed. This
-           setting overrides any setting made in .gitmodules for this submodule, both settings can be
-           overridden on the command line by using the "--ignore-submodules" option. The _g_i_t _s_u_b_m_o_d_u_l_e
-           commands are not affected by this setting.
-
-       submodule..active
-           Boolean value indicating if the submodule is of interest to git commands. This config option takes
-           precedence over the submodule.active config option. See ggiittssuubbmmoodduulleess(7) for details.
-
-       submodule.active
-           A repeated field which contains a pathspec used to match against a submodule’s path to determine if
-           the submodule is of interest to git commands. See ggiittssuubbmmoodduulleess(7) for details.
-
-       submodule.recurse
-           Specifies if commands recurse into submodules by default. This applies to all commands that have a
-           ----rreeccuurrssee--ssuubbmmoodduulleess option, except cclloonnee. Defaults to false.
-
-       submodule.fetchJobs
-           Specifies how many submodules are fetched/cloned at the same time. A positive integer allows up to
-           that number of submodules fetched in parallel. A value of 0 will give some reasonable default. If
-           unset, it defaults to 1.
-
-       submodule.alternateLocation
-           Specifies how the submodules obtain alternates when submodules are cloned. Possible values are nnoo,
-           ssuuppeerrpprroojjeecctt. By default nnoo is assumed, which doesn’t add references. When the value is set to
-           ssuuppeerrpprroojjeecctt the submodule to be cloned computes its alternates location relative to the
-           superprojects alternate.
-
-       submodule.alternateErrorStrategy
-           Specifies how to treat errors with the alternates for a submodule as computed via
-           ssuubbmmoodduullee..aalltteerrnnaatteeLLooccaattiioonn. Possible values are iiggnnoorree, iinnffoo, ddiiee. Default is ddiiee.
-
-       tag.forceSignAnnotated
-           A boolean to specify whether annotated tags created should be GPG signed. If ----aannnnoottaattee is
-           specified on the command line, it takes precedence over this option.
-
-       tag.sort
-           This variable controls the sort ordering of tags when displayed by ggiitt--ttaagg(1). Without the
-           "--sort=" option provided, the value of this variable will be used as the default.
-
-       tar.umask
-           This variable can be used to restrict the permission bits of tar archive entries. The default is
-           0002, which turns off the world write bit. The special value "user" indicates that the archiving
-           user’s umask will be used instead. See umask(2) and ggiitt--aarrcchhiivvee(1).
-
-       transfer.fsckObjects
-           When ffeettcchh..ffsscckkOObbjjeeccttss or rreecceeiivvee..ffsscckkOObbjjeeccttss are not set, the value of this variable is used
-           instead. Defaults to false.
-
-           When set, the fetch or receive will abort in the case of a malformed object or a link to a
-           nonexistent object. In addition, various other issues are checked for, including legacy issues (see
-           ffsscckk..<>), and potential security issues like the existence of a ..GGIITT directory or a malicious
-           ..ggiittmmoodduulleess file (see the release notes for v2.2.1 and v2.17.1 for details). Other sanity and
-           security checks may be added in future releases.
-
-           On the receiving side, failing fsckObjects will make those objects unreachable, see "QUARANTINE
-           ENVIRONMENT" in ggiitt--rreecceeiivvee--ppaacckk(1). On the fetch side, malformed objects will instead be left
-           unreferenced in the repository.
-
-           Due to the non-quarantine nature of the ffeettcchh..ffsscckkOObbjjeeccttss implementation it can not be relied upon
-           to leave the object store clean like rreecceeiivvee..ffsscckkOObbjjeeccttss can.
-
-           As objects are unpacked they’re written to the object store, so there can be cases where malicious
-           objects get introduced even though the "fetch" failed, only to have a subsequent "fetch" succeed
-           because only new incoming objects are checked, not those that have already been written to the
-           object store. That difference in behavior should not be relied upon. In the future, such objects
-           may be quarantined for "fetch" as well.
-
-           For now, the paranoid need to find some way to emulate the quarantine environment if they’d like
-           the same protection as "push". E.g. in the case of an internal mirror do the mirroring in two
-           steps, one to fetch the untrusted objects, and then do a second "push" (which will use the
-           quarantine) to another internal repo, and have internal clients consume this pushed-to repository,
-           or embargo internal fetches and only allow them once a full "fsck" has run (and no new fetches have
-           happened in the meantime).
-
-       transfer.hideRefs
-           String(s) rreecceeiivvee--ppaacckk and uuppllooaadd--ppaacckk use to decide which refs to omit from their initial
-           advertisements. Use more than one definition to specify multiple prefix strings. A ref that is
-           under the hierarchies listed in the value of this variable is excluded, and is hidden when
-           responding to ggiitt ppuusshh or ggiitt ffeettcchh. See rreecceeiivvee..hhiiddeeRReeffss and uuppllooaaddppaacckk..hhiiddeeRReeffss for
-           program-specific versions of this config.
-
-           You may also include a !!  in front of the ref name to negate the entry, explicitly exposing it,
-           even if an earlier entry marked it as hidden. If you have multiple hideRefs values, later entries
-           override earlier ones (and entries in more-specific config files override less-specific ones).
-
-           If a namespace is in use, the namespace prefix is stripped from each reference before it is matched
-           against ttrraannssffeerr..hhiiddeerreeffss patterns. For example, if rreeffss//hheeaaddss//mmaasstteerr is specified in
-           ttrraannssffeerr..hhiiddeeRReeffss and the current namespace is ffoooo, then rreeffss//nnaammeessppaacceess//ffoooo//rreeffss//hheeaaddss//mmaasstteerr is
-           omitted from the advertisements but rreeffss//hheeaaddss//mmaasstteerr and rreeffss//nnaammeessppaacceess//bbaarr//rreeffss//hheeaaddss//mmaasstteerr are
-           still advertised as so-called "have" lines. In order to match refs before stripping, add a ^^ in
-           front of the ref name. If you combine !!  and ^^, !!  must be specified first.
-
-           Even if you hide refs, a client may still be able to steal the target objects via the techniques
-           described in the "SECURITY" section of the ggiittnnaammeessppaacceess(7) man page; it’s best to keep private
-           data in a separate repository.
-
-       transfer.unpackLimit
-           When ffeettcchh..uunnppaacckkLLiimmiitt or rreecceeiivvee..uunnppaacckkLLiimmiitt are not set, the value of this variable is used
-           instead. The default value is 100.
-
-       uploadarchive.allowUnreachable
-           If true, allow clients to use ggiitt aarrcchhiivvee ----rreemmoottee to request any tree, whether reachable from the
-           ref tips or not. See the discussion in the "SECURITY" section of ggiitt--uuppllooaadd--aarrcchhiivvee(1) for more
-           details. Defaults to ffaallssee.
-
-       uploadpack.hideRefs
-           This variable is the same as ttrraannssffeerr..hhiiddeeRReeffss, but applies only to uuppllooaadd--ppaacckk (and so affects
-           only fetches, not pushes). An attempt to fetch a hidden ref by ggiitt ffeettcchh will fail. See also
-           uuppllooaaddppaacckk..aalllloowwTTiippSSHHAA11IInnWWaanntt.
-
-       uploadpack.allowTipSHA1InWant
-           When uuppllooaaddppaacckk..hhiiddeeRReeffss is in effect, allow uuppllooaadd--ppaacckk to accept a fetch request that asks for an
-           object at the tip of a hidden ref (by default, such a request is rejected). See also
-           uuppllooaaddppaacckk..hhiiddeeRReeffss. Even if this is false, a client may be able to steal objects via the
-           techniques described in the "SECURITY" section of the ggiittnnaammeessppaacceess(7) man page; it’s best to keep
-           private data in a separate repository.
-
-       uploadpack.allowReachableSHA1InWant
-           Allow uuppllooaadd--ppaacckk to accept a fetch request that asks for an object that is reachable from any ref
-           tip. However, note that calculating object reachability is computationally expensive. Defaults to
-           ffaallssee. Even if this is false, a client may be able to steal objects via the techniques described in
-           the "SECURITY" section of the ggiittnnaammeessppaacceess(7) man page; it’s best to keep private data in a
-           separate repository.
-
-       uploadpack.allowAnySHA1InWant
-           Allow uuppllooaadd--ppaacckk to accept a fetch request that asks for any object at all. Defaults to ffaallssee.
-
-       uploadpack.keepAlive
-           When uuppllooaadd--ppaacckk has started ppaacckk--oobbjjeeccttss, there may be a quiet period while ppaacckk--oobbjjeeccttss prepares
-           the pack. Normally it would output progress information, but if ----qquuiieett was used for the fetch,
-           ppaacckk--oobbjjeeccttss will output nothing at all until the pack data begins. Some clients and networks may
-           consider the server to be hung and give up. Setting this option instructs uuppllooaadd--ppaacckk to send an
-           empty keepalive packet every uuppllooaaddppaacckk..kkeeeeppAAlliivvee seconds. Setting this option to 0 disables
-           keepalive packets entirely. The default is 5 seconds.
-
-       uploadpack.packObjectsHook
-           If this option is set, when uuppllooaadd--ppaacckk would run ggiitt ppaacckk--oobbjjeeccttss to create a packfile for a
-           client, it will run this shell command instead. The ppaacckk--oobbjjeeccttss command and arguments it _w_o_u_l_d
-           have run (including the ggiitt ppaacckk--oobbjjeeccttss at the beginning) are appended to the shell command. The
-           stdin and stdout of the hook are treated as if ppaacckk--oobbjjeeccttss itself was run. I.e., uuppllooaadd--ppaacckk will
-           feed input intended for ppaacckk--oobbjjeeccttss to the hook, and expects a completed packfile on stdout.
-
-           Note that this configuration variable is ignored if it is seen in the repository-level config (this
-           is a safety measure against fetching from untrusted repositories).
-
-       uploadpack.allowFilter
-           If this option is set, uuppllooaadd--ppaacckk will support partial clone and partial fetch object filtering.
-
-       uploadpack.allowRefInWant
-           If this option is set, uuppllooaadd--ppaacckk will support the rreeff--iinn--wwaanntt feature of the protocol version 2
-           ffeettcchh command. This feature is intended for the benefit of load-balanced servers which may not have
-           the same view of what OIDs their refs point to due to replication delay.
-
-       url..insteadOf
-           Any URL that starts with this value will be rewritten to start, instead, with . In cases
-           where some site serves a large number of repositories, and serves them with multiple access
-           methods, and some users need to use different access methods, this feature allows people to specify
-           any of the equivalent URLs and have Git automatically rewrite the URL to the best alternative for
-           the particular user, even for a never-before-seen repository on the site. When more than one
-           insteadOf strings match a given URL, the longest match is used.
-
-           Note that any protocol restrictions will be applied to the rewritten URL. If the rewrite changes
-           the URL to use a custom protocol or remote helper, you may need to adjust the pprroottooccooll..**..aallllooww
-           config to permit the request. In particular, protocols you expect to use for submodules must be set
-           to aallwwaayyss rather than the default of uusseerr. See the description of pprroottooccooll..aallllooww above.
-
-       url..pushInsteadOf
-           Any URL that starts with this value will not be pushed to; instead, it will be rewritten to start
-           with , and the resulting URL will be pushed to. In cases where some site serves a large
-           number of repositories, and serves them with multiple access methods, some of which do not allow
-           push, this feature allows people to specify a pull-only URL and have Git automatically use an
-           appropriate URL to push, even for a never-before-seen repository on the site. When more than one
-           pushInsteadOf strings match a given URL, the longest match is used. If a remote has an explicit
-           pushurl, Git will ignore this setting for that remote.
-
-       user.email
-           Your email address to be recorded in any newly created commits. Can be overridden by the
-           GGIITT__AAUUTTHHOORR__EEMMAAIILL, GGIITT__CCOOMMMMIITTTTEERR__EEMMAAIILL, and EEMMAAIILL environment variables. See ggiitt--ccoommmmiitt--ttrreeee(1).
-
-       user.name
-           Your full name to be recorded in any newly created commits. Can be overridden by the
-           GGIITT__AAUUTTHHOORR__NNAAMMEE and GGIITT__CCOOMMMMIITTTTEERR__NNAAMMEE environment variables. See ggiitt--ccoommmmiitt--ttrreeee(1).
-
-       user.useConfigOnly
-           Instruct Git to avoid trying to guess defaults for uusseerr..eemmaaiill and uusseerr..nnaammee, and instead retrieve
-           the values only from the configuration. For example, if you have multiple email addresses and would
-           like to use a different one for each repository, then with this configuration option set to ttrruuee in
-           the global config along with a name, Git will prompt you to set up an email before making new
-           commits in a newly cloned repository. Defaults to ffaallssee.
-
-       user.signingKey
-           If ggiitt--ttaagg(1) or ggiitt--ccoommmmiitt(1) is not selecting the key you want it to automatically when creating
-           a signed tag or commit, you can override the default selection with this variable. This option is
-           passed unchanged to gpg’s --local-user parameter, so you may specify a key using any method that
-           gpg supports.
-
-       versionsort.prereleaseSuffix (deprecated)
-           Deprecated alias for vveerrssiioonnssoorrtt..ssuuffffiixx. Ignored if vveerrssiioonnssoorrtt..ssuuffffiixx is set.
-
-       versionsort.suffix
-           Even when version sort is used in ggiitt--ttaagg(1), tagnames with the same base version but different
-           suffixes are still sorted lexicographically, resulting e.g. in prerelease tags appearing after the
-           main release (e.g. "1.0-rc1" after "1.0"). This variable can be specified to determine the sorting
-           order of tags with different suffixes.
-
-           By specifying a single suffix in this variable, any tagname containing that suffix will appear
-           before the corresponding main release. E.g. if the variable is set to "-rc", then all "1.0-rcX"
-           tags will appear before "1.0". If specified multiple times, once per suffix, then the order of
-           suffixes in the configuration will determine the sorting order of tagnames with those suffixes.
-           E.g. if "-pre" appears before "-rc" in the configuration, then all "1.0-preX" tags will be listed
-           before any "1.0-rcX" tags. The placement of the main release tag relative to tags with various
-           suffixes can be determined by specifying the empty suffix among those other suffixes. E.g. if the
-           suffixes "-rc", "", "-ck" and "-bfs" appear in the configuration in this order, then all "v4.8-rcX"
-           tags are listed first, followed by "v4.8", then "v4.8-ckX" and finally "v4.8-bfsX".
-
-           If more than one suffixes match the same tagname, then that tagname will be sorted according to the
-           suffix which starts at the earliest position in the tagname. If more than one different matching
-           suffixes start at that earliest position, then that tagname will be sorted according to the longest
-           of those suffixes. The sorting order between different suffixes is undefined if they are in
-           multiple config files.
-
-       web.browser
-           Specify a web browser that may be used by some commands. Currently only ggiitt--iinnssttaawweebb(1) and ggiitt--
-           hheellpp(1) may use it.
-
-       worktree.guessRemote
-           With aadddd, if no branch argument, and neither of --bb nor --BB nor ----ddeettaacchh are given, the command
-           defaults to creating a new branch from HEAD. If wwoorrkkttrreeee..gguueessssRReemmoottee is set to true, wwoorrkkttrreeee aadddd
-           tries to find a remote-tracking branch whose name uniquely matches the new branch name. If such a
-           branch exists, it is checked out and set as "upstream" for the new branch. If no such match can be
-           found, it falls back to creating a new branch from the current HEAD.
-
-BBUUGGSS
-       When using the deprecated [[sseeccttiioonn..ssuubbsseeccttiioonn]] syntax, changing a value will result in adding a
-       multi-line key instead of a change, if the subsection is given with at least one uppercase character.
-       For example when the config looks like
-
-             [section.subsection]
-               key = value1
-
-       and running ggiitt ccoonnffiigg sseeccttiioonn..SSuubbsseeccttiioonn..kkeeyy vvaalluuee22 will result in
-
-             [section.subsection]
-               key = value1
-               key = value2
-
-GGIITT
-       Part of the ggiitt(1) suite
-
-NNOOTTEESS
-        1. the multi-pack-index design document
-           file:///usr/share/doc/git/html/technical/multi-pack-index.html
-
-        2. wire protocol version 2
-           file:///usr/share/doc/git/html/technical/protocol-v2.html
-
-Git 2.20.1                                        01/23/2019                                     GIT-CONFIG(1)