title: What's the difference between git reset --mixed, --soft, and --hard?
body: <p>I'm looking to split a commit up and not sure which reset option to use.</p>
  
  <p>I was looking at the page <a href="https://stackoverflow.com/questions/2530060/can-you-explain-to-me-git-reset-in-plain-english">In plain English, what does &quot;git reset&quot; do?</a>, but I realized I don't really understand what the git index or staging area is and thus the explanations didn't help.</p>
  
  <p>Also, the use cases for <code>--mixed</code> and <code>--soft</code> look the same to me in that answer (when you want to fix and recommit). Can someone break it down even more?  I realize <code>--mixed</code> is probably the option to go with, but I want to know <em>why</em>. Lastly, what about <code>--hard</code>?</p>
  
  <p>Can someone give me a workflow example of how selecting the 3 options would happen?</p>