\&.*
.RS 4
Any of the http\&.* options above can be applied selectively to some URLs\&. For a config key to match a URL, each element of the config key is compared to that of the URL, in the following order:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
Scheme (e\&.g\&.,
\fBhttps\fR
in
\fBhttps://example\&.com/\fR)\&. This field must match exactly between the config key and the URL\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 2." 4.2
.\}
Host/domain name (e\&.g\&.,
\fBexample\&.com\fR
in
\fBhttps://example\&.com/\fR)\&. This field must match between the config key and the URL\&. It is possible to specify a
\fB*\fR
as part of the host name to match all subdomains at this level\&.
\fBhttps://*\&.example\&.com/\fR
for example would match
\fBhttps://foo\&.example\&.com/\fR, but not
\fBhttps://foo\&.bar\&.example\&.com/\fR\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 3." 4.2
.\}
Port number (e\&.g\&.,
\fB8080\fR
in
\fBhttp://example\&.com:8080/\fR)\&. This field must match exactly between the config key and the URL\&. Omitted port numbers are automatically converted to the correct default for the scheme before matching\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 4.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 4." 4.2
.\}
Path (e\&.g\&.,
\fBrepo\&.git\fR
in
\fBhttps://example\&.com/repo\&.git\fR)\&. The path field of the config key must match the path field of the URL either exactly or as a prefix of slash\-delimited path elements\&. This means a config key with path
\fBfoo/\fR
matches URL path
\fBfoo/bar\fR\&. A prefix can only match on a slash (\fB/\fR) boundary\&. Longer matches take precedence (so a config key with path
\fBfoo/bar\fR
is a better match to URL path
\fBfoo/bar\fR
than a config key with just path
\fBfoo/\fR)\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 5.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 5." 4.2
.\}
User name (e\&.g\&.,
\fBuser\fR
in
\fBhttps://user@example\&.com/repo\&.git\fR)\&. If the config key has a user name it must match the user name in the URL exactly\&. If the config key does not have a user name, that config key will match a URL with any user name (including none), but at a lower precedence than a config key with a user name\&.
.RE
.sp
The list above is ordered by decreasing precedence; a URL that matches a config key\(cqs path is preferred to one that matches its user name\&. For example, if the URL is
\fBhttps://user@example\&.com/foo/bar\fR
a config key match of
\fBhttps://example\&.com/foo\fR
will be preferred over a config key match of
\fBhttps://user@example\&.com\fR\&.
.sp
All URLs are normalized before attempting any matching (the password part, if embedded in the URL, is always ignored for matching purposes) so that equivalent URLs that are simply spelled differently will match properly\&. Environment variable settings always override any matches\&. The URLs that are matched against are those given directly to Git commands\&. This means any URLs visited as a result of a redirection do not participate in matching\&.
.RE
.PP
i18n\&.commitEncoding
.RS 4
Character encoding the commit messages are stored in; Git itself does not care per se, but this information is necessary e\&.g\&. when importing commits from emails or in the gitk graphical history browser (and possibly in other places in the future or in other porcelains)\&. See e\&.g\&.
\fBgit-mailinfo\fR(1)\&. Defaults to
\fIutf\-8\fR\&.
.RE
.PP
i18n\&.logOutputEncoding
.RS 4
Character encoding the commit messages are converted to when running
\fIgit log\fR
and friends\&.
.RE
.PP
imap\&.folder
.RS 4
The folder to drop the mails into, which is typically the Drafts folder\&. For example: "INBOX\&.Drafts", "INBOX/Drafts" or "[Gmail]/Drafts"\&. Required\&.
.RE
.PP
imap\&.tunnel
.RS 4
Command used to set up a tunnel to the IMAP server through which commands will be piped instead of using a direct network connection to the server\&. Required when imap\&.host is not set\&.
.RE
.PP
imap\&.host
.RS 4
A URL identifying the server\&. Use an
\fBimap://\fR
prefix for non\-secure connections and an
\fBimaps://\fR
prefix for secure connections\&. Ignored when imap\&.tunnel is set, but required otherwise\&.
.RE
.PP
imap\&.user
.RS 4
The username to use when logging in to the server\&.
.RE
.PP
imap\&.pass
.RS 4
The password to use when logging in to the server\&.
.RE
.PP
imap\&.port
.RS 4
An integer port number to connect to on the server\&. Defaults to 143 for imap:// hosts and 993 for imaps:// hosts\&. Ignored when imap\&.tunnel is set\&.
.RE
.PP
imap\&.sslverify
.RS 4
A boolean to enable/disable verification of the server certificate used by the SSL/TLS connection\&. Default is
\fBtrue\fR\&. Ignored when imap\&.tunnel is set\&.
.RE
.PP
imap\&.preformattedHTML
.RS 4
A boolean to enable/disable the use of html encoding when sending a patch\&. An html encoded patch will be bracketed with and have a content type of text/html\&. Ironically, enabling this option causes Thunderbird to send the patch as a plain/text, format=fixed email\&. Default is
\fBfalse\fR\&.
.RE
.PP
imap\&.authMethod
.RS 4
Specify the authentication method for authenticating with the IMAP server\&. If Git was built with the NO_CURL option, or if your curl version is older than 7\&.34\&.0, or if you\(cqre running git\-imap\-send with the
\fB\-\-no\-curl\fR
option, the only supported method is
\fICRAM\-MD5\fR\&. If this is not set then
\fIgit imap\-send\fR
uses the basic IMAP plaintext LOGIN command\&.
.RE
.PP
include\&.path, includeIf\&.\&.path
.RS 4
Special variables to include other configuration files\&. See the "CONFIGURATION FILE" section in the main
\fBgit-config\fR(1)
documentation, specifically the "Includes" and "Conditional Includes" subsections\&.
.RE
.PP
index\&.recordEndOfIndexEntries
.RS 4
Specifies whether the index file should include an "End Of Index Entry" section\&. This reduces index load time on multiprocessor machines but produces a message "ignoring EOIE extension" when reading the index using Git versions before 2\&.20\&. Defaults to
\fItrue\fR
if index\&.threads has been explicitly enabled,
\fIfalse\fR
otherwise\&.
.RE
.PP
index\&.recordOffsetTable
.RS 4
Specifies whether the index file should include an "Index Entry Offset Table" section\&. This reduces index load time on multiprocessor machines but produces a message "ignoring IEOT extension" when reading the index using Git versions before 2\&.20\&. Defaults to
\fItrue\fR
if index\&.threads has been explicitly enabled,
\fIfalse\fR
otherwise\&.
.RE
.PP
index\&.sparse
.RS 4
When enabled, write the index using sparse\-directory entries\&. This has no effect unless
\fBcore\&.sparseCheckout\fR
and
\fBcore\&.sparseCheckoutCone\fR
are both enabled\&. Defaults to
\fIfalse\fR\&.
.RE
.PP
index\&.threads
.RS 4
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
\fItrue\fR
will cause Git to auto\-detect the number of CPUs and set the number of threads accordingly\&. Specifying 1 or
\fIfalse\fR
will disable multithreading\&. Defaults to
\fItrue\fR\&.
.RE
.PP
index\&.version
.RS 4
Specify the version with which new index files should be initialized\&. This does not affect existing repositories\&. If
\fBfeature\&.manyFiles\fR
is enabled, then the default is 4\&.
.RE
.PP
index\&.skipHash
.RS 4
When enabled, do not compute the trailing hash for the index file\&. This accelerates Git commands that manipulate the index, such as
\fBgit add\fR,
\fBgit commit\fR, or
\fBgit status\fR\&. Instead of storing the checksum, write a trailing set of bytes with value zero, indicating that the computation was skipped\&.
.sp
If you enable
\fBindex\&.skipHash\fR, then Git clients older than 2\&.13\&.0 will refuse to parse the index and Git clients older than 2\&.40\&.0 will report an error during
\fBgit fsck\fR\&.
.RE
.PP
\fBinit\&.templateDir\fR
.RS 4
Specify the directory from which templates will be copied\&. (See the "TEMPLATE DIRECTORY" section of
\fBgit-init\fR(1)\&.)
.RE
.PP
\fBinit\&.defaultBranch\fR
.RS 4
Allows overriding the default branch name e\&.g\&. when initializing a new repository\&.
.RE
.PP
instaweb\&.browser
.RS 4
Specify the program that will be used to browse your working repository in gitweb\&. See
\fBgit-instaweb\fR(1)\&.
.RE
.PP
instaweb\&.httpd
.RS 4
The HTTP daemon command\-line to start gitweb on your working repository\&. See
\fBgit-instaweb\fR(1)\&.
.RE
.PP
instaweb\&.local
.RS 4
If true the web server started by
\fBgit-instaweb\fR(1)
will be bound to the local IP (127\&.0\&.0\&.1)\&.
.RE
.PP
instaweb\&.modulePath
.RS 4
The default module path for
\fBgit-instaweb\fR(1)
to use instead of /usr/lib/apache2/modules\&. Only used if httpd is Apache\&.
.RE
.PP
instaweb\&.port
.RS 4
The port number to bind the gitweb httpd to\&. See
\fBgit-instaweb\fR(1)\&.
.RE
.PP
interactive\&.singleKey
.RS 4
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
\fB\-\-patch\fR
mode of
\fBgit-add\fR(1),
\fBgit-checkout\fR(1),
\fBgit-restore\fR(1),
\fBgit-commit\fR(1),
\fBgit-reset\fR(1), and
\fBgit-stash\fR(1)\&.
.RE
.PP
interactive\&.diffFilter
.RS 4
When an interactive command (such as
\fBgit add \-\-patch\fR) 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)\&.
.RE
.PP
log\&.abbrevCommit
.RS 4
If true, makes
\fBgit-log\fR(1),
\fBgit-show\fR(1), and
\fBgit-whatchanged\fR(1)
assume
\fB\-\-abbrev\-commit\fR\&. You may override this option with
\fB\-\-no\-abbrev\-commit\fR\&.
.RE
.PP
log\&.date
.RS 4
Set the default date\-time mode for the
\fIlog\fR
command\&. Setting a value for log\&.date is similar to using
\fIgit log\fR\*(Aqs
\fB\-\-date\fR
option\&. See
\fBgit-log\fR(1)
for details\&.
.sp
If the format is set to "auto:foo" and the pager is in use, format "foo" will be used for the date format\&. Otherwise, "default" will be used\&.
.RE
.PP
log\&.decorate
.RS 4
Print out the ref names of any commits that are shown by the log command\&. If
\fIshort\fR
is specified, the ref name prefixes
\fIrefs/heads/\fR,
\fIrefs/tags/\fR
and
\fIrefs/remotes/\fR
will not be printed\&. If
\fIfull\fR
is specified, the full ref name (including prefix) will be printed\&. If
\fIauto\fR
is specified, then if the output is going to a terminal, the ref names are shown as if
\fIshort\fR
were given, otherwise no ref names are shown\&. This is the same as the
\fB\-\-decorate\fR
option of the
\fBgit log\fR\&.
.RE
.PP
log\&.initialDecorationSet
.RS 4
By default,
\fBgit log\fR
only shows decorations for certain known ref namespaces\&. If
\fIall\fR
is specified, then show all refs as decorations\&.
.RE
.PP
log\&.excludeDecoration
.RS 4
Exclude the specified patterns from the log decorations\&. This is similar to the
\fB\-\-decorate\-refs\-exclude\fR
command\-line option, but the config option can be overridden by the
\fB\-\-decorate\-refs\fR
option\&.
.RE
.PP
log\&.diffMerges
.RS 4
Set diff format to be used when
\fB\-\-diff\-merges=on\fR
is specified, see
\fB\-\-diff\-merges\fR
in
\fBgit-log\fR(1)
for details\&. Defaults to
\fBseparate\fR\&.
.RE
.PP
log\&.follow
.RS 4
If
\fBtrue\fR,
\fBgit log\fR
will act as if the
\fB\-\-follow\fR
option was used when a single is given\&. This has the same limitations as
\fB\-\-follow\fR, i\&.e\&. it cannot be used to follow multiple files and does not work well on non\-linear history\&.
.RE
.PP
log\&.graphColors
.RS 4
A list of colors, separated by commas, that can be used to draw history lines in
\fBgit log \-\-graph\fR\&.
.RE
.PP
log\&.showRoot
.RS 4
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
\fBgit-log\fR(1)
or
\fBgit-whatchanged\fR(1), which normally hide the root commit will now show it\&. True by default\&.
.RE
.PP
log\&.showSignature
.RS 4
If true, makes
\fBgit-log\fR(1),
\fBgit-show\fR(1), and
\fBgit-whatchanged\fR(1)
assume
\fB\-\-show\-signature\fR\&.
.RE
.PP
log\&.mailmap
.RS 4
If true, makes
\fBgit-log\fR(1),
\fBgit-show\fR(1), and
\fBgit-whatchanged\fR(1)
assume
\fB\-\-use\-mailmap\fR, otherwise assume
\fB\-\-no\-use\-mailmap\fR\&. True by default\&.
.RE
.PP
lsrefs\&.unborn
.RS 4
May be "advertise" (the default), "allow", or "ignore"\&. If "advertise", the server will respond to the client sending "unborn" (as described in
\fBgitprotocol-v2\fR(5)) and will advertise support for this feature during the protocol v2 capability advertisement\&. "allow" is the same as "advertise" except that the server will not advertise support for this feature; this is useful for load\-balanced servers that cannot be updated atomically (for example), since the administrator could configure "allow", then after a delay, configure "advertise"\&.
.RE
.PP
mailinfo\&.scissors
.RS 4
If true, makes
\fBgit-mailinfo\fR(1)
(and therefore
\fBgit-am\fR(1)) act by default as if the \-\-scissors option was provided on the command\-line\&. When active, this feature removes everything from the message body before a scissors line (i\&.e\&. consisting mainly of ">8", "8<" and "\-")\&.
.RE
.PP
mailmap\&.file
.RS 4
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
\fBgit-shortlog\fR(1)
and
\fBgit-blame\fR(1)\&.
.RE
.PP
mailmap\&.blob
.RS 4
Like
\fBmailmap\&.file\fR, but consider the value as a reference to a blob in the repository\&. If both
\fBmailmap\&.file\fR
and
\fBmailmap\&.blob\fR
are given, both are parsed, with entries from
\fBmailmap\&.file\fR
taking precedence\&. In a bare repository, this defaults to
\fBHEAD:\&.mailmap\fR\&. In a non\-bare repository, it defaults to empty\&.
.RE
.PP
maintenance\&.auto
.RS 4
This boolean config option controls whether some commands run
\fBgit maintenance run \-\-auto\fR
after doing their normal work\&. Defaults to true\&.
.RE
.PP
maintenance\&.strategy
.RS 4
This string config option provides a way to specify one of a few recommended schedules for background maintenance\&. This only affects which tasks are run during
\fBgit maintenance run \-\-schedule=X\fR
commands, provided no
\fB\-\-task=\fR
arguments are provided\&. Further, if a
\fBmaintenance\&.\&.schedule\fR
config value is set, then that value is used instead of the one provided by
\fBmaintenance\&.strategy\fR\&. The possible strategy strings are:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBnone\fR: This default setting implies no tasks are run at any schedule\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBincremental\fR: This setting optimizes for performing small maintenance activities that do not delete any data\&. This does not schedule the
\fBgc\fR
task, but runs the
\fBprefetch\fR
and
\fBcommit\-graph\fR
tasks hourly, the
\fBloose\-objects\fR
and
\fBincremental\-repack\fR
tasks daily, and the
\fBpack\-refs\fR
task weekly\&.
.RE
.RE
.PP
maintenance\&.\&.enabled
.RS 4
This boolean config option controls whether the maintenance task with name
\fB\fR
is run when no
\fB\-\-task\fR
option is specified to
\fBgit maintenance run\fR\&. These config values are ignored if a
\fB\-\-task\fR
option exists\&. By default, only
\fBmaintenance\&.gc\&.enabled\fR
is true\&.
.RE
.PP
maintenance\&.\&.schedule
.RS 4
This config option controls whether or not the given
\fB\fR
runs during a
\fBgit maintenance run \-\-schedule=\fR
command\&. The value must be one of "hourly", "daily", or "weekly"\&.
.RE
.PP
maintenance\&.commit\-graph\&.auto
.RS 4
This integer config option controls how often the
\fBcommit\-graph\fR
task should be run as part of
\fBgit maintenance run \-\-auto\fR\&. If zero, then the
\fBcommit\-graph\fR
task will not run with the
\fB\-\-auto\fR
option\&. A negative value will force the task to run every time\&. Otherwise, a positive value implies the command should run when the number of reachable commits that are not in the commit\-graph file is at least the value of
\fBmaintenance\&.commit\-graph\&.auto\fR\&. The default value is 100\&.
.RE
.PP
maintenance\&.loose\-objects\&.auto
.RS 4
This integer config option controls how often the
\fBloose\-objects\fR
task should be run as part of
\fBgit maintenance run \-\-auto\fR\&. If zero, then the
\fBloose\-objects\fR
task will not run with the
\fB\-\-auto\fR
option\&. A negative value will force the task to run every time\&. Otherwise, a positive value implies the command should run when the number of loose objects is at least the value of
\fBmaintenance\&.loose\-objects\&.auto\fR\&. The default value is 100\&.
.RE
.PP
maintenance\&.incremental\-repack\&.auto
.RS 4
This integer config option controls how often the
\fBincremental\-repack\fR
task should be run as part of
\fBgit maintenance run \-\-auto\fR\&. If zero, then the
\fBincremental\-repack\fR
task will not run with the
\fB\-\-auto\fR
option\&. A negative value will force the task to run every time\&. Otherwise, a positive value implies the command should run when the number of pack\-files not in the multi\-pack\-index is at least the value of
\fBmaintenance\&.incremental\-repack\&.auto\fR\&. The default value is 10\&.
.RE
.PP
man\&.viewer
.RS 4
Specify the programs that may be used to display help in the
\fIman\fR
format\&. See
\fBgit-help\fR(1)\&.
.RE
.PP
man\&.\&.cmd
.RS 4
Specify the command to invoke the specified man viewer\&. The specified command is evaluated in shell with the man page passed as an argument\&. (See
\fBgit-help\fR(1)\&.)
.RE
.PP
man\&.\&.path
.RS 4
Override the path for the given tool that may be used to display help in the
\fIman\fR
format\&. See
\fBgit-help\fR(1)\&.
.RE
.PP
merge\&.conflictStyle
.RS 4
Specify the style in which conflicted hunks are written out to working tree files upon merge\&. The default is "merge", which shows a
\fB<<<<<<<\fR
conflict marker, changes made by one side, a
\fB=======\fR
marker, changes made by the other side, and then a
\fB>>>>>>>\fR
marker\&. An alternate style, "diff3", adds a
\fB|||||||\fR
marker and the original text before the
\fB=======\fR
marker\&. The "merge" style tends to produce smaller conflict regions than diff3, both because of the exclusion of the original text, and because when a subset of lines match on the two sides, they are just pulled out of the conflict region\&. Another alternate style, "zdiff3", is similar to diff3 but removes matching lines on the two sides from the conflict region when those matching lines appear near either the beginning or end of a conflict region\&.
.RE
.PP
merge\&.defaultToUpstream
.RS 4
If merge is called without any commit argument, merge the upstream branches configured for the current branch by using their last observed values stored in their remote\-tracking branches\&. The values of the
\fBbranch\&.\&.merge\fR
that name the branches at the remote named by
\fBbranch\&.\&.remote\fR
are consulted, and then they are mapped via
\fBremote\&.\&.fetch\fR
to their corresponding remote\-tracking branches, and the tips of these tracking branches are merged\&. Defaults to true\&.
.RE
.PP
merge\&.ff
.RS 4
By default, Git does not create an extra merge commit when merging a commit that is a descendant of the current commit\&. Instead, the tip of the current branch is fast\-forwarded\&. When set to
\fBfalse\fR, this variable tells Git to create an extra merge commit in such a case (equivalent to giving the
\fB\-\-no\-ff\fR
option from the command line)\&. When set to
\fBonly\fR, only such fast\-forward merges are allowed (equivalent to giving the
\fB\-\-ff\-only\fR
option from the command line)\&.
.RE
.PP
merge\&.verifySignatures
.RS 4
If true, this is equivalent to the \-\-verify\-signatures command line option\&. See
\fBgit-merge\fR(1)
for details\&.
.RE
.PP
merge\&.branchdesc
.RS 4
In addition to branch names, populate the log message with the branch description text associated with them\&. Defaults to false\&.
.RE
.PP
merge\&.log
.RS 4
In addition to branch names, populate the log message with at most the specified number of one\-line descriptions from the actual commits that are being merged\&. Defaults to false, and true is a synonym for 20\&.
.RE
.PP
merge\&.suppressDest
.RS 4
By adding a glob that matches the names of integration branches to this multi\-valued configuration variable, the default merge message computed for merges into these integration branches will omit "into " from its title\&.
.sp
An element with an empty value can be used to clear the list of globs accumulated from previous configuration entries\&. When there is no
\fBmerge\&.suppressDest\fR
variable defined, the default value of
\fBmaster\fR
is used for backward compatibility\&.
.RE
.PP
merge\&.renameLimit
.RS 4
The number of files to consider in the exhaustive portion of rename detection during a merge\&. If not specified, defaults to the value of diff\&.renameLimit\&. If neither merge\&.renameLimit nor diff\&.renameLimit are specified, currently defaults to 7000\&. This setting has no effect if rename detection is turned off\&.
.RE
.PP
merge\&.renames
.RS 4
Whether Git detects renames\&. If set to "false", rename detection is disabled\&. If set to "true", basic rename detection is enabled\&. Defaults to the value of diff\&.renames\&.
.RE
.PP
merge\&.directoryRenames
.RS 4
Whether Git detects directory renames, affecting what happens at merge time to new files added to a directory on one side of history when that directory was renamed on the other side of history\&. If merge\&.directoryRenames is set to "false", directory rename detection is disabled, meaning that such new files will be left behind in the old directory\&. If set to "true", directory rename detection is enabled, meaning that such new files will be moved into the new directory\&. If set to "conflict", a conflict will be reported for such paths\&. If merge\&.renames is false, merge\&.directoryRenames is ignored and treated as false\&. Defaults to "conflict"\&.
.RE
.PP
merge\&.renormalize
.RS 4
Tell Git that canonical representation of files in the repository has changed over time (e\&.g\&. earlier commits record text files with CRLF line endings, but recent ones use LF line endings)\&. In such a repository, Git can convert the data recorded in commits to a canonical form before performing a merge to reduce unnecessary conflicts\&. For more information, see section "Merging branches with differing checkin/checkout attributes" in
\fBgitattributes\fR(5)\&.
.RE
.PP
merge\&.stat
.RS 4
Whether to print the diffstat between ORIG_HEAD and the merge result at the end of the merge\&. True by default\&.
.RE
.PP
merge\&.autoStash
.RS 4
When set to true, automatically create a temporary stash entry before the operation begins, and apply it after the operation ends\&. This means that you can run merge on a dirty worktree\&. However, use with care: the final stash application after a successful merge might result in non\-trivial conflicts\&. This option can be overridden by the
\fB\-\-no\-autostash\fR
and
\fB\-\-autostash\fR
options of
\fBgit-merge\fR(1)\&. Defaults to false\&.
.RE
.PP
merge\&.tool
.RS 4
Controls which merge tool is used by
\fBgit-mergetool\fR(1)\&. The list below shows the valid built\-in values\&. Any other value is treated as a custom merge tool and requires that a corresponding mergetool\&.\&.cmd variable is defined\&.
.RE
.PP
merge\&.guitool
.RS 4
Controls which merge tool is used by
\fBgit-mergetool\fR(1)
when the \-g/\-\-gui flag is specified\&. The list below shows the valid built\-in values\&. Any other value is treated as a custom merge tool and requires that a corresponding mergetool\&.\&.cmd variable is defined\&.
.PP
\fBaraxis\fR
.RS 4
Use Araxis Merge (requires a graphical session)
.RE
.PP
\fBbc\fR
.RS 4
Use Beyond Compare (requires a graphical session)
.RE
.PP
\fBbc3\fR
.RS 4
Use Beyond Compare (requires a graphical session)
.RE
.PP
\fBbc4\fR
.RS 4
Use Beyond Compare (requires a graphical session)
.RE
.PP
\fBcodecompare\fR
.RS 4
Use Code Compare (requires a graphical session)
.RE
.PP
\fBdeltawalker\fR
.RS 4
Use DeltaWalker (requires a graphical session)
.RE
.PP
\fBdiffmerge\fR
.RS 4
Use DiffMerge (requires a graphical session)
.RE
.PP
\fBdiffuse\fR
.RS 4
Use Diffuse (requires a graphical session)
.RE
.PP
\fBecmerge\fR
.RS 4
Use ECMerge (requires a graphical session)
.RE
.PP
\fBemerge\fR
.RS 4
Use Emacs\*(Aq Emerge
.RE
.PP
\fBexamdiff\fR
.RS 4
Use ExamDiff Pro (requires a graphical session)
.RE
.PP
\fBguiffy\fR
.RS 4
Use Guiffy\(cqs Diff Tool (requires a graphical session)
.RE
.PP
\fBgvimdiff\fR
.RS 4
Use gVim (requires a graphical session) with a custom layout (see
\fBgit help mergetool\fR\*(Aqs
\fBBACKEND SPECIFIC HINTS\fR
section)
.RE
.PP
\fBgvimdiff1\fR
.RS 4
Use gVim (requires a graphical session) with a 2 panes layout (LOCAL and REMOTE)
.RE
.PP
\fBgvimdiff2\fR
.RS 4
Use gVim (requires a graphical session) with a 3 panes layout (LOCAL, MERGED and REMOTE)
.RE
.PP
\fBgvimdiff3\fR
.RS 4
Use gVim (requires a graphical session) where only the MERGED file is shown
.RE
.PP
\fBkdiff3\fR
.RS 4
Use KDiff3 (requires a graphical session)
.RE
.PP
\fBmeld\fR
.RS 4
Use Meld (requires a graphical session) with optional
\fBauto merge\fR
(see
\fBgit help mergetool\fR\*(Aqs
\fBCONFIGURATION\fR
section)
.RE
.PP
\fBnvimdiff\fR
.RS 4
Use Neovim with a custom layout (see
\fBgit help mergetool\fR\*(Aqs
\fBBACKEND SPECIFIC HINTS\fR
section)
.RE
.PP
\fBnvimdiff1\fR
.RS 4
Use Neovim with a 2 panes layout (LOCAL and REMOTE)
.RE
.PP
\fBnvimdiff2\fR
.RS 4
Use Neovim with a 3 panes layout (LOCAL, MERGED and REMOTE)
.RE
.PP
\fBnvimdiff3\fR
.RS 4
Use Neovim where only the MERGED file is shown
.RE
.PP
\fBopendiff\fR
.RS 4
Use FileMerge (requires a graphical session)
.RE
.PP
\fBp4merge\fR
.RS 4
Use HelixCore P4Merge (requires a graphical session)
.RE
.PP
\fBsmerge\fR
.RS 4
Use Sublime Merge (requires a graphical session)
.RE
.PP
\fBtkdiff\fR
.RS 4
Use TkDiff (requires a graphical session)
.RE
.PP
\fBtortoisemerge\fR
.RS 4
Use TortoiseMerge (requires a graphical session)
.RE
.PP
\fBvimdiff\fR
.RS 4
Use Vim with a custom layout (see
\fBgit help mergetool\fR\*(Aqs
\fBBACKEND SPECIFIC HINTS\fR
section)
.RE
.PP
\fBvimdiff1\fR
.RS 4
Use Vim with a 2 panes layout (LOCAL and REMOTE)
.RE
.PP
\fBvimdiff2\fR
.RS 4
Use Vim with a 3 panes layout (LOCAL, MERGED and REMOTE)
.RE
.PP
\fBvimdiff3\fR
.RS 4
Use Vim where only the MERGED file is shown
.RE
.PP
\fBwinmerge\fR
.RS 4
Use WinMerge (requires a graphical session)
.RE
.PP
\fBxxdiff\fR
.RS 4
Use xxdiff (requires a graphical session)
.RE
.RE
.PP
merge\&.verbosity
.RS 4
Controls the amount of output shown by the recursive merge strategy\&. Level 0 outputs nothing except a final error message if conflicts were detected\&. Level 1 outputs only conflicts, 2 outputs conflicts and file changes\&. Level 5 and above outputs debugging information\&. The default is level 2\&. Can be overridden by the
\fBGIT_MERGE_VERBOSITY\fR
environment variable\&.
.RE
.PP
merge\&.\&.name
.RS 4
Defines a human\-readable name for a custom low\-level merge driver\&. See
\fBgitattributes\fR(5)
for details\&.
.RE
.PP
merge\&.\&.driver
.RS 4
Defines the command that implements a custom low\-level merge driver\&. See
\fBgitattributes\fR(5)
for details\&.
.RE
.PP
merge\&.\&.recursive
.RS 4
Names a low\-level merge driver to be used when performing an internal merge between common ancestors\&. See
\fBgitattributes\fR(5)
for details\&.
.RE
.PP
mergetool\&.\&.path
.RS 4
Override the path for the given tool\&. This is useful in case your tool is not in the PATH\&.
.RE
.PP
mergetool\&.\&.cmd
.RS 4
Specify the command to invoke the specified merge tool\&. The specified command is evaluated in shell with the following variables available:
\fIBASE\fR
is the name of a temporary file containing the common base of the files to be merged, if available;
\fILOCAL\fR
is the name of a temporary file containing the contents of the file on the current branch;
\fIREMOTE\fR
is the name of a temporary file containing the contents of the file from the branch being merged;
\fIMERGED\fR
contains the name of the file to which the merge tool should write the results of a successful merge\&.
.RE
.PP
mergetool\&.\&.hideResolved
.RS 4
Allows the user to override the global
\fBmergetool\&.hideResolved\fR
value for a specific tool\&. See
\fBmergetool\&.hideResolved\fR
for the full description\&.
.RE
.PP
mergetool\&.\&.trustExitCode
.RS 4
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 is assumed to have been successful if the file has been updated; otherwise, the user is prompted to indicate the success of the merge\&.
.RE
.PP
mergetool\&.meld\&.hasOutput
.RS 4
Older versions of
\fBmeld\fR
do not support the
\fB\-\-output\fR
option\&. Git will attempt to detect whether
\fBmeld\fR
supports
\fB\-\-output\fR
by inspecting the output of
\fBmeld \-\-help\fR\&. Configuring
\fBmergetool\&.meld\&.hasOutput\fR
will make Git skip these checks and use the configured value instead\&. Setting
\fBmergetool\&.meld\&.hasOutput\fR
to
\fBtrue\fR
tells Git to unconditionally use the
\fB\-\-output\fR
option, and
\fBfalse\fR
avoids using
\fB\-\-output\fR\&.
.RE
.PP
mergetool\&.meld\&.useAutoMerge
.RS 4
When the
\fB\-\-auto\-merge\fR
is given, meld will merge all non\-conflicting parts automatically, highlight the conflicting parts, and wait for user decision\&. Setting
\fBmergetool\&.meld\&.useAutoMerge\fR
to
\fBtrue\fR
tells Git to unconditionally use the
\fB\-\-auto\-merge\fR
option with
\fBmeld\fR\&. Setting this value to
\fBauto\fR
makes git detect whether
\fB\-\-auto\-merge\fR
is supported and will only use
\fB\-\-auto\-merge\fR
when available\&. A value of
\fBfalse\fR
avoids using
\fB\-\-auto\-merge\fR
altogether, and is the default value\&.
.RE
.PP
mergetool\&.\&.layout
.RS 4
Configure the split window layout for vimdiff\(cqs
\fB\fR, which is any of
\fBvimdiff\fR,
\fBnvimdiff\fR,
\fBgvimdiff\fR\&. Upon launching
\fBgit mergetool\fR
with
\fB\-\-tool=\fR
(or without
\fB\-\-tool\fR
if
\fBmerge\&.tool\fR
is configured as
\fB\fR), Git will consult
\fBmergetool\&.\&.layout\fR
to determine the tool\(cqs layout\&. If the variant\-specific configuration is not available,
\fBvimdiff\fR\*(Aqs is used as fallback\&. If that too is not available, a default layout with 4 windows will be used\&. To configure the layout, see the
\fBBACKEND SPECIFIC HINTS\fR
section in
\fBgit-mergetool\fR(1)\&.
.RE
.PP
mergetool\&.hideResolved
.RS 4
During a merge, Git will automatically resolve as many conflicts as possible and write the
\fIMERGED\fR
file containing conflict markers around any conflicts that it cannot resolve;
\fILOCAL\fR
and
\fIREMOTE\fR
normally represent the versions of the file from before Git\(cqs conflict resolution\&. This flag causes
\fILOCAL\fR
and
\fIREMOTE\fR
to be overwritten so that only the unresolved conflicts are presented to the merge tool\&. Can be configured per\-tool via the
\fBmergetool\&.\&.hideResolved\fR
configuration variable\&. Defaults to
\fBfalse\fR\&.
.RE
.PP
mergetool\&.keepBackup
.RS 4
After performing a merge, the original file with conflict markers can be saved as a file with a
\fB\&.orig\fR
extension\&. If this variable is set to
\fBfalse\fR
then this file is not preserved\&. Defaults to
\fBtrue\fR
(i\&.e\&. keep the backup files)\&.
.RE
.PP
mergetool\&.keepTemporaries
.RS 4
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
\fBtrue\fR, then these temporary files will be preserved; otherwise, they will be removed after the tool has exited\&. Defaults to
\fBfalse\fR\&.
.RE
.PP
mergetool\&.writeToTemp
.RS 4
Git writes temporary
\fIBASE\fR,
\fILOCAL\fR, and
\fIREMOTE\fR
versions of conflicting files in the worktree by default\&. Git will attempt to use a temporary directory for these files when set
\fBtrue\fR\&. Defaults to
\fBfalse\fR\&.
.RE
.PP
mergetool\&.prompt
.RS 4
Prompt before each invocation of the merge resolution program\&.
.RE
.PP
mergetool\&.guiDefault
.RS 4
Set
\fBtrue\fR
to use the
\fBmerge\&.guitool\fR
by default (equivalent to specifying the
\fB\-\-gui\fR
argument), or
\fBauto\fR
to select
\fBmerge\&.guitool\fR
or
\fBmerge\&.tool\fR
depending on the presence of a
\fBDISPLAY\fR
environment variable value\&. The default is
\fBfalse\fR, where the
\fB\-\-gui\fR
argument must be provided explicitly for the
\fBmerge\&.guitool\fR
to be used\&.
.RE
.PP
notes\&.mergeStrategy
.RS 4
Which merge strategy to choose by default when resolving notes conflicts\&. Must be one of
\fBmanual\fR,
\fBours\fR,
\fBtheirs\fR,
\fBunion\fR, or
\fBcat_sort_uniq\fR\&. Defaults to
\fBmanual\fR\&. See the "NOTES MERGE STRATEGIES" section of
\fBgit-notes\fR(1)
for more information on each strategy\&.
.sp
This setting can be overridden by passing the
\fB\-\-strategy\fR
option to
\fBgit-notes\fR(1)\&.
.RE
.PP
notes\&.