title: git checkout without deleting untracked files
body: <p><strong>repro</strong></p>
  
  <pre><code>mkdir gittest &amp;&amp; cd gittest
  git init
  touch file1 file2
  git add ./file1
  git add ./file2
  git commit -a -m "master init"
  git update-index --skip-worktree ./file2
  git rm --cached ./file2
  git commit -a -m "file2 removed from master"
  git checkout -b branch2
  git add ./file2
  git commit -a -m "file2 added to branch2 instead."
  git checkout master
  ls file2
  </code></pre>
  
  <p>--</p>
  
  <pre><code>ls: cannot access 'file2': No such file or directory
  </code></pre>
  
  <p>Why the bloody <code>git</code> is deleting <code>file2</code> when <code>master</code> is checked out when I already told it not to track <code>file2</code> in <code>master</code>. Is it a bug?</p>