You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
6.3 KiB
177 lines
6.3 KiB
--commit:: |
|
--no-commit:: |
|
Perform the merge and commit the result. This option can |
|
be used to override --no-commit. |
|
+ |
|
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. |
|
|
|
--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. |
|
+ |
|
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. |
|
+ |
|
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. |
|
|
|
-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]. |
|
+ |
|
With --no-log do not list one-line descriptions from the |
|
actual commits being merged. |
|
|
|
--signoff:: |
|
--no-signoff:: |
|
Add Signed-off-by line by the committer at the end of the commit |
|
log message. The meaning of a signoff depends on the project, |
|
but it typically certifies that committer has |
|
the rights to submit this work under the same license and |
|
agrees to a Developer Certificate of Origin |
|
(see http://developercertificate.org/ for more information). |
|
+ |
|
With --no-signoff do not add a Signed-off-by line. |
|
|
|
--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. |
|
|
|
--no-verify:: |
|
This option bypasses the pre-merge and commit-msg hooks. |
|
See also linkgit:githooks[5]. |
|
|
|
-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 ('git merge-recursive' when merging a single |
|
head, 'git merge-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. |
|
|
|
--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, 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.
|
|
|