title: git revert and do not remove the pre-commit
body: <p>say, I have 3 commits, now I do not want release the commit 2 and 3. But I need those commit, because I may be release those feature in the future. So I can't use <code>git reset</code> since that will remove history commits, and the <code>git revert</code> require a commit range, are there any other easy way?
  See the below, I like the commit 1 as a new commit 4 behind the commit 3</p>
  
  <p><strong>1 &lt;- 2 &lt;- 3</strong></p>
  
  <p><strong>1 &lt;- 2 &lt;- 3 &lt;- 4(1)</strong></p>