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
|
||||
$(patsubst %.txt,%.1,$(wildcard git-diff-*.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)): \
|
||||
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 %,%.1,git-merge git-pull): merge-pull-opts.txt
|
||||
$(patsubst %,%.html,git-merge git-pull): merge-pull-opts.txt
|
||||
|
||||
git.7: ../README
|
||||
|
||||
clean:
|
||||
|
@ -8,7 +8,7 @@ git-merge - Grand Unified Merge Driver
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git-merge' [-n] [-s <strategy>]... <msg> <head> <remote> <remote>...
|
||||
'git-merge' [-n] [--no-commit] [-s <strategy>]... <msg> <head> <remote> <remote>...
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
@ -19,14 +19,7 @@ which drives multiple merge strategy scripts.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-n::
|
||||
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.
|
||||
include::merge-pull-opts.txt[]
|
||||
|
||||
<msg>::
|
||||
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
|
||||
--------
|
||||
'git-pull' <repository> <refspec>...
|
||||
'git-pull' <options> <repository> <refspec>...
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
@ -32,6 +32,72 @@ include::pull-fetch-param.txt[]
|
||||
existing contents of $GIT_DIR/FETCH_HEAD. Without this
|
||||
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
|
||||
------
|
||||
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…
Reference in New Issue
Block a user