title: Git checkout and reset on Windows occasionally shows random files have changed
body: <p>Often when I do a checkout of a different branch, or a reset, I will get 'permission denied' errors from windows for one to a dozen files - but the particular files vary from run to run.  Here's the output from a test I just did, with GIT_TRACE=1.  The trace only added the one line before the error message:     </p>
  
  <pre>
  $ git checkout master
  trace: built-in: git 'checkout' 'master'
  error: git checkout-index: unable to create file dotnet/src/myfile.cs (Permission denied)
  D       dotnet/src/myfile.cs
  Switched to branch "master"
  </pre>
  
  <p>I'm pretty sure this is some race with a virus scanner or other indexing service on my machine.   If the race persisted, I could use sysinternals to see what process has the file handle open.   However, it happens very quickly, and I'm not aware of a tool that will show me this conflict.    Surprisingly, I haven't found anyone describing similar behavior.
  How do I make these errors stop, or diagnose the problem further?</p>
  
  <p><strong>I'm specifically looking to end the file access race by identifying whatever process is doing the simultaneous access.</strong>  So suggestions for a tool that shows which process has a file locked when an edit is denied would be very helpful.  I'm aware of 'unlocker' and similar tools which will show me what process holds a file locked for a period of time.  This doesn't work for this issue, because the process keeps the file locked for a very short period.  So the tool needs to collect the appropriate data without my intervention, as I'm too slow.  </p>