From e8e9964de489412aae2c9b8420d2fab8b00e9d12 Mon Sep 17 00:00:00 2001 From: Thomas Ackermann Date: Tue, 27 Aug 2013 20:03:09 +0200 Subject: [PATCH] Improve section "Merging multiple trees" Remove unnecessary quoting. Simplify description of three-way merge. Signed-off-by: Jonathan Nieder Signed-off-by: Thomas Ackermann Signed-off-by: Junio C Hamano --- Documentation/user-manual.txt | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt index f481813be7..e65ac13ae3 100644 --- a/Documentation/user-manual.txt +++ b/Documentation/user-manual.txt @@ -4004,27 +4004,26 @@ to see what the top commit was. Merging multiple trees ---------------------- -Git helps you do a three-way merge, which you can expand to n-way by -repeating the merge procedure arbitrary times until you finally -"commit" the state. The normal situation is that you'd only do one -three-way merge (two parents), and commit it, but if you like to, you -can do multiple parents in one go. +Git can help you perform a three-way merge, which can in turn be +used for a many-way merge by repeating the merge procedure several +times. The usual situation is that you only do one three-way merge +(reconciling two lines of history) and commit the result, but if +you like to, you can merge several branches in one go. -To do a three-way merge, you need the two sets of "commit" objects -that you want to merge, use those to find the closest common parent (a -third "commit" object), and then use those commit objects to find the -state of the directory ("tree" object) at these points. +To perform a three-way merge, you start with the two commits you +want to merge, find their closest common parent (a third commit), +and compare the trees corresponding to these three commits. -To get the "base" for the merge, you first look up the common parent -of two commits with +To get the "base" for the merge, look up the common parent of two +commits: ------------------------------------------------- $ git merge-base ------------------------------------------------- -which will return you the commit they are both based on. You should -now look up the "tree" objects of those commits, which you can easily -do with (for example) +This prints the name of a commit they are both based on. You should +now look up the tree objects of those commits, which you can easily +do with ------------------------------------------------- $ git cat-file commit | head -1 -- 2.11.4.GIT