| --commit:: |
| --no-commit:: |
| Perform the merge and commit the result. This option can |
| be used to override --no-commit. |
| ifdef::git-pull[] |
| Only useful when merging. |
| endif::git-pull[] |
| + |
| 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. |
| |
| --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. |
| |
| --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 |
| 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. |
| |
| ifdef::git-merge[] |
| --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. |
| 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. |
| 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. |
| endif::git-merge[] |
| |
| -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`. |
| |
| --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]. |
| ifdef::git-pull[] |
| Only useful when merging. |
| endif::git-pull[] |
| + |
| With --no-log do not list one-line descriptions from the |
| actual commits being merged. |
| |
| include::signoff-option.txt[] |
| |
| --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. |
| + |
| With --squash, --commit is not allowed, and will fail. |
| ifdef::git-pull[] |
| + |
| Only useful when merging. |
| endif::git-pull[] |
| |
| --[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]. |
| ifdef::git-pull[] |
| Only useful when merging. |
| endif::git-pull[] |
| |
| -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 (`ort` when merging a single head, |
| `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 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. |
| ifdef::git-pull[] |
| + |
| Only useful when merging. |
| endif::git-pull[] |
| |
| --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 |
| begins, record it in the 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. |
| |
| --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. |
| ifdef::git-pull[] |
| + |
| Only useful when merging. |
| endif::git-pull[] |