title: git push overwrote my changes
body: <p>Me and one of my colleagues are working on a git master branch which has commit history as follows</p>
  
  <p>A -> B -> C -> D -> E -> F -> HEAD</p>
  
  <p>Now my colleague checked out the master branch at commit # "C" and started working making and committing local changes. In the meanwhile, I moved the master branch forward with commits "D" and "E". </p>
  
  <p>Later on my colleague pushed his changes via commit "F" <em>without</em> doing a pull and this commit  basically nuked my changes in commits "D" and "E". Is this expected ? why didn't git complain that his workspace is lagging that he should sync it to the HEAD before pushing his changes ?</p>