| `--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[<key-id>]`:: | |
| `--gpg-sign[=<key-id>]`:: | |
| `--no-gpg-sign`:: | |
| GPG-sign the resulting merge commit. The _<key-id>_ 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.adoc[] | |
| `--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. | |
| `--compact-summary`:: | |
| Show a compact-summary 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[] | |
| `--verify`:: | |
| `--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 or will be added. | |
| ifdef::git-pull[] | |
| + | |
| Only useful when merging. | |
| endif::git-pull[] |