I looked at Note about fast-forwards and know how a fast-forward
updates a branch. But I want to know how non fast-forward
updates a branch? Above doc says:
For example, suppose you and somebody else started at the same commit X, and you built a history leading to commit B while the other person built a history leading to commit A. The history looks like this:
B
/
---X---A
If you did non fast-forward update, the changes introduced by commit A will be lost, because everybody will now start building on top of B.
But losing changes introduced by A
is not clear for me. Does a non fast-forward
update overwrite
destination branch completely and remove A
from history? So history will looks like X -- B
. Or it simply tries to do a merge? Or another changes will occur?