--commit::
--no-commit::
	Perform the merge and commit the result. This option can
	be used to override --no-commit.
+
With --no-commit perform the merge but pretend the merge
failed and do not autocommit, to give the user a chance to
inspect and further tweak the merge result before committing.

--edit::
-e::
--no-edit::
	Invoke an editor before committing successful mechanical merge to
	further edit the auto-generated merge message, so that the user
	can explain and justify the merge. The `--no-edit` option can be
	used to accept the auto-generated message (this is generally
	discouraged). The `--edit` (or `-e`) option is still useful if you are
	giving a draft message with the `-m` option from the command line
	and want to edit it in the editor.
+
Older scripts may depend on the historical behaviour of not allowing the
user to edit the merge log message. They will see an editor opened when
they run `git merge`. To make it easier to adjust such scripts to the
updated behaviour, the environment variable `GIT_MERGE_AUTOEDIT` can be
set to `no` at the beginning of them.

--ff::
	When the merge resolves as a fast-forward, only update the branch
	pointer, without creating a merge commit.  This is the default
	behavior.

--no-ff::
	Create a merge commit even when the merge resolves as a
	fast-forward.  This is the default behaviour when merging an
	annotated (and possibly signed) tag.

--ff-only::
	Refuse to merge and exit with a non-zero status unless the
	current `HEAD` is already up-to-date or the merge can be
	resolved as a fast-forward.

--log[=<n>]::
--no-log::
	In addition to branch names, populate the log message with
	one-line descriptions from at most <n> actual commits that are being
	merged. See also linkgit:git-fmt-merge-msg[1].
+
With --no-log do not list one-line descriptions from the
actual commits being merged.


--stat::
-n::
--no-stat::
	Show a diffstat at the end of the merge. The diffstat is also
	controlled by the configuration option merge.stat.
+
With -n or --no-stat do not show a diffstat at the end of the
merge.

--squash::
--no-squash::
	Produce the working tree and index state as if a real
	merge happened (except for the merge information),
	but do not actually make a commit or
	move the `HEAD`, nor record `$GIT_DIR/MERGE_HEAD` to
	cause the next `git commit` command to create a merge
	commit.  This allows you to create a single commit on
	top of the current branch whose effect is the same as
	merging another branch (or more in case of an octopus).
+
With --no-squash perform the merge and commit the result. This
option can be used to override --squash.

-s <strategy>::
--strategy=<strategy>::
	Use the given merge strategy; can be supplied more than
	once to specify them in the order they should be tried.
	If there is no `-s` option, a built-in list of strategies
	is used instead ('git merge-recursive' when merging a single
	head, 'git merge-octopus' otherwise).

-X <option>::
--strategy-option=<option>::
	Pass merge strategy specific option through to the merge
	strategy.

--verify-signatures::
--no-verify-signatures::
	Verify that the commits being merged have good and trusted GPG signatures
	and abort the merge in case they do not.

--summary::
--no-summary::
	Synonyms to --stat and --no-stat; these are deprecated and will be
	removed in the future.

ifndef::git-pull[]
-q::
--quiet::
	Operate quietly. Implies --no-progress.

-v::
--verbose::
	Be verbose.

--progress::
--no-progress::
	Turn progress on/off explicitly. If neither is specified,
	progress is shown if standard error is connected to a terminal.
	Note that not all merge strategies may support progress
	reporting.

endif::git-pull[]
