Git merging one branch into another is a two way merge?
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
EMiller
Updated on March 07, 2020Comments
-
EMiller about 4 years
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
usingmeld
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:
Why isn't the shared base of what was in master shown?
Between LOCAL and REMOTE, which one am I supposed to edit?
-
qqx about 11 yearsIt's technically true that the
master
branch wouldn't be involved in that merge. But, the commit that master points to in that case would be since it is the common ancestor. -
iberbeu about 11 yearsThe diff of a branch (a or b) is taken from the comparisson with the ancestor (master in this case) that is true, but when you merge A into B the conflicts are given by those branches and not by master. That is what I meant. I edited my answer