Consider A to be the master branch and B to be the sub branch.
- Now create a readme.txt file and add some content i.e, "change 1" stage it and commit it.
- Now create another sub branch B, make some changes to readme.txt i,e append "change 2" to readme.txt and commit it.
- Switch back to Master branch A, now you'll not see any changes made by sub branch B. To reflect the same changes made by B merge from the master branch i.e, from B into A
- Once your are there in master branch A, append "change 3" to readme.txt file and commit it.
- Now checkout to sub branch B, append "change 4" to readme.txt and commit the changes that you have made
- Once when you were there in sub branch B, merging the master branch A into sub branch B causes Merge Conflicts
Since you'll not see the text "change 3" in readme.txt file from sub branch B, and you are not appending the text "change 4" to readme.txt file. Instead you are overwriting the readme.txt i.e, by merging the contents of the text readme.txt having "change 3" to the text "change 4"
From the above example both the properties holds good.