git-merge-tree(1) ================= NAME ---- git-merge-tree - Perform merge without touching index or working tree SYNOPSIS -------- [verse] 'git merge-tree' [--write-tree] [] 'git merge-tree' [--trivial-merge] (deprecated) [[NEWMERGE]] DESCRIPTION ----------- This command has a modern `--write-tree` mode and a deprecated `--trivial-merge` mode. With the exception of the <> section at the end, the rest of this documentation describes the modern `--write-tree` mode. Performs a merge, but does not make any new commits and does not read from or write to either the working tree or index. The performed merge will use the same features as the "real" linkgit:git-merge[1], including: * three way content merges of individual files * rename detection * proper directory/file conflict handling * recursive ancestor consolidation (i.e. when there is more than one merge base, creating a virtual merge base by merging the merge bases) * etc. After the merge completes, a new toplevel tree object is created. See `OUTPUT` below for details. OPTIONS ------- -z:: Do not quote filenames in the section, and end each filename with a NUL character rather than newline. Also begin the messages section with a NUL character instead of a newline. See <> below for more information. --name-only:: In the Conflicted file info section, instead of writing a list of (mode, oid, stage, path) tuples to output for conflicted files, just provide a list of filenames with conflicts (and do not list filenames multiple times if they have multiple conflicting stages). --[no-]messages:: Write any informational messages such as "Auto-merging " or CONFLICT notices to the end of stdout. If unspecified, the default is to include these messages if there are merge conflicts, and to omit them otherwise. --allow-unrelated-histories:: merge-tree will by default error out if the two branches specified share no common history. This flag can be given to override that check and make the merge proceed anyway. --merge-base=:: Instead of finding the merge-bases for and , specify a merge-base for the merge, and specifying multiple bases is currently not supported. This option is incompatible with `--stdin`. + As the merge-base is provided directly, and do not need to specify commits; trees are enough. -X