| `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. 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. | |
| `merge.defaultToUpstream`:: | |
| 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 `branch.<current branch>.merge` that name the | |
| branches at the remote named by `branch.<current-branch>.remote` | |
| are consulted, and then they are mapped via `remote.<remote>.fetch` | |
| to their corresponding remote-tracking branches, and the tips of | |
| these tracking branches are merged. Defaults to true. | |
| `merge.ff`:: | |
| 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 `false`, | |
| this variable tells Git to create an extra merge commit in such | |
| a case (equivalent to giving the `--no-ff` option from the command | |
| line). When set to `only`, only such fast-forward merges are | |
| allowed (equivalent to giving the `--ff-only` option from the | |
| command line). | |
| `merge.verifySignatures`:: | |
| If true, this is 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`:: | |
| What, if anything, to print between `ORIG_HEAD` and the merge result | |
| at the end of the merge. Possible values are: | |
| + | |
| -- | |
| `false`;; Show nothing. | |
| `true`;; Show `git diff --diffstat --summary ORIG_HEAD`. | |
| `compact`;; Show `git diff --compact-summary ORIG_HEAD`. | |
| -- | |
| + | |
| but any unrecognised value (e.g., a value added by a future version of | |
| Git) is taken as `true` instead of triggering an error. Defaults to | |
| `true`. | |
| `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. |