Git merging one branch into another is a two way merge?

EMiller picture EMiller · Mar 6, 2013 · Viewed 86k times · Source

My git repo looks like this:

         _ branch_a
        /
master /
        \_ branch_b

Now I want to merge branch_b into branch_a, not either branch into master.

So, I did

git checkout branch_a
git merge branch_b

And git went and found a couple of conflicts.

When I do git mergetool using meld what I get on the console is

 {local}: modified file
 {remote}: modified file

and a window showing only LOCAL and REMOTE.

What I want to know is:

  1. Why isn't the shared base of what was in master shown?

  2. Between LOCAL and REMOTE, which one am I supposed to edit?

Answer

iberbeu picture iberbeu · Mar 6, 2013

If you merge a branch A into a branch B the conflicts that you get come from the difference between both branches and not from the difference with master. executing git diff in A or B will give you however the diff with mastere since it is the ancestor

Normally the local branch should be the one you are merging into and the remote the one you want to merge. Anyway in your computer you will only have one copy of the file so just modify it