Home Explore Blog CI



git

2nd chunk of `Documentation/config/merge.adoc`
023bf4f788a9bf8ec9ebd28a47286893e1534eea30ad27e30000000100000f68
 equivalent to the `--verify-signatures` command
	line option. See linkgit:git-merge[1] for details.

include::fmt-merge-msg.adoc[]

`merge.renameLimit`::
	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.

`merge.renames`::
	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.

`merge.directoryRenames`::
	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. Possible values are:
+
--
`false`;; Directory rename detection is disabled, meaning that such new files will be
	left behind in the old directory.
`true`;; Directory rename detection is enabled, meaning that such new files will be
	moved into the new directory.
`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`.

`merge.renormalize`::
	Tell Git that canonical representation of files in the
	repository has changed over time (e.g. earlier commits record
	text files with _CRLF_ line endings, but recent ones use _LF_ line
	endings).  In such a repository, for each file where a
	three-way content merge is needed, 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 linkgit:gitattributes[5].

`merge.stat`::
	Whether to print the diffstat between `ORIG_HEAD` and the merge result
	at the end of the merge.  True by default.

`merge.autoStash`::
	When set to `true`, automatically create a temporary stash entry
	before the operation begins, and apply it after the operation
	ends.  This means that you can run 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 `--no-autostash` and
	`--autostash` options of linkgit:git-merge[1].
	Defaults to `false`.

`merge.tool`::
	Controls which merge tool is used by linkgit:git-mergetool[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.<tool>.cmd` variable is defined.

`merge.guitool`::
	Controls which merge tool is used by linkgit:git-mergetool[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.<guitool>.cmd` variable is defined.

include::{build_dir}/mergetools-merge.adoc[]

`merge.verbosity`::
	Controls the amount of output shown by the recursive merge
	strategy.  Level 0 outputs nothing except a final error
	message if conflicts were detected. Level 1 outputs only
	conflicts, 2 outputs conflicts and file changes.  Level 5 and
	above outputs debugging information.  The default is level 2.
	Can be overridden by the `GIT_MERGE_VERBOSITY` environment variable.

`merge.<driver>.name`::
	Defines a human-readable name for a custom low-level
	merge driver.  See linkgit:gitattributes[5] for details.

`merge.<driver>.driver`::
	Defines the command that implements a custom low-level
	merge driver.  See linkgit:gitattributes[5] for details.

`merge.<driver>.recursive`::
	Names a low-level merge driver to be used when
	performing an internal merge between common ancestors.
	See linkgit:gitattributes[5] for details.

Title: Git Merge Configuration Options
Summary
This section describes additional Git merge configuration options, including rename detection, directory rename detection, conflict resolution, merge tool settings, verbosity control, and custom merge driver definitions, which can be used to fine-tune the merge behavior in Git.