title: Why does Git write to my files?
body: <p>I have a few source files in a Git repo, <code>main.c</code> and some others. I use Vim to edit these files.</p>
  
  <p>Say I'm editing <code>main.c</code>. I make a change, tell Vim to write-out, then switch to a terminal (without killing Vim) and commit/push. If I go back to Vim with <code>main.c</code> and try to write-out again, I receive this warning:</p>
  
  <pre><code>WARNING: The file has been changed since reading it!!!
  Do you really want to write to it (y/n)?
  </code></pre>
  
  <p>How does committing/pushing modify my source files? Why?</p>