fetch_pack(): update sought->nr to reflect number of unique entries
[gitweb.git] / Documentation / merge-options.txt
index 637b53f898829af98153d60953434fa30e3df179..0bcbe0ac3c474ab12068f468476946b9db5ef3e8 100644 (file)
--q::
---quiet::
-       Operate quietly.
-
--v::
---verbose::
-       Be verbose.
+--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.
 
---stat::
-       Show a diffstat at the end of the merge. The diffstat is also
-       controlled by the configuration option merge.stat.
+--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.
 
--n::
---no-stat::
-       Do not show a diffstat at the end of the merge.
+--ff::
+       When the merge resolves as a fast-forward, only update the branch
+       pointer, without creating a merge commit.  This is the default
+       behavior.
 
---summary::
---no-summary::
-       Synonyms to --stat and --no-stat; these are deprecated and will be
-       removed in the future.
+--no-ff::
+       Create a merge commit even when the merge resolves as a
+       fast-forward.
 
---log::
-       In addition to branch names, populate the log message with
-       one-line descriptions from the actual commits that are being
-       merged.
+--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::
-       Do not list one-line descriptions from the actual commits being
-       merged.
+       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.
 
---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.
 
---commit::
-       Perform the merge and commit the result. This option can
-       be used to override --no-commit.
+--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, but do not actually make a commit or
+       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).
-
---no-squash::
-       Perform the merge and commit the result. This option can
-       be used to override --squash.
-
---no-ff::
-       Generate a merge commit even if the merge resolved as a
-       fast-forward.
-
---ff::
-       Do not generate a merge commit if the merge resolved as
-       a fast-forward, only update the branch pointer. This is
-       the default behavior of git-merge.
++
+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).
+       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[]