title: Is it possible to undo `git checkout -- .` to retrieve unstagged changes
body: <p>Accidentally, I did <code>git checkout -- .</code> and lost one week of work. I tried <code>git reflog</code>, but there isn't a ref point with the unstagged changes that I  wiped out. </p>
  
  <p>Is it possible to undo <code>git checkout -- .</code> (git checkout double dash)</p>
  
  <p>What about using git object to recover such things? Does git take snapshots of the repository even if there wasn't a <code>git commit</code>?</p>