title: What's the difference between git switch and git checkout <branch>
body: <p>Git 2.23 <a href="https://github.com/git/git/blob/master/Documentation/RelNotes/2.23.0.txt" rel="noreferrer">introduces</a> a new command <code>git switch</code> -- after reading the docs, it seems pretty much the same as <code>git checkout &lt;branchname&gt;</code> can someone explain the difference or use case?</p>
  
  <blockquote>
    <p>Two new commands "git switch" and "git restore" are introduced to
       split "checking out a branch to work on advancing its history" and
       "checking out paths out of the index and/or a tree-ish to work on
       advancing the current history" out of the single "git checkout"
       command.</p>
  </blockquote>