title: Undo change in git (not rewriting history)
body: <p>I made a change in a script and committed it. Then I made a few other changes, and pushed them to a remote repository and such.</p>
  
  <p>Then I realised that first change I mentioned was stupid, and want to undo it.. Can I "unapply" that commit, without manually copy/pasting the diff?</p>
  
  <p>As an example: I have two files, <code>a.py</code> and <code>b.py</code>:</p>
  
  <pre><code>Commit 1:
  I delete a function in a.py
  
  Commit 2:
  I change a few lines in b.py
  
  Commit 3:
  I change the docstring in a.py
  </code></pre>
  
  <p>Can I undo that function deletion, and make it appear as "commit 4" (rather than deleting commit 1)</p>