Monday, January 10, 2011

git-merge

GIT-MERGE(1)                      Git Manual                      GIT-MERGE(1)



NAME
git-merge - Join two or more development histories together

SYNOPSIS
git merge [-n] [--stat] [--no-commit] [--squash] [-s ]...
[--[no-]rerere-autoupdate] [-m ] ...
git merge HEAD ...


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 ( HEAD ...) 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 ....

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.

--ff, --no-ff
Do not generate a merge commit if the merge resolved as a
fast-forward, only update the branch pointer. This is the default
behavior of git-merge.

With --no-ff Generate a merge commit even if the merge resolved as
a fast-forward.

--log, --no-log
In addition to branch names, populate the log message with one-line
descriptions from the actual commits that are being merged.

With --no-log do not list one-line descriptions from the actual
commits being merged.

--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 or move the HEAD, nor 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.

--ff-only
Refuse to merge and exit with a non-zero status unless the current
HEAD is already up-to-date or the merge can be resolved as a
fast-forward.

-s , --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).

--summary, --no-summary
Synonyms to --stat and --no-stat; these are deprecated and will be
removed in the future.

-q, --quiet
Operate quietly.

-v, --verbose
Be verbose.

-X

No comments:

Post a Comment