title: Git: how to revert a branch merge without overwriting history?
body: <p>I have two branches: <code>master</code> and <code>opengl</code>. I recently finished implementation (or at least I thought so) of <code>opengl</code> branch and decided to merge it into <code>master</code>:</p>
  
  <pre><code>git checkout master
  git merge opengl
  git push
  </code></pre>
  
  <p>After I did this, several developers who are working on the <code>master</code> branch pulled my changes and it turned out that my implementation conflicted with some of their code. Therefore I would like to revert the merge operation on the <code>master</code> branch, but without overwriting history.</p>
  
  <p>Note that I would like to be able to merge the <code>opengl</code> branch into <code>master</code> eventually (after I fix all the bugs). Therefore simply checking out older version of <code>master</code> and committing it will not work - newly created commit will cancel my changes from <code>opengl</code> when I will try to merge it.</p>
  
  <p>Thank you.</p>