Git does not push individual files one at a time, it pushes full commit trees, as in "that's how the whole project looked at one commit, and then it looked just like the other, and now it finally looks like that."
Drawn as a commit graph, this, for example, is the most linear:
...--D--E--F--G <-- master
, "", , "", , " " "" , , .. " ", :
...--D <-- master
commits E, F G. , - , D, H:
...--D--H <-- master
H : D E -through- G .
Git , , , master. git fetch , , , git merge commit M:
H
/ \
...
\ /
E
, , "" H:
...--D--H-E'-F'-G' <-- master
( E', F' G' " E, F G" , H - , , ).