I need to better understanding the branches merge procedure.
Following the next design:
It could be any lost of code or at the end the branch will have all the commits?
From my point of view not, the commits have each one its unique hash to be identified but we have had experienced at some moment some lost of code instead conflicts to resolve and we are not sure what we did wrong in the past and we don't want that happens again.
I'll appreciate clarifications.
we have had experienced at some moment some lost of code instead conflicts to resolve
Conflicts occurs only if there are concurrent changes since the last merge-base.
If changes occurs (since the last merge) only on one branch, merging that branch to its destination branch will result in overriding the destination branch content with the source branch content.
Try and remake those problematic merges with:
git config merge.conflictStyle diff3
That way, you will see the common ancestor as well as the source and destination code conflict.
See this merge conflict example.
Note also that merging
B does not mean the HEAD of branches
C are equals like the (
branch C(=A=B) could imply):
B remains at
C has one merge commit (result of the merge), and
A has not moved.