title: Git lost local commited files after git checkout
body: <p>I was switching from a different branch so I can do a push. While doing the checkout the files were open in my editor which may have caused a permission denied error. Did git lose all my files? I dont know how to get them back. Here is what i did -
  The files are lost are 
  <code>js/Messages</code> directory 
  <code>templates/Messages</code> directory
  These were open in my editor when i was doing git operations</p>
  
  <pre><code>C:\Users\***\Documents\myproject&gt;git pull
  Password for 'https://********@bitbucket.org':
  Already up-to-date.
  
  C:\Users\***\Documents\myproject&gt;git checkout paymentmodule
  error: cannot stat 'www/js/Messages': Permission denied
  error: cannot stat 'www/js/Messages': Permission denied
  error: cannot stat 'www/templates/Messages': Permission denied
  
  C:\Users\***\Documents\myproject&gt;git checkout paymentmodule
  Switched to branch 'paymentmodule'
  
  C:\Users\***\Documents\myproject&gt;git push origin paymentmodule
  Password for 'https://******@bitbucket.org':
  To https://*******@bitbucket.org/********/myproject.git
   ! [rejected]        paymentmodule -&gt; paymentmodule (non-fast-forward)
  error: failed to push some refs to 'https://********@bitbucket.org/********/myproject.git'
  hint: Updates were rejected because the tip of your current branch is behind
  hint: its remote counterpart. Integrate the remote changes (e.g.
  hint: 'git pull ...') before pushing again.
  hint: See the 'Note about fast-forwards' in 'git push --help' for details.
  
  //THIS STEP WAS A MISTAKE
  C:\Users\***\Documents\myproject&gt;git fetch origin paymentmodule
  Password for 'https://********@bitbucket.org':
  From https://bitbucket.org/***********/myproject
   * branch            paymentmodule -&gt; FETCH_HEAD
  
  //This was what i wanted to do so I did it without reverting my previous step
  C:\Users\***\Documents\myproject&gt;git fetch origin paymentmodule:tmp
  Password for 'https://**********@bitbucket.org':
  From https://bitbucket.org/*******/myproject
   * [new branch]      paymentmodule -&gt; tmp
  
  C:\Users\***\Documents\myproject&gt;git rebase tmp
  First, rewinding head to replay your work on top of it...
  warning: unable to access 'www/templates/Messages/.gitattributes': Permission denied
  warning: unable to access 'www/templates/Messages/.gitattributes': Permission denied
  warning: unable to access 'www/templates/Messages/.gitattributes': Permission denied
  warning: unable to access 'www/templates/Messages/.gitattributes': Permission denied
  Applying: Implement chat services
  warning: unable to access 'www/templates/Messages/.gitattributes': Permission denied
  Using index info to reconstruct a base tree...
  .git/rebase-apply/patch:63: trailing whitespace.
  For instructions on this, start with the
  .git/rebase-apply/patch:586: trailing whitespace.
  #
  .git/rebase-apply/patch:588: trailing whitespace.
  #
  .git/rebase-apply/patch:613: trailing whitespace.
  
  .git/rebase-apply/patch:759: trailing whitespace.
  
  warning: unable to access 'www/templates/Messages/.gitattributes': Permission denied
  warning: squelched 348 whitespace errors
  warning: 353 lines add whitespace errors.
  Falling back to patching base and 3-way merge...
  error: cannot stat 'www/templates/Messages': Permission denied
  error: Failed to merge in the changes.
  Patch failed at 0001 Implement chat services
  The copy of the patch that failed is found in: .git/rebase-apply/patch
  
  When you have resolved this problem, run "git rebase --continue".
  If you prefer to skip this patch, run "git rebase --skip" instead.
  To check out the original branch and stop rebasing, run "git rebase --abort".
  
  //This was a mistake too
  C:\Users\***\Documents\myproject&gt;git rebase --skip
  
  C:\Users\***\Documents\myproject&gt;git rebase --abort
  No rebase in progress?
  </code></pre>
  
  <p><strong>EDIT:</strong></p>
  
  <p>I ran one more command with the following output. I am not sure what this means</p>
  
  <pre><code>C:\Users\***\Documents\myproject&gt;git fsck --no-reflog
  Checking object directories: 100% (256/256), done.
  dangling blob 8860babe2931ea1e9dbafaa589e7c4feb19f14c7
  dangling commit 1da3053dbe12d11e4ae65dc3a2ba720c9b272b7b
  dangling commit cd03cd391e3447be272d3b8307ddb49cd3de1189
  dangling blob c9648cae0b45ef174fa88aa5ad6b9008085a9766
  dangling blob 2bc76e285d27d6979cf47148711e7c91379910c8
  dangling blob 410f4c2f02192a56a9d4c0f01e847d85276799b4
  dangling commit 60b1d2f1e2b7f8bfa42d4d2f49857a1b66db8575
  dangling blob 949297fe49f427065fe0e74568af852e2796cc19
  dangling commit 50d44e0896b10d461629fc5bffe60ee26996d433
  dangling commit a8d4aa02b375cb3e04b90033a1a9d17697f6583d
  dangling commit f5b5c1a66f450010f30c352caa3baa2f5a3b6576
  dangling blob 5af70169556610abe956f748dc25af77494cc06e
  dangling blob 981d6a55406d8b2ec63f0952ac65ad1afc893d8a
  dangling commit d61db3516d2bbaf24efcf3fe9b644823bdc4a7ff
  </code></pre>
  
  <p>Do i have to write the entire code again!?</p>