Skip to content
Snippets Groups Projects
merge-options.txt 7.07 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    --commit::
    --no-commit::
    	Perform the merge and commit the result. This option can
    	be used to override --no-commit.
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    ifdef::git-pull[]
    	Only useful when merging.
    endif::git-pull[]
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    +
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    With --no-commit perform the merge and stop just before creating
    a merge commit, to give the user a chance to inspect and further
    tweak the merge result before committing.
    +
    Note that fast-forward updates do not create a merge commit and
    therefore there is no way to stop those merges with --no-commit.
    Thus, if you want to ensure your branch is not changed or updated
    by the merge command, use --no-ff with --no-commit.
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    
    --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).
    ifndef::git-pull[]
    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.
    endif::git-pull[]
    +
    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.
    
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    --cleanup=<mode>::
    	This option determines how the merge message will be cleaned up before
    
    	committing. See linkgit:git-commit[1] for more details. In addition, if
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    	the '<mode>' is given a value of `scissors`, scissors will be appended
    	to `MERGE_MSG` before being passed on to the commit machinery in the
    	case of a merge conflict.
    
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    ifdef::git-merge[]
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    --ff::
    --no-ff::
    --ff-only::
    
    	Specifies how a merge is handled when the merged-in history is
    	already a descendant of the current history.  `--ff` is the
    	default unless merging an annotated (and possibly signed) tag
    	that is not stored in its natural place in the `refs/tags/`
    	hierarchy, in which case `--no-ff` is assumed.
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    endif::git-merge[]
    ifdef::git-pull[]
    --ff-only::
    	Only update to the new history if there is no divergent local
    	history.  This is the default when no method for reconciling
    	divergent histories is provided (via the --rebase=* flags).
    
    --ff::
    --no-ff::
    	When merging rather than rebasing, specifies how a merge is
    	handled when the merged-in history is already a descendant of
    	the current history.  If merging is requested, `--ff` is the
    	default unless merging an annotated (and possibly signed) tag
    	that is not stored in its natural place in the `refs/tags/`
    	hierarchy, in which case `--no-ff` is assumed.
    endif::git-pull[]
    
    +
    With `--ff`, when possible resolve the merge as a fast-forward (only
    update the branch pointer to match the merged branch; do not create a
    merge commit).  When not possible (when the merged-in history is not a
    descendant of the current history), create a merge commit.
    +
    With `--no-ff`, create a merge commit in all cases, even when the merge
    could instead be resolved as a fast-forward.
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    ifdef::git-merge[]
    
    +
    With `--ff-only`, resolve the merge as a fast-forward when possible.
    When not possible, refuse to merge and exit with a non-zero status.
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    endif::git-merge[]
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    
    
    -S[<keyid>]::
    --gpg-sign[=<keyid>]::
    
    --no-gpg-sign::
    
    	GPG-sign the resulting merge commit. The `keyid` argument is
    	optional and defaults to the committer identity; if specified,
    
    	it must be stuck to the option without a space. `--no-gpg-sign`
    	is useful to countermand both `commit.gpgSign` configuration variable,
    	and earlier `--gpg-sign`.
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    --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].
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    ifdef::git-pull[]
    	Only useful when merging.
    endif::git-pull[]
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    +
    With --no-log do not list one-line descriptions from the
    actual commits being merged.
    
    
    include::signoff-option.txt[]
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    
    --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, move the `HEAD`, or 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.
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    +
    With --squash, --commit is not allowed, and will fail.
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    ifdef::git-pull[]
    +
    Only useful when merging.
    endif::git-pull[]
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    
    
    --[no-]verify::
    	By default, the pre-merge and commit-msg hooks are run.
    	When `--no-verify` is given, these are bypassed.
    
    	See also linkgit:githooks[5].
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    ifdef::git-pull[]
    	Only useful when merging.
    endif::git-pull[]
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    -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
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    	is used instead (`ort` when merging a single head,
    	`octopus` otherwise).
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    
    -X <option>::
    --strategy-option=<option>::
    	Pass merge strategy specific option through to the merge
    	strategy.
    
    --verify-signatures::
    --no-verify-signatures::
    	Verify that the tip commit of the side branch being merged is
    	signed with a valid key, i.e. a key that has a valid uid: in the
    	default trust model, this means the signing key has been signed by
    	a trusted key.  If the tip commit of the side branch is not signed
    	with a valid key, the merge is aborted.
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    ifdef::git-pull[]
    +
    Only useful when merging.
    endif::git-pull[]
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    
    --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[]
    
    
    --autostash::
    --no-autostash::
    	Automatically create a temporary stash entry before the operation
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    	begins, record it in the special ref `MERGE_AUTOSTASH`
    	and apply it after the operation ends.  This means
    
    	that you can run the operation on a dirty worktree.  However, use
    	with care: the final stash application after a successful
    	merge might result in non-trivial conflicts.
    
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    --allow-unrelated-histories::
    	By default, `git merge` command refuses to merge histories
    	that do not share a common ancestor.  This option can be
    	used to override this safety when merging histories of two
    	projects that started their lives independently. As that is
    	a very rare occasion, no configuration variable to enable
    	this by default exists and will not be added.
    
    Jean-Noël Avila's avatar
    Jean-Noël Avila committed
    ifdef::git-pull[]
    +
    Only useful when merging.
    endif::git-pull[]