merge.conflictstyle::
	Specify the style in which conflicted hunks are written out to
	working tree files upon merge.  The default is "merge", which
	shows a `<<<<<<<` conflict marker, changes made by one side,
	a `=======` marker, changes made by the other side, and then
	a `>>>>>>>` marker.  An alternate style, "diff3", adds a `|||||||`
	marker and the original text before the `=======` marker.

merge.log::
	In addition to branch names, populate the log message with at
	most the specified number of one-line descriptions from the
	actual commits that are being merged.  Defaults to false, and
	true is a synonym for 20.

merge.renameLimit::
	The number of files to consider when performing rename detection
	during a merge; if not specified, defaults to the value of
	diff.renameLimit.

merge.renormalize::
	Tell git that canonical representation of files in the
	repository has changed over time (e.g. earlier commits record
	text files with CRLF line endings, but recent ones use LF line
	endings).  In such a repository, git can convert the data
	recorded in commits to a canonical form before performing a
	merge to reduce unnecessary conflicts.  For more information,
	see section "Merging branches with differing checkin/checkout
	attributes" in 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.tool::
	Controls which merge resolution program is used by
	linkgit:git-mergetool[1].  Valid built-in values are: "kdiff3",
	"tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
	"diffuse", "ecmerge", "tortoisemerge", "p4merge", "araxis" and
	"opendiff".  Any other value is treated is custom merge tool
	and there must be a corresponding mergetool.<tool>.cmd option.

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.
