SYNOPSIS
git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
[-s <strategy>] [-X <strategy-option>]
[--[no-]rerere-autoupdate] [-m <msg>] [<commit>…]
git merge <msg> HEAD <commit>…
git merge --abort
DESCRIPTION
Incorporates changes from the named commits (since the time their histories diverged from the current branch) into the current branch. This command is used by git pull to incorporate changes from another repository and can be used by hand to merge changes from one branch into another.
Assume the following history exists and the current branch is
"master":
A---B---C topic
/
D---E---F---G master
Then "git merge topic" will replay the changes made on the
topic branch since it diverged from master (i.e., E) until
its current commit (C) on top of master, and record the result
in a new commit along with the names of the two parent commits and
a log message from the user describing the changes.
A---B---C topic
/ \
D---E---F---G---H master
The second syntax (<msg> HEAD <commit>…) is supported for
historical reasons. Do not use it from the command line or in
new scripts. It is the same as git merge -m <msg> <commit>....
The third syntax ("git merge --abort") can only be run after the
merge has resulted in conflicts. git merge --abort will abort the
merge process and try to reconstruct the pre-merge state. However,
if there were uncommitted changes when the merge started (and
especially if those changes were further modified after the merge
was started), git merge --abort will in some cases be unable to
reconstruct the original (pre-merge) changes. Therefore:
Warning: Running git merge with uncommitted changes is discouraged: while possible, it leaves you in a state that is hard to back out of in the case of a conflict.
OPTIONS
- --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 but pretend the merge failed and do not autocommit, to give the user a chance to inspect and further tweak the merge result before committing.
- --edit
- --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-editoption can be used to accept the auto-generated message (this is generally discouraged). The--editoption is still useful if you are giving a draft message with the-moption from the command line and want to edit it in the editor.Older scripts may depend on the histor