--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::
--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` 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.

--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.

--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[]
