diff options
Diffstat (limited to 'Documentation/config/merge.adoc')
-rw-r--r-- | Documentation/config/merge.adoc | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/Documentation/config/merge.adoc b/Documentation/config/merge.adoc new file mode 100644 index 0000000000..15a4c14c38 --- /dev/null +++ b/Documentation/config/merge.adoc @@ -0,0 +1,140 @@ +`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. |