Documentation / merge-options.txton commit general improvements (43abf13)
   1--commit::
   2--no-commit::
   3        Perform the merge and commit the result. This option can
   4        be used to override --no-commit.
   5+
   6With --no-commit perform the merge and stop just before creating
   7a merge commit, to give the user a chance to inspect and further
   8tweak the merge result before committing.
   9+
  10Note that fast-forward updates do not create a merge commit and
  11therefore there is no way to stop those merges with --no-commit.
  12Thus, if you want to ensure your branch is not changed or updated
  13by the merge command, use --no-ff with --no-commit.
  14
  15--edit::
  16-e::
  17--no-edit::
  18        Invoke an editor before committing successful mechanical merge to
  19        further edit the auto-generated merge message, so that the user
  20        can explain and justify the merge. The `--no-edit` option can be
  21        used to accept the auto-generated message (this is generally
  22        discouraged).
  23ifndef::git-pull[]
  24The `--edit` (or `-e`) option is still useful if you are
  25giving a draft message with the `-m` option from the command line
  26and want to edit it in the editor.
  27endif::git-pull[]
  28+
  29Older scripts may depend on the historical behaviour of not allowing the
  30user to edit the merge log message. They will see an editor opened when
  31they run `git merge`. To make it easier to adjust such scripts to the
  32updated behaviour, the environment variable `GIT_MERGE_AUTOEDIT` can be
  33set to `no` at the beginning of them.
  34
  35--cleanup=<mode>::
  36        This option determines how the merge message will be cleaned up before
  37        commiting. See linkgit:git-commit[1] for more details. In addition, if
  38        the '<mode>' is given a value of `scissors`, scissors will be appended
  39        to `MERGE_MSG` before being passed on to the commit machinery in the
  40        case of a merge conflict.
  41
  42--ff::
  43--no-ff::
  44--ff-only::
  45        Specifies how a merge is handled when the merged-in history is
  46        already a descendant of the current history.  `--ff` is the
  47        default unless merging an annotated (and possibly signed) tag
  48        that is not stored in its natural place in the `refs/tags/`
  49        hierarchy, in which case `--no-ff` is assumed.
  50+
  51With `--ff`, when possible resolve the merge as a fast-forward (only
  52update the branch pointer to match the merged branch; do not create a
  53merge commit).  When not possible (when the merged-in history is not a
  54descendant of the current history), create a merge commit.
  55+
  56With `--no-ff`, create a merge commit in all cases, even when the merge
  57could instead be resolved as a fast-forward.
  58+
  59With `--ff-only`, resolve the merge as a fast-forward when possible.
  60When not possible, refuse to merge and exit with a non-zero status.
  61
  62-S[<keyid>]::
  63--gpg-sign[=<keyid>]::
  64        GPG-sign the resulting merge commit. The `keyid` argument is
  65        optional and defaults to the committer identity; if specified,
  66        it must be stuck to the option without a space.
  67
  68--log[=<n>]::
  69--no-log::
  70        In addition to branch names, populate the log message with
  71        one-line descriptions from at most <n> actual commits that are being
  72        merged. See also linkgit:git-fmt-merge-msg[1].
  73+
  74With --no-log do not list one-line descriptions from the
  75actual commits being merged.
  76
  77--signoff::
  78--no-signoff::
  79        Add Signed-off-by line by the committer at the end of the commit
  80        log message.  The meaning of a signoff depends on the project,
  81        but it typically certifies that committer has
  82        the rights to submit this work under the same license and
  83        agrees to a Developer Certificate of Origin
  84        (see http://developercertificate.org/ for more information).
  85+
  86With --no-signoff do not add a Signed-off-by line.
  87
  88--stat::
  89-n::
  90--no-stat::
  91        Show a diffstat at the end of the merge. The diffstat is also
  92        controlled by the configuration option merge.stat.
  93+
  94With -n or --no-stat do not show a diffstat at the end of the
  95merge.
  96
  97--squash::
  98--no-squash::
  99        Produce the working tree and index state as if a real merge
 100        happened (except for the merge information), but do not actually
 101        make a commit, move the `HEAD`, or record `$GIT_DIR/MERGE_HEAD`
 102        (to cause the next `git commit` command to create a merge
 103        commit).  This allows you to create a single commit on top of
 104        the current branch whose effect is the same as merging another
 105        branch (or more in case of an octopus).
 106+
 107With --no-squash perform the merge and commit the result. This
 108option can be used to override --squash.
 109+
 110With --squash, --commit is not allowed, and will fail.
 111
 112--no-verify::
 113        This option bypasses the pre-merge and commit-msg hooks.
 114        See also linkgit:githooks[5].
 115
 116-s <strategy>::
 117--strategy=<strategy>::
 118        Use the given merge strategy; can be supplied more than
 119        once to specify them in the order they should be tried.
 120        If there is no `-s` option, a built-in list of strategies
 121        is used instead ('git merge-recursive' when merging a single
 122        head, 'git merge-octopus' otherwise).
 123
 124-X <option>::
 125--strategy-option=<option>::
 126        Pass merge strategy specific option through to the merge
 127        strategy.
 128
 129--verify-signatures::
 130--no-verify-signatures::
 131        Verify that the tip commit of the side branch being merged is
 132        signed with a valid key, i.e. a key that has a valid uid: in the
 133        default trust model, this means the signing key has been signed by
 134        a trusted key.  If the tip commit of the side branch is not signed
 135        with a valid key, the merge is aborted.
 136
 137--summary::
 138--no-summary::
 139        Synonyms to --stat and --no-stat; these are deprecated and will be
 140        removed in the future.
 141
 142ifndef::git-pull[]
 143-q::
 144--quiet::
 145        Operate quietly. Implies --no-progress.
 146
 147-v::
 148--verbose::
 149        Be verbose.
 150
 151--progress::
 152--no-progress::
 153        Turn progress on/off explicitly. If neither is specified,
 154        progress is shown if standard error is connected to a terminal.
 155        Note that not all merge strategies may support progress
 156        reporting.
 157
 158endif::git-pull[]
 159
 160--allow-unrelated-histories::
 161        By default, `git merge` command refuses to merge histories
 162        that do not share a common ancestor.  This option can be
 163        used to override this safety when merging histories of two
 164        projects that started their lives independently. As that is
 165        a very rare occasion, no configuration variable to enable
 166        this by default exists and will not be added.