3 Perform the merge and commit the result. This option can
4 be used to override --no-commit.
6 With --no-commit perform the merge and stop just before creating
7 a merge commit, to give the user a chance to inspect and further
8 tweak the merge result before committing.
10 Note that fast-forward updates do not create a merge commit and
11 therefore there is no way to stop those merges with --no-commit.
12 Thus, if you want to ensure your branch is not changed or updated
13 by the merge command, use --no-ff with --no-commit.
18 Invoke an editor before committing successful mechanical merge to
19 further edit the auto-generated merge message, so that the user
20 can explain and justify the merge. The `--no-edit` option can be
21 used to accept the auto-generated message (this is generally
24 The `--edit` (or `-e`) option is still useful if you are
25 giving a draft message with the `-m` option from the command line
26 and want to edit it in the editor.
29 Older scripts may depend on the historical behaviour of not allowing the
30 user to edit the merge log message. They will see an editor opened when
31 they run `git merge`. To make it easier to adjust such scripts to the
32 updated behaviour, the environment variable `GIT_MERGE_AUTOEDIT` can be
33 set to `no` at the beginning of them.
36 When the merge resolves as a fast-forward, only update the branch
37 pointer, without creating a merge commit. This is the default
41 Create a merge commit even when the merge resolves as a
42 fast-forward. This is the default behaviour when merging an
43 annotated (and possibly signed) tag that is not stored in
44 its natural place in 'refs/tags/' hierarchy.
47 Refuse to merge and exit with a non-zero status unless the
48 current `HEAD` is already up to date or the merge can be
49 resolved as a fast-forward.
52 --gpg-sign[=<keyid>]::
53 GPG-sign the resulting merge commit. The `keyid` argument is
54 optional and defaults to the committer identity; if specified,
55 it must be stuck to the option without a space.
59 In addition to branch names, populate the log message with
60 one-line descriptions from at most <n> actual commits that are being
61 merged. See also linkgit:git-fmt-merge-msg[1].
63 With --no-log do not list one-line descriptions from the
64 actual commits being merged.
68 Add Signed-off-by line by the committer at the end of the commit
69 log message. The meaning of a signoff depends on the project,
70 but it typically certifies that committer has
71 the rights to submit this work under the same license and
72 agrees to a Developer Certificate of Origin
73 (see http://developercertificate.org/ for more information).
75 With --no-signoff do not add a Signed-off-by line.
80 Show a diffstat at the end of the merge. The diffstat is also
81 controlled by the configuration option merge.stat.
83 With -n or --no-stat do not show a diffstat at the end of the
88 Produce the working tree and index state as if a real merge
89 happened (except for the merge information), but do not actually
90 make a commit, move the `HEAD`, or record `$GIT_DIR/MERGE_HEAD`
91 (to cause the next `git commit` command to create a merge
92 commit). This allows you to create a single commit on top of
93 the current branch whose effect is the same as merging another
94 branch (or more in case of an octopus).
96 With --no-squash perform the merge and commit the result. This
97 option can be used to override --squash.
100 --strategy=<strategy>::
101 Use the given merge strategy; can be supplied more than
102 once to specify them in the order they should be tried.
103 If there is no `-s` option, a built-in list of strategies
104 is used instead ('git merge-recursive' when merging a single
105 head, 'git merge-octopus' otherwise).
108 --strategy-option=<option>::
109 Pass merge strategy specific option through to the merge
112 --verify-signatures::
113 --no-verify-signatures::
114 Verify that the tip commit of the side branch being merged is
115 signed with a valid key, i.e. a key that has a valid uid: in the
116 default trust model, this means the signing key has been signed by
117 a trusted key. If the tip commit of the side branch is not signed
118 with a valid key, the merge is aborted.
122 Synonyms to --stat and --no-stat; these are deprecated and will be
123 removed in the future.
128 Operate quietly. Implies --no-progress.
136 Turn progress on/off explicitly. If neither is specified,
137 progress is shown if standard error is connected to a terminal.
138 Note that not all merge strategies may support progress
143 --allow-unrelated-histories::
144 By default, `git merge` command refuses to merge histories
145 that do not share a common ancestor. This option can be
146 used to override this safety when merging histories of two
147 projects that started their lives independently. As that is
148 a very rare occasion, no configuration variable to enable
149 this by default exists and will not be added.