title: Git is not restoring the working branch when switching branches
body: <p>I have an issue where I want to branch off from an old revision but the check out of that branch is not removing files and folders that were only added after that branch in the revision history.</p>
  
  <p>Why is this, and how can I got back to a point in the revision history and check out the entire project restoring the state exactly as it appears in that revision?</p>
  
  <p>Here is how I'm doing it currently:</p>
  
  <pre><code>[add new folder lib/newlib to project, put some files in it]
  &gt; git add *
  &gt; git commit -a -m "new revision with folder lib/newlib/ and some new files"
  &gt; git tag old_version_tag {older revision hash}
  &gt; git branch old_version old_version_tag
  &gt; git co old_version
  &gt; ls lib
  newlib
  &gt; git status
  nothing to commit (working directory clean)
  &gt; rm -rf lib/newlib
  &gt; git status
  nothing to commit (working directory clean)
  </code></pre>
  
  <p>Is there a better way to do it?</p>