git では通常、リポジトリと作業ディレクトリとが一組になっています。git clone をすると、作業ディレクトリの中に .git ディレクトリ(=リポジトリ)が作成されます。 そして、この作業ディレクトリの中でブランチを切り替えて作業するのが一般的かと思います。 さて、作業ディレクトリの中で何かの作業中に、別の割り込み作業が発生して、一時的にブランチを切り替えたくなったとしましょう。そんなときは、いったん現在のブランチに作業中の変更をコミットしておいてからブランチを切り替えたり、作業中の変更を git stash を使って保存してからブランチを切り替えたり、という操作をすることになります。 そういった操作が簡単に素早くできるのが git の特徴ではあります。しかしそれでも、そういった切り替えが多くなってくると、作業中の変更を失ってしまったり、現在のブランチを勘違いして作業してしまったり