Raw
1 `--commit`::
2 `--no-commit`::
3 Perform the merge and commit the result. This option can
4 be used to override `--no-commit`.
5 ifdef::git-pull[]
6 Only useful when merging.
7 endif::git-pull[]
8 +
9 With `--no-commit` perform the merge and stop just before creating
10 a merge commit, to give the user a chance to inspect and further
11 tweak the merge result before committing.
12 +
13 Note that fast-forward updates do not create a merge commit and
14 therefore there is no way to stop those merges with `--no-commit`.
15 Thus, if you want to ensure your branch is not changed or updated
16 by the merge command, use `--no-ff` with `--no-commit`.
17
18 `--edit`::
19 `-e`::
20 `--no-edit`::
21 Invoke an editor before committing successful mechanical merge to
22 further edit the auto-generated merge message, so that the user
23 can explain and justify the merge. The `--no-edit` option can be
24 used to accept the auto-generated message (this is generally
25 discouraged).
26 ifndef::git-pull[]
27 The `--edit` (or `-e`) option is still useful if you are
28 giving a draft message with the `-m` option from the command line
29 and want to edit it in the editor.
30 endif::git-pull[]
31 +
32 Older scripts may depend on the historical behaviour of not allowing the
33 user to edit the merge log message. They will see an editor opened when
34 they run `git merge`. To make it easier to adjust such scripts to the
35 updated behaviour, the environment variable `GIT_MERGE_AUTOEDIT` can be
36 set to `no` at the beginning of them.
37
38 `--cleanup=<mode>`::
39 This option determines how the merge message will be cleaned up before
40 committing. See linkgit:git-commit[1] for more details. In addition, if
41 the _<mode>_ is given a value of `scissors`, scissors will be appended
42 to `MERGE_MSG` before being passed on to the commit machinery in the
43 case of a merge conflict.
44
45 ifdef::git-merge[]
46 `--ff`::
47 `--no-ff`::
48 `--ff-only`::
49 Specifies how a merge is handled when the merged-in history is
50 already a descendant of the current history. `--ff` is the
51 default unless merging an annotated (and possibly signed) tag
52 that is not stored in its natural place in the `refs/tags/`
53 hierarchy, in which case `--no-ff` is assumed.
54 endif::git-merge[]
55 ifdef::git-pull[]
56 `--ff-only`::
57 Only update to the new history if there is no divergent local
58 history. This is the default when no method for reconciling
59 divergent histories is provided (via the `--rebase` flags).
60
61 `--ff`::
62 `--no-ff`::
63 When merging rather than rebasing, specifies how a merge is
64 handled when the merged-in history is already a descendant of
65 the current history. If merging is requested, `--ff` is the
66 default unless merging an annotated (and possibly signed) tag
67 that is not stored in its natural place in the `refs/tags/`
68 hierarchy, in which case `--no-ff` is assumed.
69 endif::git-pull[]
70 +
71 With `--ff`, when possible resolve the merge as a fast-forward (only
72 update the branch pointer to match the merged branch; do not create a
73 merge commit). When not possible (when the merged-in history is not a
74 descendant of the current history), create a merge commit.
75 +
76 With `--no-ff`, create a merge commit in all cases, even when the merge
77 could instead be resolved as a fast-forward.
78 ifdef::git-merge[]
79 +
80 With `--ff-only`, resolve the merge as a fast-forward when possible.
81 When not possible, refuse to merge and exit with a non-zero status.
82 endif::git-merge[]
83
84 `-S[<key-id>]`::
85 `--gpg-sign[=<key-id>]`::
86 `--no-gpg-sign`::
87 GPG-sign the resulting merge commit. The _<key-id>_ argument is
88 optional and defaults to the committer identity; if specified,
89 it must be stuck to the option without a space. `--no-gpg-sign`
90 is useful to countermand both `commit.gpgSign` configuration variable,
91 and earlier `--gpg-sign`.
92
93 `--log[=<n>]`::
94 `--no-log`::
95 In addition to branch names, populate the log message with
96 one-line descriptions from at most _<n>_ actual commits that are being
97 merged. See also linkgit:git-fmt-merge-msg[1].
98 ifdef::git-pull[]
99 Only useful when merging.
100 endif::git-pull[]
101 +
102 With `--no-log` do not list one-line descriptions from the
103 actual commits being merged.
104
105 include::signoff-option.adoc[]
106
107 `--stat`::
108 `-n`::
109 `--no-stat`::
110 Show a diffstat at the end of the merge. The diffstat is also
111 controlled by the configuration option merge.stat.
112 +
113 With `-n` or `--no-stat` do not show a diffstat at the end of the
114 merge.
115
116 `--compact-summary`::
117 Show a compact-summary at the end of the merge.
118
119 `--squash`::
120 `--no-squash`::
121 Produce the working tree and index state as if a real merge
122 happened (except for the merge information), but do not actually
123 make a commit, move the `HEAD`, or record `$GIT_DIR/MERGE_HEAD`
124 (to cause the next `git commit` command to create a merge
125 commit). This allows you to create a single commit on top of
126 the current branch whose effect is the same as merging another
127 branch (or more in case of an octopus).
128 +
129 With `--no-squash` perform the merge and commit the result. This
130 option can be used to override `--squash`.
131 +
132 With `--squash`, `--commit` is not allowed, and will fail.
133 ifdef::git-pull[]
134 +
135 Only useful when merging.
136 endif::git-pull[]
137
138 `--verify`::
139 `--no-verify`::
140 By default, the pre-merge and commit-msg hooks are run.
141 When `--no-verify` is given, these are bypassed.
142 See also linkgit:githooks[5].
143 ifdef::git-pull[]
144 Only useful when merging.
145 endif::git-pull[]
146
147 `-s <strategy>`::
148 `--strategy=<strategy>`::
149 Use the given merge strategy; can be supplied more than
150 once to specify them in the order they should be tried.
151 If there is no `-s` option, a built-in list of strategies
152 is used instead (`ort` when merging a single head,
153 `octopus` otherwise).
154
155 `-X <option>`::
156 `--strategy-option=<option>`::
157 Pass merge strategy specific option through to the merge
158 strategy.
159
160 `--verify-signatures`::
161 `--no-verify-signatures`::
162 Verify that the tip commit of the side branch being merged is
163 signed with a valid key, i.e. a key that has a valid uid: in the
164 default trust model, this means the signing key has been signed by
165 a trusted key. If the tip commit of the side branch is not signed
166 with a valid key, the merge is aborted.
167 ifdef::git-pull[]
168 +
169 Only useful when merging.
170 endif::git-pull[]
171
172 `--summary`::
173 `--no-summary`::
174 Synonyms to `--stat` and `--no-stat`; these are deprecated and will be
175 removed in the future.
176
177 ifndef::git-pull[]
178 `-q`::
179 `--quiet`::
180 Operate quietly. Implies `--no-progress`.
181
182 `-v`::
183 `--verbose`::
184 Be verbose.
185
186 `--progress`::
187 `--no-progress`::
188 Turn progress on/off explicitly. If neither is specified,
189 progress is shown if standard error is connected to a terminal.
190 Note that not all merge strategies may support progress
191 reporting.
192
193 endif::git-pull[]
194
195 `--autostash`::
196 `--no-autostash`::
197 Automatically create a temporary stash entry before the operation
198 begins, record it in the ref `MERGE_AUTOSTASH`
199 and apply it after the operation ends. This means
200 that you can run the operation on a dirty worktree. However, use
201 with care: the final stash application after a successful
202 merge might result in non-trivial conflicts.
203
204 `--allow-unrelated-histories`::
205 By default, `git merge` command refuses to merge histories
206 that do not share a common ancestor. This option can be
207 used to override this safety when merging histories of two
208 projects that started their lives independently. As that is
209 a very rare occasion, no configuration variable to enable
210 this by default exists or will be added.
211 ifdef::git-pull[]
212 +
213 Only useful when merging.
214 endif::git-pull[]