title: Does sparse-checkout act on tracked file?
body: <p>My local and remote server both are centos 7.<br>
  I tracked <code>README.md</code> in local repo with git version 1.8.3.1.When I revised <code>README.md</code> and push to remote bare repo, I don't want <code>README.md</code> to be checked out.<br>
  In remote repo,git version is 2.16.6,I set <code>post-receive</code> as below:  </p>
  
  <pre><code>while read oldrev newrev ref
  do
       if [[ $ref = refs/heads/"$BRANCH" ]];
          then
          git --work-tree="$DEPLOY_DIR"  --git-dir="$GIT_DIR" checkout -f
       fi
  done
  </code></pre>
  
  <p>In remote repo,I set <code>sparse-checkout</code> as below:  </p>
  
  <pre><code>/*
  !/README.md
  </code></pre>
  
  <p>I found <code>README.md</code> still there,and not modified.  </p>
  
  <p>Then,I revised <code>sparse-checkout</code> as below:  </p>
  
  <pre><code>!/README.md
  /*
  </code></pre>
  
  <p>I got <code>remote: error: Entry 'README.md' not uptodate. Cannot merge.</code></p>
  
  <p>which <code>sparse-checkout</code> is correct?Where is the problem?</p>