title: What is the difference between git rm --cached and git reset <file>?
body: <p>According to the <a href="https://git-scm.com/docs/git-rm/" rel="noreferrer" title="git rm documentation">git rm documentation</a>, </p>
  
  <pre><code>--cached
  Use this option to unstage and remove paths only from the index.    
  Working tree files, whether modified or not, will be left alone.
  </code></pre>
  
  <p>But according to <a href="https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things/" rel="noreferrer" title="undoing things">this resource</a> unstaging a file is done with</p>
  
  <pre><code>git reset HEAD &lt;file&gt;
  </code></pre>
  
  <p>What is the difference? Is there one?</p>