1CONFIGURATION FILE 2------------------ 3 4The Git configuration file contains a number of variables that affect 5the Git commands' behavior. The `.git/config` file in each repository 6is used to store the configuration for that repository, and 7`$HOME/.gitconfig` is used to store a per-user configuration as 8fallback values for the `.git/config` file. The file `/etc/gitconfig` 9can be used to store a system-wide default configuration. 10 11The configuration variables are used by both the Git plumbing 12and the porcelains. The variables are divided into sections, wherein 13the fully qualified variable name of the variable itself is the last 14dot-separated segment and the section name is everything before the last 15dot. The variable names are case-insensitive, allow only alphanumeric 16characters and `-`, and must start with an alphabetic character. Some 17variables may appear multiple times; we say then that the variable is 18multivalued. 19 20Syntax 21~~~~~~ 22 23The syntax is fairly flexible and permissive; whitespaces are mostly 24ignored. The '#' and ';' characters begin comments to the end of line, 25blank lines are ignored. 26 27The file consists of sections and variables. A section begins with 28the name of the section in square brackets and continues until the next 29section begins. Section names are case-insensitive. Only alphanumeric 30characters, `-` and `.` are allowed in section names. Each variable 31must belong to some section, which means that there must be a section 32header before the first setting of a variable. 33 34Sections can be further divided into subsections. To begin a subsection 35put its name in double quotes, separated by space from the section name, 36in the section header, like in the example below: 37 38-------- 39 [section "subsection"] 40 41-------- 42 43Subsection names are case sensitive and can contain any characters except 44newline and the null byte. Doublequote `"` and backslash can be included 45by escaping them as `\"` and `\\`, respectively. Backslashes preceding 46other characters are dropped when reading; for example, `\t` is read as 47`t` and `\0` is read as `0` Section headers cannot span multiple lines. 48Variables may belong directly to a section or to a given subsection. You 49can have `[section]` if you have `[section "subsection"]`, but you don't 50need to. 51 52There is also a deprecated `[section.subsection]` syntax. With this 53syntax, the subsection name is converted to lower-case and is also 54compared case sensitively. These subsection names follow the same 55restrictions as section names. 56 57All the other lines (and the remainder of the line after the section 58header) are recognized as setting variables, in the form 59'name = value' (or just 'name', which is a short-hand to say that 60the variable is the boolean "true"). 61The variable names are case-insensitive, allow only alphanumeric characters 62and `-`, and must start with an alphabetic character. 63 64A line that defines a value can be continued to the next line by 65ending it with a `\`; the backquote and the end-of-line are 66stripped. Leading whitespaces after 'name =', the remainder of the 67line after the first comment character '#' or ';', and trailing 68whitespaces of the line are discarded unless they are enclosed in 69double quotes. Internal whitespaces within the value are retained 70verbatim. 71 72Inside double quotes, double quote `"` and backslash `\` characters 73must be escaped: use `\"` for `"` and `\\` for `\`. 74 75The following escape sequences (beside `\"` and `\\`) are recognized: 76`\n` for newline character (NL), `\t` for horizontal tabulation (HT, TAB) 77and `\b` for backspace (BS). Other char escape sequences (including octal 78escape sequences) are invalid. 79 80 81Includes 82~~~~~~~~ 83 84The `include` and `includeIf` sections allow you to include config 85directives from another source. These sections behave identically to 86each other with the exception that `includeIf` sections may be ignored 87if their condition does not evaluate to true; see "Conditional includes" 88below. 89 90You can include a config file from another by setting the special 91`include.path` (or `includeIf.*.path`) variable to the name of the file 92to be included. The variable takes a pathname as its value, and is 93subject to tilde expansion. These variables can be given multiple times. 94 95The contents of the included file are inserted immediately, as if they 96had been found at the location of the include directive. If the value of the 97variable is a relative path, the path is considered to 98be relative to the configuration file in which the include directive 99was found. See below for examples. 100 101Conditional includes 102~~~~~~~~~~~~~~~~~~~~ 103 104You can include a config file from another conditionally by setting a 105`includeIf.<condition>.path` variable to the name of the file to be 106included. 107 108The condition starts with a keyword followed by a colon and some data 109whose format and meaning depends on the keyword. Supported keywords 110are: 111 112`gitdir`:: 113 114 The data that follows the keyword `gitdir:` is used as a glob 115 pattern. If the location of the .git directory matches the 116 pattern, the include condition is met. 117+ 118The .git location may be auto-discovered, or come from `$GIT_DIR` 119environment variable. If the repository is auto discovered via a .git 120file (e.g. from submodules, or a linked worktree), the .git location 121would be the final location where the .git directory is, not where the 122.git file is. 123+ 124The pattern can contain standard globbing wildcards and two additional 125ones, `**/` and `/**`, that can match multiple path components. Please 126refer to linkgit:gitignore[5] for details. For convenience: 127 128 * If the pattern starts with `~/`, `~` will be substituted with the 129 content of the environment variable `HOME`. 130 131 * If the pattern starts with `./`, it is replaced with the directory 132 containing the current config file. 133 134 * If the pattern does not start with either `~/`, `./` or `/`, `**/` 135 will be automatically prepended. For example, the pattern `foo/bar` 136 becomes `**/foo/bar` and would match `/any/path/to/foo/bar`. 137 138 * If the pattern ends with `/`, `**` will be automatically added. For 139 example, the pattern `foo/` becomes `foo/**`. In other words, it 140 matches "foo" and everything inside, recursively. 141 142`gitdir/i`:: 143 This is the same as `gitdir` except that matching is done 144 case-insensitively (e.g. on case-insensitive file sytems) 145 146A few more notes on matching via `gitdir` and `gitdir/i`: 147 148 * Symlinks in `$GIT_DIR` are not resolved before matching. 149 150 * Both the symlink & realpath versions of paths will be matched 151 outside of `$GIT_DIR`. E.g. if ~/git is a symlink to 152 /mnt/storage/git, both `gitdir:~/git` and `gitdir:/mnt/storage/git` 153 will match. 154+ 155This was not the case in the initial release of this feature in 156v2.13.0, which only matched the realpath version. Configuration that 157wants to be compatible with the initial release of this feature needs 158to either specify only the realpath version, or both versions. 159 160 * Note that "../" is not special and will match literally, which is 161 unlikely what you want. 162 163Example 164~~~~~~~ 165 166 # Core variables 167 [core] 168 ; Don't trust file modes 169 filemode = false 170 171 # Our diff algorithm 172 [diff] 173 external = /usr/local/bin/diff-wrapper 174 renames = true 175 176 [branch "devel"] 177 remote = origin 178 merge = refs/heads/devel 179 180 # Proxy settings 181 [core] 182 gitProxy="ssh" for "kernel.org" 183 gitProxy=default-proxy ; for the rest 184 185 [include] 186 path = /path/to/foo.inc ; include by absolute path 187 path = foo.inc ; find "foo.inc" relative to the current file 188 path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory 189 190 ; include if $GIT_DIR is /path/to/foo/.git 191 [includeIf "gitdir:/path/to/foo/.git"] 192 path = /path/to/foo.inc 193 194 ; include for all repositories inside /path/to/group 195 [includeIf "gitdir:/path/to/group/"] 196 path = /path/to/foo.inc 197 198 ; include for all repositories inside $HOME/to/group 199 [includeIf "gitdir:~/to/group/"] 200 path = /path/to/foo.inc 201 202 ; relative paths are always relative to the including 203 ; file (if the condition is true); their location is not 204 ; affected by the condition 205 [includeIf "gitdir:/path/to/group/"] 206 path = foo.inc 207 208Values 209~~~~~~ 210 211Values of many variables are treated as a simple string, but there 212are variables that take values of specific types and there are rules 213as to how to spell them. 214 215boolean:: 216 217 When a variable is said to take a boolean value, many 218 synonyms are accepted for 'true' and 'false'; these are all 219 case-insensitive. 220 221 true;; Boolean true literals are `yes`, `on`, `true`, 222 and `1`. Also, a variable defined without `= <value>` 223 is taken as true. 224 225 false;; Boolean false literals are `no`, `off`, `false`, 226 `0` and the empty string. 227+ 228When converting a value to its canonical form using the `--type=bool` type 229specifier, 'git config' will ensure that the output is "true" or 230"false" (spelled in lowercase). 231 232integer:: 233 The value for many variables that specify various sizes can 234 be suffixed with `k`, `M`,... to mean "scale the number by 235 1024", "by 1024x1024", etc. 236 237color:: 238 The value for a variable that takes a color is a list of 239 colors (at most two, one for foreground and one for background) 240 and attributes (as many as you want), separated by spaces. 241+ 242The basic colors accepted are `normal`, `black`, `red`, `green`, `yellow`, 243`blue`, `magenta`, `cyan` and `white`. The first color given is the 244foreground; the second is the background. 245+ 246Colors may also be given as numbers between 0 and 255; these use ANSI 247256-color mode (but note that not all terminals may support this). If 248your terminal supports it, you may also specify 24-bit RGB values as 249hex, like `#ff0ab3`. 250+ 251The accepted attributes are `bold`, `dim`, `ul`, `blink`, `reverse`, 252`italic`, and `strike` (for crossed-out or "strikethrough" letters). 253The position of any attributes with respect to the colors 254(before, after, or in between), doesn't matter. Specific attributes may 255be turned off by prefixing them with `no` or `no-` (e.g., `noreverse`, 256`no-ul`, etc). 257+ 258An empty color string produces no color effect at all. This can be used 259to avoid coloring specific elements without disabling color entirely. 260+ 261For git's pre-defined color slots, the attributes are meant to be reset 262at the beginning of each item in the colored output. So setting 263`color.decorate.branch` to `black` will paint that branch name in a 264plain `black`, even if the previous thing on the same output line (e.g. 265opening parenthesis before the list of branch names in `log --decorate` 266output) is set to be painted with `bold` or some other attribute. 267However, custom log formats may do more complicated and layered 268coloring, and the negated forms may be useful there. 269 270pathname:: 271 A variable that takes a pathname value can be given a 272 string that begins with "`~/`" or "`~user/`", and the usual 273 tilde expansion happens to such a string: `~/` 274 is expanded to the value of `$HOME`, and `~user/` to the 275 specified user's home directory. 276 277 278Variables 279~~~~~~~~~ 280 281Note that this list is non-comprehensive and not necessarily complete. 282For command-specific variables, you will find a more detailed description 283in the appropriate manual page. 284 285Other git-related tools may and do use their own variables. When 286inventing new variables for use in your own tool, make sure their 287names do not conflict with those that are used by Git itself and 288other popular tools, and describe them in your documentation. 289 290include::config/advice.txt[] 291 292include::config/core.txt[] 293 294include::config/add.txt[] 295 296alias.*:: 297 Command aliases for the linkgit:git[1] command wrapper - e.g. 298 after defining "alias.last = cat-file commit HEAD", the invocation 299 "git last" is equivalent to "git cat-file commit HEAD". To avoid 300 confusion and troubles with script usage, aliases that 301 hide existing Git commands are ignored. Arguments are split by 302 spaces, the usual shell quoting and escaping is supported. 303 A quote pair or a backslash can be used to quote them. 304+ 305If the alias expansion is prefixed with an exclamation point, 306it will be treated as a shell command. For example, defining 307"alias.new = !gitk --all --not ORIG_HEAD", the invocation 308"git new" is equivalent to running the shell command 309"gitk --all --not ORIG_HEAD". Note that shell commands will be 310executed from the top-level directory of a repository, which may 311not necessarily be the current directory. 312`GIT_PREFIX` is set as returned by running 'git rev-parse --show-prefix' 313from the original current directory. See linkgit:git-rev-parse[1]. 314 315am.keepcr:: 316 If true, git-am will call git-mailsplit for patches in mbox format 317 with parameter `--keep-cr`. In this case git-mailsplit will 318 not remove `\r` from lines ending with `\r\n`. Can be overridden 319 by giving `--no-keep-cr` from the command line. 320 See linkgit:git-am[1], linkgit:git-mailsplit[1]. 321 322am.threeWay:: 323 By default, `git am` will fail if the patch does not apply cleanly. When 324 set to true, this setting tells `git am` to fall back on 3-way merge if 325 the patch records the identity of blobs it is supposed to apply to and 326 we have those blobs available locally (equivalent to giving the `--3way` 327 option from the command line). Defaults to `false`. 328 See linkgit:git-am[1]. 329 330apply.ignoreWhitespace:: 331 When set to 'change', tells 'git apply' to ignore changes in 332 whitespace, in the same way as the `--ignore-space-change` 333 option. 334 When set to one of: no, none, never, false tells 'git apply' to 335 respect all whitespace differences. 336 See linkgit:git-apply[1]. 337 338apply.whitespace:: 339 Tells 'git apply' how to handle whitespaces, in the same way 340 as the `--whitespace` option. See linkgit:git-apply[1]. 341 342blame.blankBoundary:: 343 Show blank commit object name for boundary commits in 344 linkgit:git-blame[1]. This option defaults to false. 345 346blame.coloring:: 347 This determines the coloring scheme to be applied to blame 348 output. It can be 'repeatedLines', 'highlightRecent', 349 or 'none' which is the default. 350 351blame.date:: 352 Specifies the format used to output dates in linkgit:git-blame[1]. 353 If unset the iso format is used. For supported values, 354 see the discussion of the `--date` option at linkgit:git-log[1]. 355 356blame.showEmail:: 357 Show the author email instead of author name in linkgit:git-blame[1]. 358 This option defaults to false. 359 360blame.showRoot:: 361 Do not treat root commits as boundaries in linkgit:git-blame[1]. 362 This option defaults to false. 363 364branch.autoSetupMerge:: 365 Tells 'git branch' and 'git checkout' to set up new branches 366 so that linkgit:git-pull[1] will appropriately merge from the 367 starting point branch. Note that even if this option is not set, 368 this behavior can be chosen per-branch using the `--track` 369 and `--no-track` options. The valid settings are: `false` -- no 370 automatic setup is done; `true` -- automatic setup is done when the 371 starting point is a remote-tracking branch; `always` -- 372 automatic setup is done when the starting point is either a 373 local branch or remote-tracking 374 branch. This option defaults to true. 375 376branch.autoSetupRebase:: 377 When a new branch is created with 'git branch' or 'git checkout' 378 that tracks another branch, this variable tells Git to set 379 up pull to rebase instead of merge (see "branch.<name>.rebase"). 380 When `never`, rebase is never automatically set to true. 381 When `local`, rebase is set to true for tracked branches of 382 other local branches. 383 When `remote`, rebase is set to true for tracked branches of 384 remote-tracking branches. 385 When `always`, rebase will be set to true for all tracking 386 branches. 387 See "branch.autoSetupMerge" for details on how to set up a 388 branch to track another branch. 389 This option defaults to never. 390 391branch.sort:: 392 This variable controls the sort ordering of branches when displayed by 393 linkgit:git-branch[1]. Without the "--sort=<value>" option provided, the 394 value of this variable will be used as the default. 395 See linkgit:git-for-each-ref[1] field names for valid values. 396 397branch.<name>.remote:: 398 When on branch <name>, it tells 'git fetch' and 'git push' 399 which remote to fetch from/push to. The remote to push to 400 may be overridden with `remote.pushDefault` (for all branches). 401 The remote to push to, for the current branch, may be further 402 overridden by `branch.<name>.pushRemote`. If no remote is 403 configured, or if you are not on any branch, it defaults to 404 `origin` for fetching and `remote.pushDefault` for pushing. 405 Additionally, `.` (a period) is the current local repository 406 (a dot-repository), see `branch.<name>.merge`'s final note below. 407 408branch.<name>.pushRemote:: 409 When on branch <name>, it overrides `branch.<name>.remote` for 410 pushing. It also overrides `remote.pushDefault` for pushing 411 from branch <name>. When you pull from one place (e.g. your 412 upstream) and push to another place (e.g. your own publishing 413 repository), you would want to set `remote.pushDefault` to 414 specify the remote to push to for all branches, and use this 415 option to override it for a specific branch. 416 417branch.<name>.merge:: 418 Defines, together with branch.<name>.remote, the upstream branch 419 for the given branch. It tells 'git fetch'/'git pull'/'git rebase' which 420 branch to merge and can also affect 'git push' (see push.default). 421 When in branch <name>, it tells 'git fetch' the default 422 refspec to be marked for merging in FETCH_HEAD. The value is 423 handled like the remote part of a refspec, and must match a 424 ref which is fetched from the remote given by 425 "branch.<name>.remote". 426 The merge information is used by 'git pull' (which at first calls 427 'git fetch') to lookup the default branch for merging. Without 428 this option, 'git pull' defaults to merge the first refspec fetched. 429 Specify multiple values to get an octopus merge. 430 If you wish to setup 'git pull' so that it merges into <name> from 431 another branch in the local repository, you can point 432 branch.<name>.merge to the desired branch, and use the relative path 433 setting `.` (a period) for branch.<name>.remote. 434 435branch.<name>.mergeOptions:: 436 Sets default options for merging into branch <name>. The syntax and 437 supported options are the same as those of linkgit:git-merge[1], but 438 option values containing whitespace characters are currently not 439 supported. 440 441branch.<name>.rebase:: 442 When true, rebase the branch <name> on top of the fetched branch, 443 instead of merging the default branch from the default remote when 444 "git pull" is run. See "pull.rebase" for doing this in a non 445 branch-specific manner. 446+ 447When `merges`, pass the `--rebase-merges` option to 'git rebase' 448so that the local merge commits are included in the rebase (see 449linkgit:git-rebase[1] for details). 450+ 451When preserve, also pass `--preserve-merges` along to 'git rebase' 452so that locally committed merge commits will not be flattened 453by running 'git pull'. 454+ 455When the value is `interactive`, the rebase is run in interactive mode. 456+ 457*NOTE*: this is a possibly dangerous operation; do *not* use 458it unless you understand the implications (see linkgit:git-rebase[1] 459for details). 460 461branch.<name>.description:: 462 Branch description, can be edited with 463 `git branch --edit-description`. Branch description is 464 automatically added in the format-patch cover letter or 465 request-pull summary. 466 467browser.<tool>.cmd:: 468 Specify the command to invoke the specified browser. The 469 specified command is evaluated in shell with the URLs passed 470 as arguments. (See linkgit:git-web{litdd}browse[1].) 471 472browser.<tool>.path:: 473 Override the path for the given tool that may be used to 474 browse HTML help (see `-w` option in linkgit:git-help[1]) or a 475 working repository in gitweb (see linkgit:git-instaweb[1]). 476 477checkout.defaultRemote:: 478 When you run 'git checkout <something>' and only have one 479 remote, it may implicitly fall back on checking out and 480 tracking e.g. 'origin/<something>'. This stops working as soon 481 as you have more than one remote with a '<something>' 482 reference. This setting allows for setting the name of a 483 preferred remote that should always win when it comes to 484 disambiguation. The typical use-case is to set this to 485 `origin`. 486+ 487Currently this is used by linkgit:git-checkout[1] when 'git checkout 488<something>' will checkout the '<something>' branch on another remote, 489and by linkgit:git-worktree[1] when 'git worktree add' refers to a 490remote branch. This setting might be used for other checkout-like 491commands or functionality in the future. 492 493checkout.optimizeNewBranch:: 494 Optimizes the performance of "git checkout -b <new_branch>" when 495 using sparse-checkout. When set to true, git will not update the 496 repo based on the current sparse-checkout settings. This means it 497 will not update the skip-worktree bit in the index nor add/remove 498 files in the working directory to reflect the current sparse checkout 499 settings nor will it show the local changes. 500 501clean.requireForce:: 502 A boolean to make git-clean do nothing unless given -f, 503 -i or -n. Defaults to true. 504 505color.advice:: 506 A boolean to enable/disable color in hints (e.g. when a push 507 failed, see `advice.*` for a list). May be set to `always`, 508 `false` (or `never`) or `auto` (or `true`), in which case colors 509 are used only when the error output goes to a terminal. If 510 unset, then the value of `color.ui` is used (`auto` by default). 511 512color.advice.hint:: 513 Use customized color for hints. 514 515color.blame.highlightRecent:: 516 This can be used to color the metadata of a blame line depending 517 on age of the line. 518+ 519This setting should be set to a comma-separated list of color and date settings, 520starting and ending with a color, the dates should be set from oldest to newest. 521The metadata will be colored given the colors if the the line was introduced 522before the given timestamp, overwriting older timestamped colors. 523+ 524Instead of an absolute timestamp relative timestamps work as well, e.g. 5252.weeks.ago is valid to address anything older than 2 weeks. 526+ 527It defaults to 'blue,12 month ago,white,1 month ago,red', which colors 528everything older than one year blue, recent changes between one month and 529one year old are kept white, and lines introduced within the last month are 530colored red. 531 532color.blame.repeatedLines:: 533 Use the customized color for the part of git-blame output that 534 is repeated meta information per line (such as commit id, 535 author name, date and timezone). Defaults to cyan. 536 537color.branch:: 538 A boolean to enable/disable color in the output of 539 linkgit:git-branch[1]. May be set to `always`, 540 `false` (or `never`) or `auto` (or `true`), in which case colors are used 541 only when the output is to a terminal. If unset, then the 542 value of `color.ui` is used (`auto` by default). 543 544color.branch.<slot>:: 545 Use customized color for branch coloration. `<slot>` is one of 546 `current` (the current branch), `local` (a local branch), 547 `remote` (a remote-tracking branch in refs/remotes/), 548 `upstream` (upstream tracking branch), `plain` (other 549 refs). 550 551color.diff:: 552 Whether to use ANSI escape sequences to add color to patches. 553 If this is set to `always`, linkgit:git-diff[1], 554 linkgit:git-log[1], and linkgit:git-show[1] will use color 555 for all patches. If it is set to `true` or `auto`, those 556 commands will only use color when output is to the terminal. 557 If unset, then the value of `color.ui` is used (`auto` by 558 default). 559+ 560This does not affect linkgit:git-format-patch[1] or the 561'git-diff-{asterisk}' plumbing commands. Can be overridden on the 562command line with the `--color[=<when>]` option. 563 564color.diff.<slot>:: 565 Use customized color for diff colorization. `<slot>` specifies 566 which part of the patch to use the specified color, and is one 567 of `context` (context text - `plain` is a historical synonym), 568 `meta` (metainformation), `frag` 569 (hunk header), 'func' (function in hunk header), `old` (removed lines), 570 `new` (added lines), `commit` (commit headers), `whitespace` 571 (highlighting whitespace errors), `oldMoved` (deleted lines), 572 `newMoved` (added lines), `oldMovedDimmed`, `oldMovedAlternative`, 573 `oldMovedAlternativeDimmed`, `newMovedDimmed`, `newMovedAlternative` 574 `newMovedAlternativeDimmed` (See the '<mode>' 575 setting of '--color-moved' in linkgit:git-diff[1] for details), 576 `contextDimmed`, `oldDimmed`, `newDimmed`, `contextBold`, 577 `oldBold`, and `newBold` (see linkgit:git-range-diff[1] for details). 578 579color.decorate.<slot>:: 580 Use customized color for 'git log --decorate' output. `<slot>` is one 581 of `branch`, `remoteBranch`, `tag`, `stash` or `HEAD` for local 582 branches, remote-tracking branches, tags, stash and HEAD, respectively 583 and `grafted` for grafted commits. 584 585color.grep:: 586 When set to `always`, always highlight matches. When `false` (or 587 `never`), never. When set to `true` or `auto`, use color only 588 when the output is written to the terminal. If unset, then the 589 value of `color.ui` is used (`auto` by default). 590 591color.grep.<slot>:: 592 Use customized color for grep colorization. `<slot>` specifies which 593 part of the line to use the specified color, and is one of 594+ 595-- 596`context`;; 597 non-matching text in context lines (when using `-A`, `-B`, or `-C`) 598`filename`;; 599 filename prefix (when not using `-h`) 600`function`;; 601 function name lines (when using `-p`) 602`lineNumber`;; 603 line number prefix (when using `-n`) 604`column`;; 605 column number prefix (when using `--column`) 606`match`;; 607 matching text (same as setting `matchContext` and `matchSelected`) 608`matchContext`;; 609 matching text in context lines 610`matchSelected`;; 611 matching text in selected lines 612`selected`;; 613 non-matching text in selected lines 614`separator`;; 615 separators between fields on a line (`:`, `-`, and `=`) 616 and between hunks (`--`) 617-- 618 619color.interactive:: 620 When set to `always`, always use colors for interactive prompts 621 and displays (such as those used by "git-add --interactive" and 622 "git-clean --interactive"). When false (or `never`), never. 623 When set to `true` or `auto`, use colors only when the output is 624 to the terminal. If unset, then the value of `color.ui` is 625 used (`auto` by default). 626 627color.interactive.<slot>:: 628 Use customized color for 'git add --interactive' and 'git clean 629 --interactive' output. `<slot>` may be `prompt`, `header`, `help` 630 or `error`, for four distinct types of normal output from 631 interactive commands. 632 633color.pager:: 634 A boolean to enable/disable colored output when the pager is in 635 use (default is true). 636 637color.push:: 638 A boolean to enable/disable color in push errors. May be set to 639 `always`, `false` (or `never`) or `auto` (or `true`), in which 640 case colors are used only when the error output goes to a terminal. 641 If unset, then the value of `color.ui` is used (`auto` by default). 642 643color.push.error:: 644 Use customized color for push errors. 645 646color.remote:: 647 If set, keywords at the start of the line are highlighted. The 648 keywords are "error", "warning", "hint" and "success", and are 649 matched case-insensitively. May be set to `always`, `false` (or 650 `never`) or `auto` (or `true`). If unset, then the value of 651 `color.ui` is used (`auto` by default). 652 653color.remote.<slot>:: 654 Use customized color for each remote keyword. `<slot>` may be 655 `hint`, `warning`, `success` or `error` which match the 656 corresponding keyword. 657 658color.showBranch:: 659 A boolean to enable/disable color in the output of 660 linkgit:git-show-branch[1]. May be set to `always`, 661 `false` (or `never`) or `auto` (or `true`), in which case colors are used 662 only when the output is to a terminal. If unset, then the 663 value of `color.ui` is used (`auto` by default). 664 665color.status:: 666 A boolean to enable/disable color in the output of 667 linkgit:git-status[1]. May be set to `always`, 668 `false` (or `never`) or `auto` (or `true`), in which case colors are used 669 only when the output is to a terminal. If unset, then the 670 value of `color.ui` is used (`auto` by default). 671 672color.status.<slot>:: 673 Use customized color for status colorization. `<slot>` is 674 one of `header` (the header text of the status message), 675 `added` or `updated` (files which are added but not committed), 676 `changed` (files which are changed but not added in the index), 677 `untracked` (files which are not tracked by Git), 678 `branch` (the current branch), 679 `nobranch` (the color the 'no branch' warning is shown in, defaulting 680 to red), 681 `localBranch` or `remoteBranch` (the local and remote branch names, 682 respectively, when branch and tracking information is displayed in the 683 status short-format), or 684 `unmerged` (files which have unmerged changes). 685 686color.transport:: 687 A boolean to enable/disable color when pushes are rejected. May be 688 set to `always`, `false` (or `never`) or `auto` (or `true`), in which 689 case colors are used only when the error output goes to a terminal. 690 If unset, then the value of `color.ui` is used (`auto` by default). 691 692color.transport.rejected:: 693 Use customized color when a push was rejected. 694 695color.ui:: 696 This variable determines the default value for variables such 697 as `color.diff` and `color.grep` that control the use of color 698 per command family. Its scope will expand as more commands learn 699 configuration to set a default for the `--color` option. Set it 700 to `false` or `never` if you prefer Git commands not to use 701 color unless enabled explicitly with some other configuration 702 or the `--color` option. Set it to `always` if you want all 703 output not intended for machine consumption to use color, to 704 `true` or `auto` (this is the default since Git 1.8.4) if you 705 want such output to use color when written to the terminal. 706 707column.ui:: 708 Specify whether supported commands should output in columns. 709 This variable consists of a list of tokens separated by spaces 710 or commas: 711+ 712These options control when the feature should be enabled 713(defaults to 'never'): 714+ 715-- 716`always`;; 717 always show in columns 718`never`;; 719 never show in columns 720`auto`;; 721 show in columns if the output is to the terminal 722-- 723+ 724These options control layout (defaults to 'column'). Setting any 725of these implies 'always' if none of 'always', 'never', or 'auto' are 726specified. 727+ 728-- 729`column`;; 730 fill columns before rows 731`row`;; 732 fill rows before columns 733`plain`;; 734 show in one column 735-- 736+ 737Finally, these options can be combined with a layout option (defaults 738to 'nodense'): 739+ 740-- 741`dense`;; 742 make unequal size columns to utilize more space 743`nodense`;; 744 make equal size columns 745-- 746 747column.branch:: 748 Specify whether to output branch listing in `git branch` in columns. 749 See `column.ui` for details. 750 751column.clean:: 752 Specify the layout when list items in `git clean -i`, which always 753 shows files and directories in columns. See `column.ui` for details. 754 755column.status:: 756 Specify whether to output untracked files in `git status` in columns. 757 See `column.ui` for details. 758 759column.tag:: 760 Specify whether to output tag listing in `git tag` in columns. 761 See `column.ui` for details. 762 763commit.cleanup:: 764 This setting overrides the default of the `--cleanup` option in 765 `git commit`. See linkgit:git-commit[1] for details. Changing the 766 default can be useful when you always want to keep lines that begin 767 with comment character `#` in your log message, in which case you 768 would do `git config commit.cleanup whitespace` (note that you will 769 have to remove the help lines that begin with `#` in the commit log 770 template yourself, if you do this). 771 772commit.gpgSign:: 773 774 A boolean to specify whether all commits should be GPG signed. 775 Use of this option when doing operations such as rebase can 776 result in a large number of commits being signed. It may be 777 convenient to use an agent to avoid typing your GPG passphrase 778 several times. 779 780commit.status:: 781 A boolean to enable/disable inclusion of status information in the 782 commit message template when using an editor to prepare the commit 783 message. Defaults to true. 784 785commit.template:: 786 Specify the pathname of a file to use as the template for 787 new commit messages. 788 789commit.verbose:: 790 A boolean or int to specify the level of verbose with `git commit`. 791 See linkgit:git-commit[1]. 792 793credential.helper:: 794 Specify an external helper to be called when a username or 795 password credential is needed; the helper may consult external 796 storage to avoid prompting the user for the credentials. Note 797 that multiple helpers may be defined. See linkgit:gitcredentials[7] 798 for details. 799 800credential.useHttpPath:: 801 When acquiring credentials, consider the "path" component of an http 802 or https URL to be important. Defaults to false. See 803 linkgit:gitcredentials[7] for more information. 804 805credential.username:: 806 If no username is set for a network authentication, use this username 807 by default. See credential.<context>.* below, and 808 linkgit:gitcredentials[7]. 809 810credential.<url>.*:: 811 Any of the credential.* options above can be applied selectively to 812 some credentials. For example "credential.https://example.com.username" 813 would set the default username only for https connections to 814 example.com. See linkgit:gitcredentials[7] for details on how URLs are 815 matched. 816 817credentialCache.ignoreSIGHUP:: 818 Tell git-credential-cache--daemon to ignore SIGHUP, instead of quitting. 819 820completion.commands:: 821 This is only used by git-completion.bash to add or remove 822 commands from the list of completed commands. Normally only 823 porcelain commands and a few select others are completed. You 824 can add more commands, separated by space, in this 825 variable. Prefixing the command with '-' will remove it from 826 the existing list. 827 828include::diff-config.txt[] 829 830difftool.<tool>.path:: 831 Override the path for the given tool. This is useful in case 832 your tool is not in the PATH. 833 834difftool.<tool>.cmd:: 835 Specify the command to invoke the specified diff tool. 836 The specified command is evaluated in shell with the following 837 variables available: 'LOCAL' is set to the name of the temporary 838 file containing the contents of the diff pre-image and 'REMOTE' 839 is set to the name of the temporary file containing the contents 840 of the diff post-image. 841 842difftool.prompt:: 843 Prompt before each invocation of the diff tool. 844 845fastimport.unpackLimit:: 846 If the number of objects imported by linkgit:git-fast-import[1] 847 is below this limit, then the objects will be unpacked into 848 loose object files. However if the number of imported objects 849 equals or exceeds this limit then the pack will be stored as a 850 pack. Storing the pack from a fast-import can make the import 851 operation complete faster, especially on slow filesystems. If 852 not set, the value of `transfer.unpackLimit` is used instead. 853 854include::fetch-config.txt[] 855 856include::format-config.txt[] 857 858filter.<driver>.clean:: 859 The command which is used to convert the content of a worktree 860 file to a blob upon checkin. See linkgit:gitattributes[5] for 861 details. 862 863filter.<driver>.smudge:: 864 The command which is used to convert the content of a blob 865 object to a worktree file upon checkout. See 866 linkgit:gitattributes[5] for details. 867 868fsck.<msg-id>:: 869 During fsck git may find issues with legacy data which 870 wouldn't be generated by current versions of git, and which 871 wouldn't be sent over the wire if `transfer.fsckObjects` was 872 set. This feature is intended to support working with legacy 873 repositories containing such data. 874+ 875Setting `fsck.<msg-id>` will be picked up by linkgit:git-fsck[1], but 876to accept pushes of such data set `receive.fsck.<msg-id>` instead, or 877to clone or fetch it set `fetch.fsck.<msg-id>`. 878+ 879The rest of the documentation discusses `fsck.*` for brevity, but the 880same applies for the corresponding `receive.fsck.*` and 881`fetch.<msg-id>.*`. variables. 882+ 883Unlike variables like `color.ui` and `core.editor` the 884`receive.fsck.<msg-id>` and `fetch.fsck.<msg-id>` variables will not 885fall back on the `fsck.<msg-id>` configuration if they aren't set. To 886uniformly configure the same fsck settings in different circumstances 887all three of them they must all set to the same values. 888+ 889When `fsck.<msg-id>` is set, errors can be switched to warnings and 890vice versa by configuring the `fsck.<msg-id>` setting where the 891`<msg-id>` is the fsck message ID and the value is one of `error`, 892`warn` or `ignore`. For convenience, fsck prefixes the error/warning 893with the message ID, e.g. "missingEmail: invalid author/committer line 894- missing email" means that setting `fsck.missingEmail = ignore` will 895hide that issue. 896+ 897In general, it is better to enumerate existing objects with problems 898with `fsck.skipList`, instead of listing the kind of breakages these 899problematic objects share to be ignored, as doing the latter will 900allow new instances of the same breakages go unnoticed. 901+ 902Setting an unknown `fsck.<msg-id>` value will cause fsck to die, but 903doing the same for `receive.fsck.<msg-id>` and `fetch.fsck.<msg-id>` 904will only cause git to warn. 905 906fsck.skipList:: 907 The path to a list of object names (i.e. one unabbreviated SHA-1 per 908 line) that are known to be broken in a non-fatal way and should 909 be ignored. On versions of Git 2.20 and later comments ('#'), empty 910 lines, and any leading and trailing whitespace is ignored. Everything 911 but a SHA-1 per line will error out on older versions. 912+ 913This feature is useful when an established project should be accepted 914despite early commits containing errors that can be safely ignored 915such as invalid committer email addresses. Note: corrupt objects 916cannot be skipped with this setting. 917+ 918Like `fsck.<msg-id>` this variable has corresponding 919`receive.fsck.skipList` and `fetch.fsck.skipList` variants. 920+ 921Unlike variables like `color.ui` and `core.editor` the 922`receive.fsck.skipList` and `fetch.fsck.skipList` variables will not 923fall back on the `fsck.skipList` configuration if they aren't set. To 924uniformly configure the same fsck settings in different circumstances 925all three of them they must all set to the same values. 926+ 927Older versions of Git (before 2.20) documented that the object names 928list should be sorted. This was never a requirement, the object names 929could appear in any order, but when reading the list we tracked whether 930the list was sorted for the purposes of an internal binary search 931implementation, which could save itself some work with an already sorted 932list. Unless you had a humongous list there was no reason to go out of 933your way to pre-sort the list. After Git version 2.20 a hash implementation 934is used instead, so there's now no reason to pre-sort the list. 935 936gc.aggressiveDepth:: 937 The depth parameter used in the delta compression 938 algorithm used by 'git gc --aggressive'. This defaults 939 to 50. 940 941gc.aggressiveWindow:: 942 The window size parameter used in the delta compression 943 algorithm used by 'git gc --aggressive'. This defaults 944 to 250. 945 946gc.auto:: 947 When there are approximately more than this many loose 948 objects in the repository, `git gc --auto` will pack them. 949 Some Porcelain commands use this command to perform a 950 light-weight garbage collection from time to time. The 951 default value is 6700. Setting this to 0 disables it. 952 953gc.autoPackLimit:: 954 When there are more than this many packs that are not 955 marked with `*.keep` file in the repository, `git gc 956 --auto` consolidates them into one larger pack. The 957 default value is 50. Setting this to 0 disables it. 958 959gc.autoDetach:: 960 Make `git gc --auto` return immediately and run in background 961 if the system supports it. Default is true. 962 963gc.bigPackThreshold:: 964 If non-zero, all packs larger than this limit are kept when 965 `git gc` is run. This is very similar to `--keep-base-pack` 966 except that all packs that meet the threshold are kept, not 967 just the base pack. Defaults to zero. Common unit suffixes of 968 'k', 'm', or 'g' are supported. 969+ 970Note that if the number of kept packs is more than gc.autoPackLimit, 971this configuration variable is ignored, all packs except the base pack 972will be repacked. After this the number of packs should go below 973gc.autoPackLimit and gc.bigPackThreshold should be respected again. 974 975gc.writeCommitGraph:: 976 If true, then gc will rewrite the commit-graph file when 977 linkgit:git-gc[1] is run. When using linkgit:git-gc[1] 978 '--auto' the commit-graph will be updated if housekeeping is 979 required. Default is false. See linkgit:git-commit-graph[1] 980 for details. 981 982gc.logExpiry:: 983 If the file gc.log exists, then `git gc --auto` will print 984 its content and exit with status zero instead of running 985 unless that file is more than 'gc.logExpiry' old. Default is 986 "1.day". See `gc.pruneExpire` for more ways to specify its 987 value. 988 989gc.packRefs:: 990 Running `git pack-refs` in a repository renders it 991 unclonable by Git versions prior to 1.5.1.2 over dumb 992 transports such as HTTP. This variable determines whether 993 'git gc' runs `git pack-refs`. This can be set to `notbare` 994 to enable it within all non-bare repos or it can be set to a 995 boolean value. The default is `true`. 996 997gc.pruneExpire:: 998 When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'. 999 Override the grace period with this config variable. The value1000 "now" may be used to disable this grace period and always prune1001 unreachable objects immediately, or "never" may be used to1002 suppress pruning. This feature helps prevent corruption when1003 'git gc' runs concurrently with another process writing to the1004 repository; see the "NOTES" section of linkgit:git-gc[1].10051006gc.worktreePruneExpire::1007 When 'git gc' is run, it calls1008 'git worktree prune --expire 3.months.ago'.1009 This config variable can be used to set a different grace1010 period. The value "now" may be used to disable the grace1011 period and prune `$GIT_DIR/worktrees` immediately, or "never"1012 may be used to suppress pruning.10131014gc.reflogExpire::1015gc.<pattern>.reflogExpire::1016 'git reflog expire' removes reflog entries older than1017 this time; defaults to 90 days. The value "now" expires all1018 entries immediately, and "never" suppresses expiration1019 altogether. With "<pattern>" (e.g.1020 "refs/stash") in the middle the setting applies only to1021 the refs that match the <pattern>.10221023gc.reflogExpireUnreachable::1024gc.<pattern>.reflogExpireUnreachable::1025 'git reflog expire' removes reflog entries older than1026 this time and are not reachable from the current tip;1027 defaults to 30 days. The value "now" expires all entries1028 immediately, and "never" suppresses expiration altogether.1029 With "<pattern>" (e.g. "refs/stash")1030 in the middle, the setting applies only to the refs that1031 match the <pattern>.10321033gc.rerereResolved::1034 Records of conflicted merge you resolved earlier are1035 kept for this many days when 'git rerere gc' is run.1036 You can also use more human-readable "1.month.ago", etc.1037 The default is 60 days. See linkgit:git-rerere[1].10381039gc.rerereUnresolved::1040 Records of conflicted merge you have not resolved are1041 kept for this many days when 'git rerere gc' is run.1042 You can also use more human-readable "1.month.ago", etc.1043 The default is 15 days. See linkgit:git-rerere[1].10441045include::gitcvs-config.txt[]10461047gitweb.category::1048gitweb.description::1049gitweb.owner::1050gitweb.url::1051 See linkgit:gitweb[1] for description.10521053gitweb.avatar::1054gitweb.blame::1055gitweb.grep::1056gitweb.highlight::1057gitweb.patches::1058gitweb.pickaxe::1059gitweb.remote_heads::1060gitweb.showSizes::1061gitweb.snapshot::1062 See linkgit:gitweb.conf[5] for description.10631064grep.lineNumber::1065 If set to true, enable `-n` option by default.10661067grep.column::1068 If set to true, enable the `--column` option by default.10691070grep.patternType::1071 Set the default matching behavior. Using a value of 'basic', 'extended',1072 'fixed', or 'perl' will enable the `--basic-regexp`, `--extended-regexp`,1073 `--fixed-strings`, or `--perl-regexp` option accordingly, while the1074 value 'default' will return to the default matching behavior.10751076grep.extendedRegexp::1077 If set to true, enable `--extended-regexp` option by default. This1078 option is ignored when the `grep.patternType` option is set to a value1079 other than 'default'.10801081grep.threads::1082 Number of grep worker threads to use.1083 See `grep.threads` in linkgit:git-grep[1] for more information.10841085grep.fallbackToNoIndex::1086 If set to true, fall back to git grep --no-index if git grep1087 is executed outside of a git repository. Defaults to false.10881089gpg.program::1090 Use this custom program instead of "`gpg`" found on `$PATH` when1091 making or verifying a PGP signature. The program must support the1092 same command-line interface as GPG, namely, to verify a detached1093 signature, "`gpg --verify $file - <$signature`" is run, and the1094 program is expected to signal a good signature by exiting with1095 code 0, and to generate an ASCII-armored detached signature, the1096 standard input of "`gpg -bsau $key`" is fed with the contents to be1097 signed, and the program is expected to send the result to its1098 standard output.10991100gpg.format::1101 Specifies which key format to use when signing with `--gpg-sign`.1102 Default is "openpgp" and another possible value is "x509".11031104gpg.<format>.program::1105 Use this to customize the program used for the signing format you1106 chose. (see `gpg.program` and `gpg.format`) `gpg.program` can still1107 be used as a legacy synonym for `gpg.openpgp.program`. The default1108 value for `gpg.x509.program` is "gpgsm".11091110include::gui-config.txt[]11111112guitool.<name>.cmd::1113 Specifies the shell command line to execute when the corresponding item1114 of the linkgit:git-gui[1] `Tools` menu is invoked. This option is1115 mandatory for every tool. The command is executed from the root of1116 the working directory, and in the environment it receives the name of1117 the tool as `GIT_GUITOOL`, the name of the currently selected file as1118 'FILENAME', and the name of the current branch as 'CUR_BRANCH' (if1119 the head is detached, 'CUR_BRANCH' is empty).11201121guitool.<name>.needsFile::1122 Run the tool only if a diff is selected in the GUI. It guarantees1123 that 'FILENAME' is not empty.11241125guitool.<name>.noConsole::1126 Run the command silently, without creating a window to display its1127 output.11281129guitool.<name>.noRescan::1130 Don't rescan the working directory for changes after the tool1131 finishes execution.11321133guitool.<name>.confirm::1134 Show a confirmation dialog before actually running the tool.11351136guitool.<name>.argPrompt::1137 Request a string argument from the user, and pass it to the tool1138 through the `ARGS` environment variable. Since requesting an1139 argument implies confirmation, the 'confirm' option has no effect1140 if this is enabled. If the option is set to 'true', 'yes', or '1',1141 the dialog uses a built-in generic prompt; otherwise the exact1142 value of the variable is used.11431144guitool.<name>.revPrompt::1145 Request a single valid revision from the user, and set the1146 `REVISION` environment variable. In other aspects this option1147 is similar to 'argPrompt', and can be used together with it.11481149guitool.<name>.revUnmerged::1150 Show only unmerged branches in the 'revPrompt' subdialog.1151 This is useful for tools similar to merge or rebase, but not1152 for things like checkout or reset.11531154guitool.<name>.title::1155 Specifies the title to use for the prompt dialog. The default1156 is the tool name.11571158guitool.<name>.prompt::1159 Specifies the general prompt string to display at the top of1160 the dialog, before subsections for 'argPrompt' and 'revPrompt'.1161 The default value includes the actual command.11621163help.browser::1164 Specify the browser that will be used to display help in the1165 'web' format. See linkgit:git-help[1].11661167help.format::1168 Override the default help format used by linkgit:git-help[1].1169 Values 'man', 'info', 'web' and 'html' are supported. 'man' is1170 the default. 'web' and 'html' are the same.11711172help.autoCorrect::1173 Automatically correct and execute mistyped commands after1174 waiting for the given number of deciseconds (0.1 sec). If more1175 than one command can be deduced from the entered text, nothing1176 will be executed. If the value of this option is negative,1177 the corrected command will be executed immediately. If the1178 value is 0 - the command will be just shown but not executed.1179 This is the default.11801181help.htmlPath::1182 Specify the path where the HTML documentation resides. File system paths1183 and URLs are supported. HTML pages will be prefixed with this path when1184 help is displayed in the 'web' format. This defaults to the documentation1185 path of your Git installation.11861187http.proxy::1188 Override the HTTP proxy, normally configured using the 'http_proxy',1189 'https_proxy', and 'all_proxy' environment variables (see `curl(1)`). In1190 addition to the syntax understood by curl, it is possible to specify a1191 proxy string with a user name but no password, in which case git will1192 attempt to acquire one in the same way it does for other credentials. See1193 linkgit:gitcredentials[7] for more information. The syntax thus is1194 '[protocol://][user[:password]@]proxyhost[:port]'. This can be overridden1195 on a per-remote basis; see remote.<name>.proxy11961197http.proxyAuthMethod::1198 Set the method with which to authenticate against the HTTP proxy. This1199 only takes effect if the configured proxy string contains a user name part1200 (i.e. is of the form 'user@host' or 'user@host:port'). This can be1201 overridden on a per-remote basis; see `remote.<name>.proxyAuthMethod`.1202 Both can be overridden by the `GIT_HTTP_PROXY_AUTHMETHOD` environment1203 variable. Possible values are:1204+1205--1206* `anyauth` - Automatically pick a suitable authentication method. It is1207 assumed that the proxy answers an unauthenticated request with a 4071208 status code and one or more Proxy-authenticate headers with supported1209 authentication methods. This is the default.1210* `basic` - HTTP Basic authentication1211* `digest` - HTTP Digest authentication; this prevents the password from being1212 transmitted to the proxy in clear text1213* `negotiate` - GSS-Negotiate authentication (compare the --negotiate option1214 of `curl(1)`)1215* `ntlm` - NTLM authentication (compare the --ntlm option of `curl(1)`)1216--12171218http.emptyAuth::1219 Attempt authentication without seeking a username or password. This1220 can be used to attempt GSS-Negotiate authentication without specifying1221 a username in the URL, as libcurl normally requires a username for1222 authentication.12231224http.delegation::1225 Control GSSAPI credential delegation. The delegation is disabled1226 by default in libcurl since version 7.21.7. Set parameter to tell1227 the server what it is allowed to delegate when it comes to user1228 credentials. Used with GSS/kerberos. Possible values are:1229+1230--1231* `none` - Don't allow any delegation.1232* `policy` - Delegates if and only if the OK-AS-DELEGATE flag is set in the1233 Kerberos service ticket, which is a matter of realm policy.1234* `always` - Unconditionally allow the server to delegate.1235--123612371238http.extraHeader::1239 Pass an additional HTTP header when communicating with a server. If1240 more than one such entry exists, all of them are added as extra1241 headers. To allow overriding the settings inherited from the system1242 config, an empty value will reset the extra headers to the empty list.12431244http.cookieFile::1245 The pathname of a file containing previously stored cookie lines,1246 which should be used1247 in the Git http session, if they match the server. The file format1248 of the file to read cookies from should be plain HTTP headers or1249 the Netscape/Mozilla cookie file format (see `curl(1)`).1250 NOTE that the file specified with http.cookieFile is used only as1251 input unless http.saveCookies is set.12521253http.saveCookies::1254 If set, store cookies received during requests to the file specified by1255 http.cookieFile. Has no effect if http.cookieFile is unset.12561257http.sslVersion::1258 The SSL version to use when negotiating an SSL connection, if you1259 want to force the default. The available and default version1260 depend on whether libcurl was built against NSS or OpenSSL and the1261 particular configuration of the crypto library in use. Internally1262 this sets the 'CURLOPT_SSL_VERSION' option; see the libcurl1263 documentation for more details on the format of this option and1264 for the ssl version supported. Actually the possible values of1265 this option are:12661267 - sslv21268 - sslv31269 - tlsv11270 - tlsv1.01271 - tlsv1.11272 - tlsv1.21273 - tlsv1.312741275+1276Can be overridden by the `GIT_SSL_VERSION` environment variable.1277To force git to use libcurl's default ssl version and ignore any1278explicit http.sslversion option, set `GIT_SSL_VERSION` to the1279empty string.12801281http.sslCipherList::1282 A list of SSL ciphers to use when negotiating an SSL connection.1283 The available ciphers depend on whether libcurl was built against1284 NSS or OpenSSL and the particular configuration of the crypto1285 library in use. Internally this sets the 'CURLOPT_SSL_CIPHER_LIST'1286 option; see the libcurl documentation for more details on the format1287 of this list.1288+1289Can be overridden by the `GIT_SSL_CIPHER_LIST` environment variable.1290To force git to use libcurl's default cipher list and ignore any1291explicit http.sslCipherList option, set `GIT_SSL_CIPHER_LIST` to the1292empty string.12931294http.sslVerify::1295 Whether to verify the SSL certificate when fetching or pushing1296 over HTTPS. Defaults to true. Can be overridden by the1297 `GIT_SSL_NO_VERIFY` environment variable.12981299http.sslCert::1300 File containing the SSL certificate when fetching or pushing1301 over HTTPS. Can be overridden by the `GIT_SSL_CERT` environment1302 variable.13031304http.sslKey::1305 File containing the SSL private key when fetching or pushing1306 over HTTPS. Can be overridden by the `GIT_SSL_KEY` environment1307 variable.13081309http.sslCertPasswordProtected::1310 Enable Git's password prompt for the SSL certificate. Otherwise1311 OpenSSL will prompt the user, possibly many times, if the1312 certificate or private key is encrypted. Can be overridden by the1313 `GIT_SSL_CERT_PASSWORD_PROTECTED` environment variable.13141315http.sslCAInfo::1316 File containing the certificates to verify the peer with when1317 fetching or pushing over HTTPS. Can be overridden by the1318 `GIT_SSL_CAINFO` environment variable.13191320http.sslCAPath::1321 Path containing files with the CA certificates to verify the peer1322 with when fetching or pushing over HTTPS. Can be overridden1323 by the `GIT_SSL_CAPATH` environment variable.13241325http.sslBackend::1326 Name of the SSL backend to use (e.g. "openssl" or "schannel").1327 This option is ignored if cURL lacks support for choosing the SSL1328 backend at runtime.13291330http.schannelCheckRevoke::1331 Used to enforce or disable certificate revocation checks in cURL1332 when http.sslBackend is set to "schannel". Defaults to `true` if1333 unset. Only necessary to disable this if Git consistently errors1334 and the message is about checking the revocation status of a1335 certificate. This option is ignored if cURL lacks support for1336 setting the relevant SSL option at runtime.13371338http.schannelUseSSLCAInfo::1339 As of cURL v7.60.0, the Secure Channel backend can use the1340 certificate bundle provided via `http.sslCAInfo`, but that would1341 override the Windows Certificate Store. Since this is not desirable1342 by default, Git will tell cURL not to use that bundle by default1343 when the `schannel` backend was configured via `http.sslBackend`,1344 unless `http.schannelUseSSLCAInfo` overrides this behavior.13451346http.pinnedpubkey::1347 Public key of the https service. It may either be the filename of1348 a PEM or DER encoded public key file or a string starting with1349 'sha256//' followed by the base64 encoded sha256 hash of the1350 public key. See also libcurl 'CURLOPT_PINNEDPUBLICKEY'. git will1351 exit with an error if this option is set but not supported by1352 cURL.13531354http.sslTry::1355 Attempt to use AUTH SSL/TLS and encrypted data transfers1356 when connecting via regular FTP protocol. This might be needed1357 if the FTP server requires it for security reasons or you wish1358 to connect securely whenever remote FTP server supports it.1359 Default is false since it might trigger certificate verification1360 errors on misconfigured servers.13611362http.maxRequests::1363 How many HTTP requests to launch in parallel. Can be overridden1364 by the `GIT_HTTP_MAX_REQUESTS` environment variable. Default is 5.13651366http.minSessions::1367 The number of curl sessions (counted across slots) to be kept across1368 requests. They will not be ended with curl_easy_cleanup() until1369 http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this1370 value will be capped at 1. Defaults to 1.13711372http.postBuffer::1373 Maximum size in bytes of the buffer used by smart HTTP1374 transports when POSTing data to the remote system.1375 For requests larger than this buffer size, HTTP/1.1 and1376 Transfer-Encoding: chunked is used to avoid creating a1377 massive pack file locally. Default is 1 MiB, which is1378 sufficient for most requests.13791380http.lowSpeedLimit, http.lowSpeedTime::1381 If the HTTP transfer speed is less than 'http.lowSpeedLimit'1382 for longer than 'http.lowSpeedTime' seconds, the transfer is aborted.1383 Can be overridden by the `GIT_HTTP_LOW_SPEED_LIMIT` and1384 `GIT_HTTP_LOW_SPEED_TIME` environment variables.13851386http.noEPSV::1387 A boolean which disables using of EPSV ftp command by curl.1388 This can helpful with some "poor" ftp servers which don't1389 support EPSV mode. Can be overridden by the `GIT_CURL_FTP_NO_EPSV`1390 environment variable. Default is false (curl will use EPSV).13911392http.userAgent::1393 The HTTP USER_AGENT string presented to an HTTP server. The default1394 value represents the version of the client Git such as git/1.7.1.1395 This option allows you to override this value to a more common value1396 such as Mozilla/4.0. This may be necessary, for instance, if1397 connecting through a firewall that restricts HTTP connections to a set1398 of common USER_AGENT strings (but not including those like git/1.7.1).1399 Can be overridden by the `GIT_HTTP_USER_AGENT` environment variable.14001401http.followRedirects::1402 Whether git should follow HTTP redirects. If set to `true`, git1403 will transparently follow any redirect issued by a server it1404 encounters. If set to `false`, git will treat all redirects as1405 errors. If set to `initial`, git will follow redirects only for1406 the initial request to a remote, but not for subsequent1407 follow-up HTTP requests. Since git uses the redirected URL as1408 the base for the follow-up requests, this is generally1409 sufficient. The default is `initial`.14101411http.<url>.*::1412 Any of the http.* options above can be applied selectively to some URLs.1413 For a config key to match a URL, each element of the config key is1414 compared to that of the URL, in the following order:1415+1416--1417. Scheme (e.g., `https` in `https://example.com/`). This field1418 must match exactly between the config key and the URL.14191420. Host/domain name (e.g., `example.com` in `https://example.com/`).1421 This field must match between the config key and the URL. It is1422 possible to specify a `*` as part of the host name to match all subdomains1423 at this level. `https://*.example.com/` for example would match1424 `https://foo.example.com/`, but not `https://foo.bar.example.com/`.14251426. Port number (e.g., `8080` in `http://example.com:8080/`).1427 This field must match exactly between the config key and the URL.1428 Omitted port numbers are automatically converted to the correct1429 default for the scheme before matching.14301431. Path (e.g., `repo.git` in `https://example.com/repo.git`). The1432 path field of the config key must match the path field of the URL1433 either exactly or as a prefix of slash-delimited path elements. This means1434 a config key with path `foo/` matches URL path `foo/bar`. A prefix can only1435 match on a slash (`/`) boundary. Longer matches take precedence (so a config1436 key with path `foo/bar` is a better match to URL path `foo/bar` than a config1437 key with just path `foo/`).14381439. User name (e.g., `user` in `https://user@example.com/repo.git`). If1440 the config key has a user name it must match the user name in the1441 URL exactly. If the config key does not have a user name, that1442 config key will match a URL with any user name (including none),1443 but at a lower precedence than a config key with a user name.1444--1445+1446The list above is ordered by decreasing precedence; a URL that matches1447a config key's path is preferred to one that matches its user name. For example,1448if the URL is `https://user@example.com/foo/bar` a config key match of1449`https://example.com/foo` will be preferred over a config key match of1450`https://user@example.com`.1451+1452All URLs are normalized before attempting any matching (the password part,1453if embedded in the URL, is always ignored for matching purposes) so that1454equivalent URLs that are simply spelled differently will match properly.1455Environment variable settings always override any matches. The URLs that are1456matched against are those given directly to Git commands. This means any URLs1457visited as a result of a redirection do not participate in matching.14581459ssh.variant::1460 By default, Git determines the command line arguments to use1461 based on the basename of the configured SSH command (configured1462 using the environment variable `GIT_SSH` or `GIT_SSH_COMMAND` or1463 the config setting `core.sshCommand`). If the basename is1464 unrecognized, Git will attempt to detect support of OpenSSH1465 options by first invoking the configured SSH command with the1466 `-G` (print configuration) option and will subsequently use1467 OpenSSH options (if that is successful) or no options besides1468 the host and remote command (if it fails).1469+1470The config variable `ssh.variant` can be set to override this detection.1471Valid values are `ssh` (to use OpenSSH options), `plink`, `putty`,1472`tortoiseplink`, `simple` (no options except the host and remote command).1473The default auto-detection can be explicitly requested using the value1474`auto`. Any other value is treated as `ssh`. This setting can also be1475overridden via the environment variable `GIT_SSH_VARIANT`.1476+1477The current command-line parameters used for each variant are as1478follows:1479+1480--14811482* `ssh` - [-p port] [-4] [-6] [-o option] [username@]host command14831484* `simple` - [username@]host command14851486* `plink` or `putty` - [-P port] [-4] [-6] [username@]host command14871488* `tortoiseplink` - [-P port] [-4] [-6] -batch [username@]host command14891490--1491+1492Except for the `simple` variant, command-line parameters are likely to1493change as git gains new features.14941495i18n.commitEncoding::1496 Character encoding the commit messages are stored in; Git itself1497 does not care per se, but this information is necessary e.g. when1498 importing commits from emails or in the gitk graphical history1499 browser (and possibly at other places in the future or in other1500 porcelains). See e.g. linkgit:git-mailinfo[1]. Defaults to 'utf-8'.15011502i18n.logOutputEncoding::1503 Character encoding the commit messages are converted to when1504 running 'git log' and friends.15051506imap::1507 The configuration variables in the 'imap' section are described1508 in linkgit:git-imap-send[1].15091510index.threads::1511 Specifies the number of threads to spawn when loading the index.1512 This is meant to reduce index load time on multiprocessor machines.1513 Specifying 0 or 'true' will cause Git to auto-detect the number of1514 CPU's and set the number of threads accordingly. Specifying 1 or1515 'false' will disable multithreading. Defaults to 'true'.15161517index.version::1518 Specify the version with which new index files should be1519 initialized. This does not affect existing repositories.15201521init.templateDir::1522 Specify the directory from which templates will be copied.1523 (See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)15241525instaweb.browser::1526 Specify the program that will be used to browse your working1527 repository in gitweb. See linkgit:git-instaweb[1].15281529instaweb.httpd::1530 The HTTP daemon command-line to start gitweb on your working1531 repository. See linkgit:git-instaweb[1].15321533instaweb.local::1534 If true the web server started by linkgit:git-instaweb[1] will1535 be bound to the local IP (127.0.0.1).15361537instaweb.modulePath::1538 The default module path for linkgit:git-instaweb[1] to use1539 instead of /usr/lib/apache2/modules. Only used if httpd1540 is Apache.15411542instaweb.port::1543 The port number to bind the gitweb httpd to. See1544 linkgit:git-instaweb[1].15451546interactive.singleKey::1547 In interactive commands, allow the user to provide one-letter1548 input with a single key (i.e., without hitting enter).1549 Currently this is used by the `--patch` mode of1550 linkgit:git-add[1], linkgit:git-checkout[1], linkgit:git-commit[1],1551 linkgit:git-reset[1], and linkgit:git-stash[1]. Note that this1552 setting is silently ignored if portable keystroke input1553 is not available; requires the Perl module Term::ReadKey.15541555interactive.diffFilter::1556 When an interactive command (such as `git add --patch`) shows1557 a colorized diff, git will pipe the diff through the shell1558 command defined by this configuration variable. The command may1559 mark up the diff further for human consumption, provided that it1560 retains a one-to-one correspondence with the lines in the1561 original diff. Defaults to disabled (no filtering).15621563log.abbrevCommit::1564 If true, makes linkgit:git-log[1], linkgit:git-show[1], and1565 linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may1566 override this option with `--no-abbrev-commit`.15671568log.date::1569 Set the default date-time mode for the 'log' command.1570 Setting a value for log.date is similar to using 'git log''s1571 `--date` option. See linkgit:git-log[1] for details.15721573log.decorate::1574 Print out the ref names of any commits that are shown by the log1575 command. If 'short' is specified, the ref name prefixes 'refs/heads/',1576 'refs/tags/' and 'refs/remotes/' will not be printed. If 'full' is1577 specified, the full ref name (including prefix) will be printed.1578 If 'auto' is specified, then if the output is going to a terminal,1579 the ref names are shown as if 'short' were given, otherwise no ref1580 names are shown. This is the same as the `--decorate` option1581 of the `git log`.15821583log.follow::1584 If `true`, `git log` will act as if the `--follow` option was used when1585 a single <path> is given. This has the same limitations as `--follow`,1586 i.e. it cannot be used to follow multiple files and does not work well1587 on non-linear history.15881589log.graphColors::1590 A list of colors, separated by commas, that can be used to draw1591 history lines in `git log --graph`.15921593log.showRoot::1594 If true, the initial commit will be shown as a big creation event.1595 This is equivalent to a diff against an empty tree.1596 Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which1597 normally hide the root commit will now show it. True by default.15981599log.showSignature::1600 If true, makes linkgit:git-log[1], linkgit:git-show[1], and1601 linkgit:git-whatchanged[1] assume `--show-signature`.16021603log.mailmap::1604 If true, makes linkgit:git-log[1], linkgit:git-show[1], and1605 linkgit:git-whatchanged[1] assume `--use-mailmap`.16061607mailinfo.scissors::1608 If true, makes linkgit:git-mailinfo[1] (and therefore1609 linkgit:git-am[1]) act by default as if the --scissors option1610 was provided on the command-line. When active, this features1611 removes everything from the message body before a scissors1612 line (i.e. consisting mainly of ">8", "8<" and "-").16131614mailmap.file::1615 The location of an augmenting mailmap file. The default1616 mailmap, located in the root of the repository, is loaded1617 first, then the mailmap file pointed to by this variable.1618 The location of the mailmap file may be in a repository1619 subdirectory, or somewhere outside of the repository itself.1620 See linkgit:git-shortlog[1] and linkgit:git-blame[1].16211622mailmap.blob::1623 Like `mailmap.file`, but consider the value as a reference to a1624 blob in the repository. If both `mailmap.file` and1625 `mailmap.blob` are given, both are parsed, with entries from1626 `mailmap.file` taking precedence. In a bare repository, this1627 defaults to `HEAD:.mailmap`. In a non-bare repository, it1628 defaults to empty.16291630man.viewer::1631 Specify the programs that may be used to display help in the1632 'man' format. See linkgit:git-help[1].16331634man.<tool>.cmd::1635 Specify the command to invoke the specified man viewer. The1636 specified command is evaluated in shell with the man page1637 passed as argument. (See linkgit:git-help[1].)16381639man.<tool>.path::1640 Override the path for the given tool that may be used to1641 display help in the 'man' format. See linkgit:git-help[1].16421643include::merge-config.txt[]16441645mergetool.<tool>.path::1646 Override the path for the given tool. This is useful in case1647 your tool is not in the PATH.16481649mergetool.<tool>.cmd::1650 Specify the command to invoke the specified merge tool. The1651 specified command is evaluated in shell with the following1652 variables available: 'BASE' is the name of a temporary file1653 containing the common base of the files to be merged, if available;1654 'LOCAL' is the name of a temporary file containing the contents of1655 the file on the current branch; 'REMOTE' is the name of a temporary1656 file containing the contents of the file from the branch being1657 merged; 'MERGED' contains the name of the file to which the merge1658 tool should write the results of a successful merge.16591660mergetool.<tool>.trustExitCode::1661 For a custom merge command, specify whether the exit code of1662 the merge command can be used to determine whether the merge was1663 successful. If this is not set to true then the merge target file1664 timestamp is checked and the merge assumed to have been successful1665 if the file has been updated, otherwise the user is prompted to1666 indicate the success of the merge.16671668mergetool.meld.hasOutput::1669 Older versions of `meld` do not support the `--output` option.1670 Git will attempt to detect whether `meld` supports `--output`1671 by inspecting the output of `meld --help`. Configuring1672 `mergetool.meld.hasOutput` will make Git skip these checks and1673 use the configured value instead. Setting `mergetool.meld.hasOutput`1674 to `true` tells Git to unconditionally use the `--output` option,1675 and `false` avoids using `--output`.16761677mergetool.keepBackup::1678 After performing a merge, the original file with conflict markers1679 can be saved as a file with a `.orig` extension. If this variable1680 is set to `false` then this file is not preserved. Defaults to1681 `true` (i.e. keep the backup files).16821683mergetool.keepTemporaries::1684 When invoking a custom merge tool, Git uses a set of temporary1685 files to pass to the tool. If the tool returns an error and this1686 variable is set to `true`, then these temporary files will be1687 preserved, otherwise they will be removed after the tool has1688 exited. Defaults to `false`.16891690mergetool.writeToTemp::1691 Git writes temporary 'BASE', 'LOCAL', and 'REMOTE' versions of1692 conflicting files in the worktree by default. Git will attempt1693 to use a temporary directory for these files when set `true`.1694 Defaults to `false`.16951696mergetool.prompt::1697 Prompt before each invocation of the merge resolution program.16981699notes.mergeStrategy::1700 Which merge strategy to choose by default when resolving notes1701 conflicts. Must be one of `manual`, `ours`, `theirs`, `union`, or1702 `cat_sort_uniq`. Defaults to `manual`. See "NOTES MERGE STRATEGIES"1703 section of linkgit:git-notes[1] for more information on each strategy.17041705notes.<name>.mergeStrategy::1706 Which merge strategy to choose when doing a notes merge into1707 refs/notes/<name>. This overrides the more general1708 "notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section in1709 linkgit:git-notes[1] for more information on the available strategies.17101711notes.displayRef::1712 The (fully qualified) refname from which to show notes when1713 showing commit messages. The value of this variable can be set1714 to a glob, in which case notes from all matching refs will be1715 shown. You may also specify this configuration variable1716 several times. A warning will be issued for refs that do not1717 exist, but a glob that does not match any refs is silently1718 ignored.1719+1720This setting can be overridden with the `GIT_NOTES_DISPLAY_REF`1721environment variable, which must be a colon separated list of refs or1722globs.1723+1724The effective value of "core.notesRef" (possibly overridden by1725GIT_NOTES_REF) is also implicitly added to the list of refs to be1726displayed.17271728notes.rewrite.<command>::1729 When rewriting commits with <command> (currently `amend` or1730 `rebase`) and this variable is set to `true`, Git1731 automatically copies your notes from the original to the1732 rewritten commit. Defaults to `true`, but see1733 "notes.rewriteRef" below.17341735notes.rewriteMode::1736 When copying notes during a rewrite (see the1737 "notes.rewrite.<command>" option), determines what to do if1738 the target commit already has a note. Must be one of1739 `overwrite`, `concatenate`, `cat_sort_uniq`, or `ignore`.1740 Defaults to `concatenate`.1741+1742This setting can be overridden with the `GIT_NOTES_REWRITE_MODE`1743environment variable.17441745notes.rewriteRef::1746 When copying notes during a rewrite, specifies the (fully1747 qualified) ref whose notes should be copied. The ref may be a1748 glob, in which case notes in all matching refs will be copied.1749 You may also specify this configuration several times.1750+1751Does not have a default value; you must configure this variable to1752enable note rewriting. Set it to `refs/notes/commits` to enable1753rewriting for the default commit notes.1754+1755This setting can be overridden with the `GIT_NOTES_REWRITE_REF`1756environment variable, which must be a colon separated list of refs or1757globs.17581759pack.window::1760 The size of the window used by linkgit:git-pack-objects[1] when no1761 window size is given on the command line. Defaults to 10.17621763pack.depth::1764 The maximum delta depth used by linkgit:git-pack-objects[1] when no1765 maximum depth is given on the command line. Defaults to 50.1766 Maximum value is 4095.17671768pack.windowMemory::1769 The maximum size of memory that is consumed by each thread1770 in linkgit:git-pack-objects[1] for pack window memory when1771 no limit is given on the command line. The value can be1772 suffixed with "k", "m", or "g". When left unconfigured (or1773 set explicitly to 0), there will be no limit.17741775pack.compression::1776 An integer -1..9, indicating the compression level for objects1777 in a pack file. -1 is the zlib default. 0 means no1778 compression, and 1..9 are various speed/size tradeoffs, 9 being1779 slowest. If not set, defaults to core.compression. If that is1780 not set, defaults to -1, the zlib default, which is "a default1781 compromise between speed and compression (currently equivalent1782 to level 6)."1783+1784Note that changing the compression level will not automatically recompress1785all existing objects. You can force recompression by passing the -F option1786to linkgit:git-repack[1].17871788pack.island::1789 An extended regular expression configuring a set of delta1790 islands. See "DELTA ISLANDS" in linkgit:git-pack-objects[1]1791 for details.17921793pack.islandCore::1794 Specify an island name which gets to have its objects be1795 packed first. This creates a kind of pseudo-pack at the front1796 of one pack, so that the objects from the specified island are1797 hopefully faster to copy into any pack that should be served1798 to a user requesting these objects. In practice this means1799 that the island specified should likely correspond to what is1800 the most commonly cloned in the repo. See also "DELTA ISLANDS"1801 in linkgit:git-pack-objects[1].18021803pack.deltaCacheSize::1804 The maximum memory in bytes used for caching deltas in1805 linkgit:git-pack-objects[1] before writing them out to a pack.1806 This cache is used to speed up the writing object phase by not1807 having to recompute the final delta result once the best match1808 for all objects is found. Repacking large repositories on machines1809 which are tight with memory might be badly impacted by this though,1810 especially if this cache pushes the system into swapping.1811 A value of 0 means no limit. The smallest size of 1 byte may be1812 used to virtually disable this cache. Defaults to 256 MiB.18131814pack.deltaCacheLimit::1815 The maximum size of a delta, that is cached in1816 linkgit:git-pack-objects[1]. This cache is used to speed up the1817 writing object phase by not having to recompute the final delta1818 result once the best match for all objects is found.1819 Defaults to 1000. Maximum value is 65535.18201821pack.threads::1822 Specifies the number of threads to spawn when searching for best1823 delta matches. This requires that linkgit:git-pack-objects[1]1824 be compiled with pthreads otherwise this option is ignored with a1825 warning. This is meant to reduce packing time on multiprocessor1826 machines. The required amount of memory for the delta search window1827 is however multiplied by the number of threads.1828 Specifying 0 will cause Git to auto-detect the number of CPU's1829 and set the number of threads accordingly.18301831pack.indexVersion::1832 Specify the default pack index version. Valid values are 1 for1833 legacy pack index used by Git versions prior to 1.5.2, and 2 for1834 the new pack index with capabilities for packs larger than 4 GB1835 as well as proper protection against the repacking of corrupted1836 packs. Version 2 is the default. Note that version 2 is enforced1837 and this config option ignored whenever the corresponding pack is1838 larger than 2 GB.1839+1840If you have an old Git that does not understand the version 2 `*.idx` file,1841cloning or fetching over a non native protocol (e.g. "http")1842that will copy both `*.pack` file and corresponding `*.idx` file from the1843other side may give you a repository that cannot be accessed with your1844older version of Git. If the `*.pack` file is smaller than 2 GB, however,1845you can use linkgit:git-index-pack[1] on the *.pack file to regenerate1846the `*.idx` file.18471848pack.packSizeLimit::1849 The maximum size of a pack. This setting only affects1850 packing to a file when repacking, i.e. the git:// protocol1851 is unaffected. It can be overridden by the `--max-pack-size`1852 option of linkgit:git-repack[1]. Reaching this limit results1853 in the creation of multiple packfiles; which in turn prevents1854 bitmaps from being created.1855 The minimum size allowed is limited to 1 MiB.1856 The default is unlimited.1857 Common unit suffixes of 'k', 'm', or 'g' are1858 supported.18591860pack.useBitmaps::1861 When true, git will use pack bitmaps (if available) when packing1862 to stdout (e.g., during the server side of a fetch). Defaults to1863 true. You should not generally need to turn this off unless1864 you are debugging pack bitmaps.18651866pack.writeBitmaps (deprecated)::1867 This is a deprecated synonym for `repack.writeBitmaps`.18681869pack.writeBitmapHashCache::1870 When true, git will include a "hash cache" section in the bitmap1871 index (if one is written). This cache can be used to feed git's1872 delta heuristics, potentially leading to better deltas between1873 bitmapped and non-bitmapped objects (e.g., when serving a fetch1874 between an older, bitmapped pack and objects that have been1875 pushed since the last gc). The downside is that it consumes 41876 bytes per object of disk space, and that JGit's bitmap1877 implementation does not understand it, causing it to complain if1878 Git and JGit are used on the same repository. Defaults to false.18791880pager.<cmd>::1881 If the value is boolean, turns on or off pagination of the1882 output of a particular Git subcommand when writing to a tty.1883 Otherwise, turns on pagination for the subcommand using the1884 pager specified by the value of `pager.<cmd>`. If `--paginate`1885 or `--no-pager` is specified on the command line, it takes1886 precedence over this option. To disable pagination for all1887 commands, set `core.pager` or `GIT_PAGER` to `cat`.18881889pretty.<name>::1890 Alias for a --pretty= format string, as specified in1891 linkgit:git-log[1]. Any aliases defined here can be used just1892 as the built-in pretty formats could. For example,1893 running `git config pretty.changelog "format:* %H %s"`1894 would cause the invocation `git log --pretty=changelog`1895 to be equivalent to running `git log "--pretty=format:* %H %s"`.1896 Note that an alias with the same name as a built-in format1897 will be silently ignored.18981899protocol.allow::1900 If set, provide a user defined default policy for all protocols which1901 don't explicitly have a policy (`protocol.<name>.allow`). By default,1902 if unset, known-safe protocols (http, https, git, ssh, file) have a1903 default policy of `always`, known-dangerous protocols (ext) have a1904 default policy of `never`, and all other protocols have a default1905 policy of `user`. Supported policies:1906+1907--19081909* `always` - protocol is always able to be used.19101911* `never` - protocol is never able to be used.19121913* `user` - protocol is only able to be used when `GIT_PROTOCOL_FROM_USER` is1914 either unset or has a value of 1. This policy should be used when you want a1915 protocol to be directly usable by the user but don't want it used by commands which1916 execute clone/fetch/push commands without user input, e.g. recursive1917 submodule initialization.19181919--19201921protocol.<name>.allow::1922 Set a policy to be used by protocol `<name>` with clone/fetch/push1923 commands. See `protocol.allow` above for the available policies.1924+1925The protocol names currently used by git are:1926+1927--1928 - `file`: any local file-based path (including `file://` URLs,1929 or local paths)19301931 - `git`: the anonymous git protocol over a direct TCP1932 connection (or proxy, if configured)19331934 - `ssh`: git over ssh (including `host:path` syntax,1935 `ssh://`, etc).19361937 - `http`: git over http, both "smart http" and "dumb http".1938 Note that this does _not_ include `https`; if you want to configure1939 both, you must do so individually.19401941 - any external helpers are named by their protocol (e.g., use1942 `hg` to allow the `git-remote-hg` helper)1943--19441945protocol.version::1946 Experimental. If set, clients will attempt to communicate with a1947 server using the specified protocol version. If unset, no1948 attempt will be made by the client to communicate using a1949 particular protocol version, this results in protocol version 01950 being used.1951 Supported versions:1952+1953--19541955* `0` - the original wire protocol.19561957* `1` - the original wire protocol with the addition of a version string1958 in the initial response from the server.19591960* `2` - link:technical/protocol-v2.html[wire protocol version 2].19611962--19631964include::pull-config.txt[]19651966include::push-config.txt[]19671968include::rebase-config.txt[]19691970include::receive-config.txt[]19711972remote.pushDefault::1973 The remote to push to by default. Overrides1974 `branch.<name>.remote` for all branches, and is overridden by1975 `branch.<name>.pushRemote` for specific branches.19761977remote.<name>.url::1978 The URL of a remote repository. See linkgit:git-fetch[1] or1979 linkgit:git-push[1].19801981remote.<name>.pushurl::1982 The push URL of a remote repository. See linkgit:git-push[1].19831984remote.<name>.proxy::1985 For remotes that require curl (http, https and ftp), the URL to1986 the proxy to use for that remote. Set to the empty string to1987 disable proxying for that remote.19881989remote.<name>.proxyAuthMethod::1990 For remotes that require curl (http, https and ftp), the method to use for1991 authenticating against the proxy in use (probably set in1992 `remote.<name>.proxy`). See `http.proxyAuthMethod`.19931994remote.<name>.fetch::1995 The default set of "refspec" for linkgit:git-fetch[1]. See1996 linkgit:git-fetch[1].19971998remote.<name>.push::1999 The default set of "refspec" for linkgit:git-push[1]. See2000 linkgit:git-push[1].20012002remote.<name>.mirror::2003 If true, pushing to this remote will automatically behave2004 as if the `--mirror` option was given on the command line.20052006remote.<name>.skipDefaultUpdate::2007 If true, this remote will be skipped by default when updating2008 using linkgit:git-fetch[1] or the `update` subcommand of2009 linkgit:git-remote[1].20102011remote.<name>.skipFetchAll::2012 If true, this remote will be skipped by default when updating2013 using linkgit:git-fetch[1] or the `update` subcommand of2014 linkgit:git-remote[1].20152016remote.<name>.receivepack::2017 The default program to execute on the remote side when pushing. See2018 option --receive-pack of linkgit:git-push[1].20192020remote.<name>.uploadpack::2021 The default program to execute on the remote side when fetching. See2022 option --upload-pack of linkgit:git-fetch-pack[1].20232024remote.<name>.tagOpt::2025 Setting this value to --no-tags disables automatic tag following when2026 fetching from remote <name>. Setting it to --tags will fetch every2027 tag from remote <name>, even if they are not reachable from remote2028 branch heads. Passing these flags directly to linkgit:git-fetch[1] can2029 override this setting. See options --tags and --no-tags of2030 linkgit:git-fetch[1].20312032remote.<name>.vcs::2033 Setting this to a value <vcs> will cause Git to interact with2034 the remote with the git-remote-<vcs> helper.20352036remote.<name>.prune::2037 When set to true, fetching from this remote by default will also2038 remove any remote-tracking references that no longer exist on the2039 remote (as if the `--prune` option was given on the command line).2040 Overrides `fetch.prune` settings, if any.20412042remote.<name>.pruneTags::2043 When set to true, fetching from this remote by default will also2044 remove any local tags that no longer exist on the remote if pruning2045 is activated in general via `remote.<name>.prune`, `fetch.prune` or2046 `--prune`. Overrides `fetch.pruneTags` settings, if any.2047+2048See also `remote.<name>.prune` and the PRUNING section of2049linkgit:git-fetch[1].20502051remotes.<group>::2052 The list of remotes which are fetched by "git remote update2053 <group>". See linkgit:git-remote[1].20542055repack.useDeltaBaseOffset::2056 By default, linkgit:git-repack[1] creates packs that use2057 delta-base offset. If you need to share your repository with2058 Git older than version 1.4.4, either directly or via a dumb2059 protocol such as http, then you need to set this option to2060 "false" and repack. Access from old Git versions over the2061 native protocol are unaffected by this option.20622063repack.packKeptObjects::2064 If set to true, makes `git repack` act as if2065 `--pack-kept-objects` was passed. See linkgit:git-repack[1] for2066 details. Defaults to `false` normally, but `true` if a bitmap2067 index is being written (either via `--write-bitmap-index` or2068 `repack.writeBitmaps`).20692070repack.useDeltaIslands::2071 If set to true, makes `git repack` act as if `--delta-islands`2072 was passed. Defaults to `false`.20732074repack.writeBitmaps::2075 When true, git will write a bitmap index when packing all2076 objects to disk (e.g., when `git repack -a` is run). This2077 index can speed up the "counting objects" phase of subsequent2078 packs created for clones and fetches, at the cost of some disk2079 space and extra time spent on the initial repack. This has2080 no effect if multiple packfiles are created.2081 Defaults to false.20822083rerere.autoUpdate::2084 When set to true, `git-rerere` updates the index with the2085 resulting contents after it cleanly resolves conflicts using2086 previously recorded resolution. Defaults to false.20872088rerere.enabled::2089 Activate recording of resolved conflicts, so that identical2090 conflict hunks can be resolved automatically, should they be2091 encountered again. By default, linkgit:git-rerere[1] is2092 enabled if there is an `rr-cache` directory under the2093 `$GIT_DIR`, e.g. if "rerere" was previously used in the2094 repository.20952096reset.quiet::2097 When set to true, 'git reset' will default to the '--quiet' option.20982099include::sendemail-config.txt[]21002101sequence.editor::2102 Text editor used by `git rebase -i` for editing the rebase instruction file.2103 The value is meant to be interpreted by the shell when it is used.2104 It can be overridden by the `GIT_SEQUENCE_EDITOR` environment variable.2105 When not configured the default commit message editor is used instead.21062107showBranch.default::2108 The default set of branches for linkgit:git-show-branch[1].2109 See linkgit:git-show-branch[1].21102111splitIndex.maxPercentChange::2112 When the split index feature is used, this specifies the2113 percent of entries the split index can contain compared to the2114 total number of entries in both the split index and the shared2115 index before a new shared index is written.2116 The value should be between 0 and 100. If the value is 0 then2117 a new shared index is always written, if it is 100 a new2118 shared index is never written.2119 By default the value is 20, so a new shared index is written2120 if the number of entries in the split index would be greater2121 than 20 percent of the total number of entries.2122 See linkgit:git-update-index[1].21232124splitIndex.sharedIndexExpire::2125 When the split index feature is used, shared index files that2126 were not modified since the time this variable specifies will2127 be removed when a new shared index file is created. The value2128 "now" expires all entries immediately, and "never" suppresses2129 expiration altogether.2130 The default value is "2.weeks.ago".2131 Note that a shared index file is considered modified (for the2132 purpose of expiration) each time a new split-index file is2133 either created based on it or read from it.2134 See linkgit:git-update-index[1].21352136status.relativePaths::2137 By default, linkgit:git-status[1] shows paths relative to the2138 current directory. Setting this variable to `false` shows paths2139 relative to the repository root (this was the default for Git2140 prior to v1.5.4).21412142status.short::2143 Set to true to enable --short by default in linkgit:git-status[1].2144 The option --no-short takes precedence over this variable.21452146status.branch::2147 Set to true to enable --branch by default in linkgit:git-status[1].2148 The option --no-branch takes precedence over this variable.21492150status.displayCommentPrefix::2151 If set to true, linkgit:git-status[1] will insert a comment2152 prefix before each output line (starting with2153 `core.commentChar`, i.e. `#` by default). This was the2154 behavior of linkgit:git-status[1] in Git 1.8.4 and previous.2155 Defaults to false.21562157status.renameLimit::2158 The number of files to consider when performing rename detection2159 in linkgit:git-status[1] and linkgit:git-commit[1]. Defaults to2160 the value of diff.renameLimit.21612162status.renames::2163 Whether and how Git detects renames in linkgit:git-status[1] and2164 linkgit:git-commit[1] . If set to "false", rename detection is2165 disabled. If set to "true", basic rename detection is enabled.2166 If set to "copies" or "copy", Git will detect copies, as well.2167 Defaults to the value of diff.renames.21682169status.showStash::2170 If set to true, linkgit:git-status[1] will display the number of2171 entries currently stashed away.2172 Defaults to false.21732174status.showUntrackedFiles::2175 By default, linkgit:git-status[1] and linkgit:git-commit[1] show2176 files which are not currently tracked by Git. Directories which2177 contain only untracked files, are shown with the directory name2178 only. Showing untracked files means that Git needs to lstat() all2179 the files in the whole repository, which might be slow on some2180 systems. So, this variable controls how the commands displays2181 the untracked files. Possible values are:2182+2183--2184* `no` - Show no untracked files.2185* `normal` - Show untracked files and directories.2186* `all` - Show also individual files in untracked directories.2187--2188+2189If this variable is not specified, it defaults to 'normal'.2190This variable can be overridden with the -u|--untracked-files option2191of linkgit:git-status[1] and linkgit:git-commit[1].21922193status.submoduleSummary::2194 Defaults to false.2195 If this is set to a non zero number or true (identical to -1 or an2196 unlimited number), the submodule summary will be enabled and a2197 summary of commits for modified submodules will be shown (see2198 --summary-limit option of linkgit:git-submodule[1]). Please note2199 that the summary output command will be suppressed for all2200 submodules when `diff.ignoreSubmodules` is set to 'all' or only2201 for those submodules where `submodule.<name>.ignore=all`. The only2202 exception to that rule is that status and commit will show staged2203 submodule changes. To2204 also view the summary for ignored submodules you can either use2205 the --ignore-submodules=dirty command-line option or the 'git2206 submodule summary' command, which shows a similar output but does2207 not honor these settings.22082209stash.showPatch::2210 If this is set to true, the `git stash show` command without an2211 option will show the stash entry in patch form. Defaults to false.2212 See description of 'show' command in linkgit:git-stash[1].22132214stash.showStat::2215 If this is set to true, the `git stash show` command without an2216 option will show diffstat of the stash entry. Defaults to true.2217 See description of 'show' command in linkgit:git-stash[1].22182219include::submodule-config.txt[]22202221tag.forceSignAnnotated::2222 A boolean to specify whether annotated tags created should be GPG signed.2223 If `--annotate` is specified on the command line, it takes2224 precedence over this option.22252226tag.sort::2227 This variable controls the sort ordering of tags when displayed by2228 linkgit:git-tag[1]. Without the "--sort=<value>" option provided, the2229 value of this variable will be used as the default.22302231tar.umask::2232 This variable can be used to restrict the permission bits of2233 tar archive entries. The default is 0002, which turns off the2234 world write bit. The special value "user" indicates that the2235 archiving user's umask will be used instead. See umask(2) and2236 linkgit:git-archive[1].22372238transfer.fsckObjects::2239 When `fetch.fsckObjects` or `receive.fsckObjects` are2240 not set, the value of this variable is used instead.2241 Defaults to false.2242+2243When set, the fetch or receive will abort in the case of a malformed2244object or a link to a nonexistent object. In addition, various other2245issues are checked for, including legacy issues (see `fsck.<msg-id>`),2246and potential security issues like the existence of a `.GIT` directory2247or a malicious `.gitmodules` file (see the release notes for v2.2.12248and v2.17.1 for details). Other sanity and security checks may be2249added in future releases.2250+2251On the receiving side, failing fsckObjects will make those objects2252unreachable, see "QUARANTINE ENVIRONMENT" in2253linkgit:git-receive-pack[1]. On the fetch side, malformed objects will2254instead be left unreferenced in the repository.2255+2256Due to the non-quarantine nature of the `fetch.fsckObjects`2257implementation it can not be relied upon to leave the object store2258clean like `receive.fsckObjects` can.2259+2260As objects are unpacked they're written to the object store, so there2261can be cases where malicious objects get introduced even though the2262"fetch" failed, only to have a subsequent "fetch" succeed because only2263new incoming objects are checked, not those that have already been2264written to the object store. That difference in behavior should not be2265relied upon. In the future, such objects may be quarantined for2266"fetch" as well.2267+2268For now, the paranoid need to find some way to emulate the quarantine2269environment if they'd like the same protection as "push". E.g. in the2270case of an internal mirror do the mirroring in two steps, one to fetch2271the untrusted objects, and then do a second "push" (which will use the2272quarantine) to another internal repo, and have internal clients2273consume this pushed-to repository, or embargo internal fetches and2274only allow them once a full "fsck" has run (and no new fetches have2275happened in the meantime).22762277transfer.hideRefs::2278 String(s) `receive-pack` and `upload-pack` use to decide which2279 refs to omit from their initial advertisements. Use more than2280 one definition to specify multiple prefix strings. A ref that is2281 under the hierarchies listed in the value of this variable is2282 excluded, and is hidden when responding to `git push` or `git2283 fetch`. See `receive.hideRefs` and `uploadpack.hideRefs` for2284 program-specific versions of this config.2285+2286You may also include a `!` in front of the ref name to negate the entry,2287explicitly exposing it, even if an earlier entry marked it as hidden.2288If you have multiple hideRefs values, later entries override earlier ones2289(and entries in more-specific config files override less-specific ones).2290+2291If a namespace is in use, the namespace prefix is stripped from each2292reference before it is matched against `transfer.hiderefs` patterns.2293For example, if `refs/heads/master` is specified in `transfer.hideRefs` and2294the current namespace is `foo`, then `refs/namespaces/foo/refs/heads/master`2295is omitted from the advertisements but `refs/heads/master` and2296`refs/namespaces/bar/refs/heads/master` are still advertised as so-called2297"have" lines. In order to match refs before stripping, add a `^` in front of2298the ref name. If you combine `!` and `^`, `!` must be specified first.2299+2300Even if you hide refs, a client may still be able to steal the target2301objects via the techniques described in the "SECURITY" section of the2302linkgit:gitnamespaces[7] man page; it's best to keep private data in a2303separate repository.23042305transfer.unpackLimit::2306 When `fetch.unpackLimit` or `receive.unpackLimit` are2307 not set, the value of this variable is used instead.2308 The default value is 100.23092310uploadarchive.allowUnreachable::2311 If true, allow clients to use `git archive --remote` to request2312 any tree, whether reachable from the ref tips or not. See the2313 discussion in the "SECURITY" section of2314 linkgit:git-upload-archive[1] for more details. Defaults to2315 `false`.23162317uploadpack.hideRefs::2318 This variable is the same as `transfer.hideRefs`, but applies2319 only to `upload-pack` (and so affects only fetches, not pushes).2320 An attempt to fetch a hidden ref by `git fetch` will fail. See2321 also `uploadpack.allowTipSHA1InWant`.23222323uploadpack.allowTipSHA1InWant::2324 When `uploadpack.hideRefs` is in effect, allow `upload-pack`2325 to accept a fetch request that asks for an object at the tip2326 of a hidden ref (by default, such a request is rejected).2327 See also `uploadpack.hideRefs`. Even if this is false, a client2328 may be able to steal objects via the techniques described in the2329 "SECURITY" section of the linkgit:gitnamespaces[7] man page; it's2330 best to keep private data in a separate repository.23312332uploadpack.allowReachableSHA1InWant::2333 Allow `upload-pack` to accept a fetch request that asks for an2334 object that is reachable from any ref tip. However, note that2335 calculating object reachability is computationally expensive.2336 Defaults to `false`. Even if this is false, a client may be able2337 to steal objects via the techniques described in the "SECURITY"2338 section of the linkgit:gitnamespaces[7] man page; it's best to2339 keep private data in a separate repository.23402341uploadpack.allowAnySHA1InWant::2342 Allow `upload-pack` to accept a fetch request that asks for any2343 object at all.2344 Defaults to `false`.23452346uploadpack.keepAlive::2347 When `upload-pack` has started `pack-objects`, there may be a2348 quiet period while `pack-objects` prepares the pack. Normally2349 it would output progress information, but if `--quiet` was used2350 for the fetch, `pack-objects` will output nothing at all until2351 the pack data begins. Some clients and networks may consider2352 the server to be hung and give up. Setting this option instructs2353 `upload-pack` to send an empty keepalive packet every2354 `uploadpack.keepAlive` seconds. Setting this option to 02355 disables keepalive packets entirely. The default is 5 seconds.23562357uploadpack.packObjectsHook::2358 If this option is set, when `upload-pack` would run2359 `git pack-objects` to create a packfile for a client, it will2360 run this shell command instead. The `pack-objects` command and2361 arguments it _would_ have run (including the `git pack-objects`2362 at the beginning) are appended to the shell command. The stdin2363 and stdout of the hook are treated as if `pack-objects` itself2364 was run. I.e., `upload-pack` will feed input intended for2365 `pack-objects` to the hook, and expects a completed packfile on2366 stdout.2367+2368Note that this configuration variable is ignored if it is seen in the2369repository-level config (this is a safety measure against fetching from2370untrusted repositories).23712372uploadpack.allowFilter::2373 If this option is set, `upload-pack` will support partial2374 clone and partial fetch object filtering.23752376uploadpack.allowRefInWant::2377 If this option is set, `upload-pack` will support the `ref-in-want`2378 feature of the protocol version 2 `fetch` command. This feature2379 is intended for the benefit of load-balanced servers which may2380 not have the same view of what OIDs their refs point to due to2381 replication delay.23822383url.<base>.insteadOf::2384 Any URL that starts with this value will be rewritten to2385 start, instead, with <base>. In cases where some site serves a2386 large number of repositories, and serves them with multiple2387 access methods, and some users need to use different access2388 methods, this feature allows people to specify any of the2389 equivalent URLs and have Git automatically rewrite the URL to2390 the best alternative for the particular user, even for a2391 never-before-seen repository on the site. When more than one2392 insteadOf strings match a given URL, the longest match is used.2393+2394Note that any protocol restrictions will be applied to the rewritten2395URL. If the rewrite changes the URL to use a custom protocol or remote2396helper, you may need to adjust the `protocol.*.allow` config to permit2397the request. In particular, protocols you expect to use for submodules2398must be set to `always` rather than the default of `user`. See the2399description of `protocol.allow` above.24002401url.<base>.pushInsteadOf::2402 Any URL that starts with this value will not be pushed to;2403 instead, it will be rewritten to start with <base>, and the2404 resulting URL will be pushed to. In cases where some site serves2405 a large number of repositories, and serves them with multiple2406 access methods, some of which do not allow push, this feature2407 allows people to specify a pull-only URL and have Git2408 automatically use an appropriate URL to push, even for a2409 never-before-seen repository on the site. When more than one2410 pushInsteadOf strings match a given URL, the longest match is2411 used. If a remote has an explicit pushurl, Git will ignore this2412 setting for that remote.24132414user.email::2415 Your email address to be recorded in any newly created commits.2416 Can be overridden by the `GIT_AUTHOR_EMAIL`, `GIT_COMMITTER_EMAIL`, and2417 `EMAIL` environment variables. See linkgit:git-commit-tree[1].24182419user.name::2420 Your full name to be recorded in any newly created commits.2421 Can be overridden by the `GIT_AUTHOR_NAME` and `GIT_COMMITTER_NAME`2422 environment variables. See linkgit:git-commit-tree[1].24232424user.useConfigOnly::2425 Instruct Git to avoid trying to guess defaults for `user.email`2426 and `user.name`, and instead retrieve the values only from the2427 configuration. For example, if you have multiple email addresses2428 and would like to use a different one for each repository, then2429 with this configuration option set to `true` in the global config2430 along with a name, Git will prompt you to set up an email before2431 making new commits in a newly cloned repository.2432 Defaults to `false`.24332434user.signingKey::2435 If linkgit:git-tag[1] or linkgit:git-commit[1] is not selecting the2436 key you want it to automatically when creating a signed tag or2437 commit, you can override the default selection with this variable.2438 This option is passed unchanged to gpg's --local-user parameter,2439 so you may specify a key using any method that gpg supports.24402441versionsort.prereleaseSuffix (deprecated)::2442 Deprecated alias for `versionsort.suffix`. Ignored if2443 `versionsort.suffix` is set.24442445versionsort.suffix::2446 Even when version sort is used in linkgit:git-tag[1], tagnames2447 with the same base version but different suffixes are still sorted2448 lexicographically, resulting e.g. in prerelease tags appearing2449 after the main release (e.g. "1.0-rc1" after "1.0"). This2450 variable can be specified to determine the sorting order of tags2451 with different suffixes.2452+2453By specifying a single suffix in this variable, any tagname containing2454that suffix will appear before the corresponding main release. E.g. if2455the variable is set to "-rc", then all "1.0-rcX" tags will appear before2456"1.0". If specified multiple times, once per suffix, then the order of2457suffixes in the configuration will determine the sorting order of tagnames2458with those suffixes. E.g. if "-pre" appears before "-rc" in the2459configuration, then all "1.0-preX" tags will be listed before any2460"1.0-rcX" tags. The placement of the main release tag relative to tags2461with various suffixes can be determined by specifying the empty suffix2462among those other suffixes. E.g. if the suffixes "-rc", "", "-ck" and2463"-bfs" appear in the configuration in this order, then all "v4.8-rcX" tags2464are listed first, followed by "v4.8", then "v4.8-ckX" and finally2465"v4.8-bfsX".2466+2467If more than one suffixes match the same tagname, then that tagname will2468be sorted according to the suffix which starts at the earliest position in2469the tagname. If more than one different matching suffixes start at2470that earliest position, then that tagname will be sorted according to the2471longest of those suffixes.2472The sorting order between different suffixes is undefined if they are2473in multiple config files.24742475web.browser::2476 Specify a web browser that may be used by some commands.2477 Currently only linkgit:git-instaweb[1] and linkgit:git-help[1]2478 may use it.24792480worktree.guessRemote::2481 With `add`, if no branch argument, and neither of `-b` nor2482 `-B` nor `--detach` are given, the command defaults to2483 creating a new branch from HEAD. If `worktree.guessRemote` is2484 set to true, `worktree add` tries to find a remote-tracking2485 branch whose name uniquely matches the new branch name. If2486 such a branch exists, it is checked out and set as "upstream"2487 for the new branch. If no such match can be found, it falls2488 back to creating a new branch from the current HEAD.