title: How could git reset --soft reset last commit without touching index file?
body: <p>This might be a noob question. </p>
  
  <p>Suppose I have a Git repo which already have some files in the staged area by using git add. and then I do a <code>git reset --soft @~</code></p>
  
  <p>I am happy to see some files I committed last time are put into staged area now.</p>
  
  <p>But how? I check <code>.git</code> folder. the only thing changed are ref of current branch. and one "ORIG_HEAD" which I think is not relevant. the most suspicious index file is not touched at all. and also can anyone tell me how to view the content of it? </p>
  
  <p>So how could git do this? Thanks.</p>