include::config/i18n.txt[]
-imap::
- The configuration variables in the 'imap' section are described
- in linkgit:git-imap-send[1].
-
-index.threads::
- Specifies the number of threads to spawn when loading the index.
- This is meant to reduce index load time on multiprocessor machines.
- Specifying 0 or 'true' will cause Git to auto-detect the number of
- CPU's and set the number of threads accordingly. Specifying 1 or
- 'false' will disable multithreading. Defaults to 'true'.
-
-index.version::
- Specify the version with which new index files should be
- initialized. This does not affect existing repositories.
-
-init.templateDir::
- Specify the directory from which templates will be copied.
- (See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)
-
-instaweb.browser::
- Specify the program that will be used to browse your working
- repository in gitweb. See linkgit:git-instaweb[1].
-
-instaweb.httpd::
- The HTTP daemon command-line to start gitweb on your working
- repository. See linkgit:git-instaweb[1].
-
-instaweb.local::
- If true the web server started by linkgit:git-instaweb[1] will
- be bound to the local IP (127.0.0.1).
-
-instaweb.modulePath::
- The default module path for linkgit:git-instaweb[1] to use
- instead of /usr/lib/apache2/modules. Only used if httpd
- is Apache.
-
-instaweb.port::
- The port number to bind the gitweb httpd to. See
- linkgit:git-instaweb[1].
-
-interactive.singleKey::
- In interactive commands, allow the user to provide one-letter
- input with a single key (i.e., without hitting enter).
- Currently this is used by the `--patch` mode of
- linkgit:git-add[1], linkgit:git-checkout[1], linkgit:git-commit[1],
- linkgit:git-reset[1], and linkgit:git-stash[1]. Note that this
- setting is silently ignored if portable keystroke input
- is not available; requires the Perl module Term::ReadKey.
-
-interactive.diffFilter::
- When an interactive command (such as `git add --patch`) shows
- a colorized diff, git will pipe the diff through the shell
- command defined by this configuration variable. The command may
- mark up the diff further for human consumption, provided that it
- retains a one-to-one correspondence with the lines in the
- original diff. Defaults to disabled (no filtering).
-
-log.abbrevCommit::
- If true, makes linkgit:git-log[1], linkgit:git-show[1], and
- linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may
- override this option with `--no-abbrev-commit`.
-
-log.date::
- Set the default date-time mode for the 'log' command.
- Setting a value for log.date is similar to using 'git log''s
- `--date` option. See linkgit:git-log[1] for details.
-
-log.decorate::
- Print out the ref names of any commits that are shown by the log
- command. If 'short' is specified, the ref name prefixes 'refs/heads/',
- 'refs/tags/' and 'refs/remotes/' will not be printed. If 'full' is
- specified, the full ref name (including prefix) will be printed.
- If 'auto' is specified, then if the output is going to a terminal,
- the ref names are shown as if 'short' were given, otherwise no ref
- names are shown. This is the same as the `--decorate` option
- of the `git log`.
-
-log.follow::
- If `true`, `git log` will act as if the `--follow` option was used when
- a single <path> is given. This has the same limitations as `--follow`,
- i.e. it cannot be used to follow multiple files and does not work well
- on non-linear history.
-
-log.graphColors::
- A list of colors, separated by commas, that can be used to draw
- history lines in `git log --graph`.
-
-log.showRoot::
- If true, the initial commit will be shown as a big creation event.
- This is equivalent to a diff against an empty tree.
- Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
- normally hide the root commit will now show it. True by default.
-
-log.showSignature::
- If true, makes linkgit:git-log[1], linkgit:git-show[1], and
- linkgit:git-whatchanged[1] assume `--show-signature`.
-
-log.mailmap::
- If true, makes linkgit:git-log[1], linkgit:git-show[1], and
- linkgit:git-whatchanged[1] assume `--use-mailmap`.
-
-mailinfo.scissors::
- If true, makes linkgit:git-mailinfo[1] (and therefore
- linkgit:git-am[1]) act by default as if the --scissors option
- was provided on the command-line. When active, this features
- removes everything from the message body before a scissors
- line (i.e. consisting mainly of ">8", "8<" and "-").
-
-mailmap.file::
- The location of an augmenting mailmap file. The default
- mailmap, located in the root of the repository, is loaded
- first, then the mailmap file pointed to by this variable.
- The location of the mailmap file may be in a repository
- subdirectory, or somewhere outside of the repository itself.
- See linkgit:git-shortlog[1] and linkgit:git-blame[1].
-
-mailmap.blob::
- Like `mailmap.file`, but consider the value as a reference to a
- blob in the repository. If both `mailmap.file` and
- `mailmap.blob` are given, both are parsed, with entries from
- `mailmap.file` taking precedence. In a bare repository, this
- defaults to `HEAD:.mailmap`. In a non-bare repository, it
- defaults to empty.
-
-man.viewer::
- Specify the programs that may be used to display help in the
- 'man' format. See linkgit:git-help[1].
-
-man.<tool>.cmd::
- Specify the command to invoke the specified man viewer. The
- specified command is evaluated in shell with the man page
- passed as argument. (See linkgit:git-help[1].)
-
-man.<tool>.path::
- Override the path for the given tool that may be used to
- display help in the 'man' format. See linkgit:git-help[1].
-
-include::merge-config.txt[]
-
-mergetool.<tool>.path::
- Override the path for the given tool. This is useful in case
- your tool is not in the PATH.
-
-mergetool.<tool>.cmd::
- Specify the command to invoke the specified merge tool. The
- specified command is evaluated in shell with the following
- variables available: 'BASE' is the name of a temporary file
- containing the common base of the files to be merged, if available;
- 'LOCAL' is the name of a temporary file containing the contents of
- the file on the current branch; 'REMOTE' is the name of a temporary
- file containing the contents of the file from the branch being
- merged; 'MERGED' contains the name of the file to which the merge
- tool should write the results of a successful merge.
-
-mergetool.<tool>.trustExitCode::
- For a custom merge command, specify whether the exit code of
- the merge command can be used to determine whether the merge was
- successful. If this is not set to true then the merge target file
- timestamp is checked and the merge assumed to have been successful
- if the file has been updated, otherwise the user is prompted to
- indicate the success of the merge.
-
-mergetool.meld.hasOutput::
- Older versions of `meld` do not support the `--output` option.
- Git will attempt to detect whether `meld` supports `--output`
- by inspecting the output of `meld --help`. Configuring
- `mergetool.meld.hasOutput` will make Git skip these checks and
- use the configured value instead. Setting `mergetool.meld.hasOutput`
- to `true` tells Git to unconditionally use the `--output` option,
- and `false` avoids using `--output`.
-
-mergetool.keepBackup::
- After performing a merge, the original file with conflict markers
- can be saved as a file with a `.orig` extension. If this variable
- is set to `false` then this file is not preserved. Defaults to
- `true` (i.e. keep the backup files).
-
-mergetool.keepTemporaries::
- When invoking a custom merge tool, Git uses a set of temporary
- files to pass to the tool. If the tool returns an error and this
- variable is set to `true`, then these temporary files will be
- preserved, otherwise they will be removed after the tool has
- exited. Defaults to `false`.
-
-mergetool.writeToTemp::
- Git writes temporary 'BASE', 'LOCAL', and 'REMOTE' versions of
- conflicting files in the worktree by default. Git will attempt
- to use a temporary directory for these files when set `true`.
- Defaults to `false`.
+include::config/imap.txt[]
-mergetool.prompt::
- Prompt before each invocation of the merge resolution program.
-
-notes.mergeStrategy::
- Which merge strategy to choose by default when resolving notes
- conflicts. Must be one of `manual`, `ours`, `theirs`, `union`, or
- `cat_sort_uniq`. Defaults to `manual`. See "NOTES MERGE STRATEGIES"
- section of linkgit:git-notes[1] for more information on each strategy.
-
-notes.<name>.mergeStrategy::
- Which merge strategy to choose when doing a notes merge into
- refs/notes/<name>. This overrides the more general
- "notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section in
- linkgit:git-notes[1] for more information on the available strategies.
-
-notes.displayRef::
- The (fully qualified) refname from which to show notes when
- showing commit messages. The value of this variable can be set
- to a glob, in which case notes from all matching refs will be
- shown. You may also specify this configuration variable
- several times. A warning will be issued for refs that do not
- exist, but a glob that does not match any refs is silently
- ignored.
-+
-This setting can be overridden with the `GIT_NOTES_DISPLAY_REF`
-environment variable, which must be a colon separated list of refs or
-globs.
-+
-The effective value of "core.notesRef" (possibly overridden by
-GIT_NOTES_REF) is also implicitly added to the list of refs to be
-displayed.
-
-notes.rewrite.<command>::
- When rewriting commits with <command> (currently `amend` or
- `rebase`) and this variable is set to `true`, Git
- automatically copies your notes from the original to the
- rewritten commit. Defaults to `true`, but see
- "notes.rewriteRef" below.
-
-notes.rewriteMode::
- When copying notes during a rewrite (see the
- "notes.rewrite.<command>" option), determines what to do if
- the target commit already has a note. Must be one of
- `overwrite`, `concatenate`, `cat_sort_uniq`, or `ignore`.
- Defaults to `concatenate`.
-+
-This setting can be overridden with the `GIT_NOTES_REWRITE_MODE`
-environment variable.
-
-notes.rewriteRef::
- When copying notes during a rewrite, specifies the (fully
- qualified) ref whose notes should be copied. The ref may be a
- glob, in which case notes in all matching refs will be copied.
- You may also specify this configuration several times.
-+
-Does not have a default value; you must configure this variable to
-enable note rewriting. Set it to `refs/notes/commits` to enable
-rewriting for the default commit notes.
-+
-This setting can be overridden with the `GIT_NOTES_REWRITE_REF`
-environment variable, which must be a colon separated list of refs or
-globs.
-
-pack.window::
- The size of the window used by linkgit:git-pack-objects[1] when no
- window size is given on the command line. Defaults to 10.
-
-pack.depth::
- The maximum delta depth used by linkgit:git-pack-objects[1] when no
- maximum depth is given on the command line. Defaults to 50.
- Maximum value is 4095.
-
-pack.windowMemory::
- The maximum size of memory that is consumed by each thread
- in linkgit:git-pack-objects[1] for pack window memory when
- no limit is given on the command line. The value can be
- suffixed with "k", "m", or "g". When left unconfigured (or
- set explicitly to 0), there will be no limit.
-
-pack.compression::
- An integer -1..9, indicating the compression level for objects
- in a pack file. -1 is the zlib default. 0 means no
- compression, and 1..9 are various speed/size tradeoffs, 9 being
- slowest. If not set, defaults to core.compression. If that is
- not set, defaults to -1, the zlib default, which is "a default
- compromise between speed and compression (currently equivalent
- to level 6)."
-+
-Note that changing the compression level will not automatically recompress
-all existing objects. You can force recompression by passing the -F option
-to linkgit:git-repack[1].
-
-pack.island::
- An extended regular expression configuring a set of delta
- islands. See "DELTA ISLANDS" in linkgit:git-pack-objects[1]
- for details.
-
-pack.islandCore::
- Specify an island name which gets to have its objects be
- packed first. This creates a kind of pseudo-pack at the front
- of one pack, so that the objects from the specified island are
- hopefully faster to copy into any pack that should be served
- to a user requesting these objects. In practice this means
- that the island specified should likely correspond to what is
- the most commonly cloned in the repo. See also "DELTA ISLANDS"
- in linkgit:git-pack-objects[1].
-
-pack.deltaCacheSize::
- The maximum memory in bytes used for caching deltas in
- linkgit:git-pack-objects[1] before writing them out to a pack.
- This cache is used to speed up the writing object phase by not
- having to recompute the final delta result once the best match
- for all objects is found. Repacking large repositories on machines
- which are tight with memory might be badly impacted by this though,
- especially if this cache pushes the system into swapping.
- A value of 0 means no limit. The smallest size of 1 byte may be
- used to virtually disable this cache. Defaults to 256 MiB.
-
-pack.deltaCacheLimit::
- The maximum size of a delta, that is cached in
- linkgit:git-pack-objects[1]. This cache is used to speed up the
- writing object phase by not having to recompute the final delta
- result once the best match for all objects is found.
- Defaults to 1000. Maximum value is 65535.
-
-pack.threads::
- Specifies the number of threads to spawn when searching for best
- delta matches. This requires that linkgit:git-pack-objects[1]
- be compiled with pthreads otherwise this option is ignored with a
- warning. This is meant to reduce packing time on multiprocessor
- machines. The required amount of memory for the delta search window
- is however multiplied by the number of threads.
- Specifying 0 will cause Git to auto-detect the number of CPU's
- and set the number of threads accordingly.
-
-pack.indexVersion::
- Specify the default pack index version. Valid values are 1 for
- legacy pack index used by Git versions prior to 1.5.2, and 2 for
- the new pack index with capabilities for packs larger than 4 GB
- as well as proper protection against the repacking of corrupted
- packs. Version 2 is the default. Note that version 2 is enforced
- and this config option ignored whenever the corresponding pack is
- larger than 2 GB.
-+
-If you have an old Git that does not understand the version 2 `*.idx` file,
-cloning or fetching over a non native protocol (e.g. "http")
-that will copy both `*.pack` file and corresponding `*.idx` file from the
-other side may give you a repository that cannot be accessed with your
-older version of Git. If the `*.pack` file is smaller than 2 GB, however,
-you can use linkgit:git-index-pack[1] on the *.pack file to regenerate
-the `*.idx` file.
-
-pack.packSizeLimit::
- The maximum size of a pack. This setting only affects
- packing to a file when repacking, i.e. the git:// protocol
- is unaffected. It can be overridden by the `--max-pack-size`
- option of linkgit:git-repack[1]. Reaching this limit results
- in the creation of multiple packfiles; which in turn prevents
- bitmaps from being created.
- The minimum size allowed is limited to 1 MiB.
- The default is unlimited.
- Common unit suffixes of 'k', 'm', or 'g' are
- supported.
-
-pack.useBitmaps::
- When true, git will use pack bitmaps (if available) when packing
- to stdout (e.g., during the server side of a fetch). Defaults to
- true. You should not generally need to turn this off unless
- you are debugging pack bitmaps.
-
-pack.writeBitmaps (deprecated)::
- This is a deprecated synonym for `repack.writeBitmaps`.
-
-pack.writeBitmapHashCache::
- When true, git will include a "hash cache" section in the bitmap
- index (if one is written). This cache can be used to feed git's
- delta heuristics, potentially leading to better deltas between
- bitmapped and non-bitmapped objects (e.g., when serving a fetch
- between an older, bitmapped pack and objects that have been
- pushed since the last gc). The downside is that it consumes 4
- bytes per object of disk space, and that JGit's bitmap
- implementation does not understand it, causing it to complain if
- Git and JGit are used on the same repository. Defaults to false.
-
-pager.<cmd>::
- If the value is boolean, turns on or off pagination of the
- output of a particular Git subcommand when writing to a tty.
- Otherwise, turns on pagination for the subcommand using the
- pager specified by the value of `pager.<cmd>`. If `--paginate`
- or `--no-pager` is specified on the command line, it takes
- precedence over this option. To disable pagination for all
- commands, set `core.pager` or `GIT_PAGER` to `cat`.
-
-pretty.<name>::
- Alias for a --pretty= format string, as specified in
- linkgit:git-log[1]. Any aliases defined here can be used just
- as the built-in pretty formats could. For example,
- running `git config pretty.changelog "format:* %H %s"`
- would cause the invocation `git log --pretty=changelog`
- to be equivalent to running `git log "--pretty=format:* %H %s"`.
- Note that an alias with the same name as a built-in format
- will be silently ignored.
-
-protocol.allow::
- If set, provide a user defined default policy for all protocols which
- don't explicitly have a policy (`protocol.<name>.allow`). By default,
- if unset, known-safe protocols (http, https, git, ssh, file) have a
- default policy of `always`, known-dangerous protocols (ext) have a
- default policy of `never`, and all other protocols have a default
- policy of `user`. Supported policies:
-+
---
+include::config/index.txt[]
-* `always` - protocol is always able to be used.
+include::config/init.txt[]
-* `never` - protocol is never able to be used.
+include::config/instaweb.txt[]
-* `user` - protocol is only able to be used when `GIT_PROTOCOL_FROM_USER` is
- either unset or has a value of 1. This policy should be used when you want a
- protocol to be directly usable by the user but don't want it used by commands which
- execute clone/fetch/push commands without user input, e.g. recursive
- submodule initialization.
+include::config/interactive.txt[]
---
+include::config/log.txt[]
-protocol.<name>.allow::
- Set a policy to be used by protocol `<name>` with clone/fetch/push
- commands. See `protocol.allow` above for the available policies.
-+
-The protocol names currently used by git are:
-+
---
- - `file`: any local file-based path (including `file://` URLs,
- or local paths)
+include::config/mailinfo.txt[]
- - `git`: the anonymous git protocol over a direct TCP
- connection (or proxy, if configured)
+include::config/mailmap.txt[]
- - `ssh`: git over ssh (including `host:path` syntax,
- `ssh://`, etc).
+include::config/man.txt[]
- - `http`: git over http, both "smart http" and "dumb http".
- Note that this does _not_ include `https`; if you want to configure
- both, you must do so individually.
+include::config/merge.txt[]
- - any external helpers are named by their protocol (e.g., use
- `hg` to allow the `git-remote-hg` helper)
---
+include::config/mergetool.txt[]
-protocol.version::
- Experimental. If set, clients will attempt to communicate with a
- server using the specified protocol version. If unset, no
- attempt will be made by the client to communicate using a
- particular protocol version, this results in protocol version 0
- being used.
- Supported versions:
-+
---
+include::config/notes.txt[]
-* `0` - the original wire protocol.
+include::config/pack.txt[]
-* `1` - the original wire protocol with the addition of a version string
- in the initial response from the server.
+include::config/pager.txt[]
-* `2` - link:technical/protocol-v2.html[wire protocol version 2].
+include::config/pretty.txt[]
---
+include::config/protocol.txt[]
-include::pull-config.txt[]
+include::config/pull.txt[]
-include::push-config.txt[]
+include::config/push.txt[]
-include::rebase-config.txt[]
+include::config/rebase.txt[]
-include::receive-config.txt[]
+include::config/receive.txt[]
remote.pushDefault::
The remote to push to by default. Overrides