When you do a merge, both branches are combined NOT overwritten. Also they consider the commit time of the branches to decide which change to keep and which to discard. I dont know how this is going to work in binary files. After all git is designed to work with text files