mirror of
https://github.com/git/git.git
synced 2025-03-30 19:50:22 +00:00
Documentation: -merge and -pull: describe merge strategies.
... and give a couple of examples of running 'git pull' against local repository. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
810bf1f944
commit
3746501664
@ -52,10 +52,15 @@ install: man
|
|||||||
# 'include' dependencies
|
# 'include' dependencies
|
||||||
$(patsubst %.txt,%.1,$(wildcard git-diff-*.txt)): \
|
$(patsubst %.txt,%.1,$(wildcard git-diff-*.txt)): \
|
||||||
diff-format.txt diff-options.txt
|
diff-format.txt diff-options.txt
|
||||||
$(patsubst %,%.1,git-fetch git-pull git-push): pull-fetch-param.txt
|
|
||||||
$(patsubst %.txt,%.html,$(wildcard git-diff-*.txt)): \
|
$(patsubst %.txt,%.html,$(wildcard git-diff-*.txt)): \
|
||||||
diff-format.txt diff-options.txt
|
diff-format.txt diff-options.txt
|
||||||
|
|
||||||
|
$(patsubst %,%.1,git-fetch git-pull git-push): pull-fetch-param.txt
|
||||||
$(patsubst %,%.html,git-fetch git-pull git-push): pull-fetch-param.txt
|
$(patsubst %,%.html,git-fetch git-pull git-push): pull-fetch-param.txt
|
||||||
|
|
||||||
|
$(patsubst %,%.1,git-merge git-pull): merge-pull-opts.txt
|
||||||
|
$(patsubst %,%.html,git-merge git-pull): merge-pull-opts.txt
|
||||||
|
|
||||||
git.7: ../README
|
git.7: ../README
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
@ -8,7 +8,7 @@ git-merge - Grand Unified Merge Driver
|
|||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git-merge' [-n] [-s <strategy>]... <msg> <head> <remote> <remote>...
|
'git-merge' [-n] [--no-commit] [-s <strategy>]... <msg> <head> <remote> <remote>...
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
@ -19,14 +19,7 @@ which drives multiple merge strategy scripts.
|
|||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
-n::
|
include::merge-pull-opts.txt[]
|
||||||
Do not show diffstat at the end of the merge.
|
|
||||||
|
|
||||||
-s <strategy>::
|
|
||||||
use that merge strategy; can be given more than once to
|
|
||||||
specify them in the order they should be tried. If
|
|
||||||
there is no `-s` option, built-in list of strategies is
|
|
||||||
used instead.
|
|
||||||
|
|
||||||
<msg>::
|
<msg>::
|
||||||
The commit message to be used for the merge commit (in case
|
The commit message to be used for the merge commit (in case
|
||||||
|
@ -8,7 +8,7 @@ git-pull - Pull and merge from another repository.
|
|||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git-pull' <repository> <refspec>...
|
'git-pull' <options> <repository> <refspec>...
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
@ -32,6 +32,72 @@ include::pull-fetch-param.txt[]
|
|||||||
existing contents of $GIT_DIR/FETCH_HEAD. Without this
|
existing contents of $GIT_DIR/FETCH_HEAD. Without this
|
||||||
option old data in $GIT_DIR/FETCH_HEAD will be overwritten.
|
option old data in $GIT_DIR/FETCH_HEAD will be overwritten.
|
||||||
|
|
||||||
|
include::merge-pull-opts.txt[]
|
||||||
|
|
||||||
|
|
||||||
|
MERGE STRATEGIES
|
||||||
|
----------------
|
||||||
|
|
||||||
|
resolve::
|
||||||
|
This can only resolve two heads (i.e. the current branch
|
||||||
|
and another branch you pulled from) using 3-way merge
|
||||||
|
algorithm. It tries to carefully detect criss-cross
|
||||||
|
merge ambiguities and is considered generally safe and
|
||||||
|
fast. This is the default merge strategy when pulling
|
||||||
|
one branch.
|
||||||
|
|
||||||
|
recursive::
|
||||||
|
This can only resolve two heads using 3-way merge
|
||||||
|
algorithm. When there are more than one common
|
||||||
|
ancestors that can be used for 3-way merge, it creates a
|
||||||
|
merged tree of the common ancestores and uses that as
|
||||||
|
the reference tree for the 3-way merge. This has been
|
||||||
|
reported to result in fewer merge conflicts without
|
||||||
|
causing mis-merges by tests done on actual merge commits
|
||||||
|
taken from Linux 2.6 kernel development history.
|
||||||
|
Additionally this can detect and handle merges involving
|
||||||
|
renames.
|
||||||
|
|
||||||
|
octopus::
|
||||||
|
This resolves more than two-head case, but refuses to do
|
||||||
|
complex merge that needs manual resolution. It is
|
||||||
|
primarily meant to be used for bundling topic branch
|
||||||
|
heads together. This is the default merge strategy when
|
||||||
|
pulling more than one branch.
|
||||||
|
|
||||||
|
ours::
|
||||||
|
This resolves any number of heads, but the result of the
|
||||||
|
merge is always the current branch head. It is meant to
|
||||||
|
be used to supersede old development history of side
|
||||||
|
branches.
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
git pull, git pull origin::
|
||||||
|
Fetch the default head from the repository you cloned
|
||||||
|
from and merge it into your current branch.
|
||||||
|
|
||||||
|
git pull -s ours . obsolete::
|
||||||
|
Merge local branch `obsolete` into the current branch,
|
||||||
|
using `ours` merge strategy.
|
||||||
|
|
||||||
|
git pull . fixes enhancements::
|
||||||
|
Bundle local branch `fixes` and `enhancements` on top of
|
||||||
|
the current branch, making an Octopus merge.
|
||||||
|
|
||||||
|
git pull --no-commit . maint::
|
||||||
|
Merge local branch `maint` into the current branch, but
|
||||||
|
do not make a commit automatically. This can be used
|
||||||
|
when you want to include further changes to the merge,
|
||||||
|
or want to write your own merge commit message.
|
||||||
|
+
|
||||||
|
You should refrain from abusing this option to sneak substantial
|
||||||
|
changes into a merge commit. Small fixups like bumping
|
||||||
|
release/version name would be acceptable.
|
||||||
|
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
Written by Linus Torvalds <torvalds@osdl.org>
|
Written by Linus Torvalds <torvalds@osdl.org>
|
||||||
|
13
Documentation/merge-pull-opts.txt
Normal file
13
Documentation/merge-pull-opts.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
-n, --no-summary::
|
||||||
|
Do not show diffstat at the end of the merge.
|
||||||
|
|
||||||
|
--no-commit::
|
||||||
|
Perform the merge but pretend the merge failed and do
|
||||||
|
not autocommit.
|
||||||
|
|
||||||
|
-s <strategy>::
|
||||||
|
use that merge strategy; can be given more than once to
|
||||||
|
specify them in the order they should be tried. If
|
||||||
|
there is no `-s` option, built-in list of strategies is
|
||||||
|
used instead (`git-merge-resolve` when merging a single
|
||||||
|
head, `git-merge-octopus` otherwise).
|
Loading…
x
Reference in New Issue
Block a user