Document that merge strategies can now take their own options
Also document the recently added -Xtheirs, -Xours and -Xsubtree[=path] options to the merge-recursive strategy. Signed-off-by: Avery Pennarun <apenwarr@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e3cba962b1
commit
566c511195
@ -74,3 +74,8 @@ option can be used to override --squash.
|
||||
-v::
|
||||
--verbose::
|
||||
Be verbose.
|
||||
|
||||
-X <option>::
|
||||
--strategy-option=<option>::
|
||||
Pass merge strategy specific option through to the merge
|
||||
strategy.
|
||||
|
@ -1,6 +1,11 @@
|
||||
MERGE STRATEGIES
|
||||
----------------
|
||||
|
||||
The merge mechanism ('git-merge' and 'git-pull' commands) allows the
|
||||
backend 'merge strategies' to be chosen with `-s` option. Some strategies
|
||||
can also take their own options, which can be passed by giving `-X<option>`
|
||||
arguments to 'git-merge' and/or 'git-pull'.
|
||||
|
||||
resolve::
|
||||
This can only resolve two heads (i.e. the current branch
|
||||
and another branch you pulled from) using a 3-way merge
|
||||
@ -20,6 +25,27 @@ recursive::
|
||||
Additionally this can detect and handle merges involving
|
||||
renames. This is the default merge strategy when
|
||||
pulling or merging one branch.
|
||||
+
|
||||
The 'recursive' strategy can take the following options:
|
||||
|
||||
ours;;
|
||||
This option forces conflicting hunks to be auto-resolved cleanly by
|
||||
favoring 'our' version. Changes from the other tree that do not
|
||||
conflict with our side are reflected to the merge result.
|
||||
+
|
||||
This should not be confused with the 'ours' merge strategy, which does not
|
||||
even look at what the other tree contains at all. It discards everything
|
||||
the other tree did, declaring 'our' history contains all that happened in it.
|
||||
|
||||
theirs;;
|
||||
This is opposite of 'ours'.
|
||||
|
||||
subtree[=path];;
|
||||
This option is a more advanced form of 'subtree' strategy, where
|
||||
the strategy makes a guess on how two trees must be shifted to
|
||||
match with each other when merging. Instead, the specified path
|
||||
is prefixed (or stripped from the beginning) to make the shape of
|
||||
two trees to match.
|
||||
|
||||
octopus::
|
||||
This resolves cases with more than two heads, but refuses to do
|
||||
@ -33,7 +59,8 @@ ours::
|
||||
merge is always that of the current branch head, effectively
|
||||
ignoring all changes from all other branches. It is meant to
|
||||
be used to supersede old development history of side
|
||||
branches.
|
||||
branches. Note that this is different from the -Xours option to
|
||||
the 'recursive' merge strategy.
|
||||
|
||||
subtree::
|
||||
This is a modified recursive strategy. When merging trees A and
|
||||
|
Loading…
Reference in New Issue
Block a user