Why using checkout and reset naming for the file-level operations in git? : <p>After reading <a href="https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting/summary" rel="nofollow noreferrer">this</a> nice article on git Reset, Checkout, and Revert I still don't quite understand the connection between some commands naming and their behaviour. Let's take a look at the table below:</p>

<p><a href="https://i.stack.imgur.com/2r8AX.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/2r8AX.png" alt="enter image description here"></a></p>

<p>On the commit-level the naming-behaviour correspondences seem fine to me, but on the file-level instead of typing <code>git checkout &lt;some_file&gt;</code> I would rather go with <code>git reset &lt;some_file&gt;</code> because what we are essentially doing here is resetting.</p>

<p>And in for the unstaging procedure I would expect to have something like <code>git unstage &lt;some_file&gt;</code>. Much more understandable and nice.</p>

<p>So, is this weird naming for the file-level <code>checkout</code> and <code>unstage</code> is just a historical legacy or there is some logical reasons behind it?</p>
