git ブランチ切り替え時の「作業ファイルが持ち越される」挙動についてのメモ

直面した現象
git を学習中に、ブランチ切り替えの挙動で、自分のイメージと違うところがあったのでメモ。
ブランチを切り替える時に、切り替え前のブランチでコミットしていないと、編集していたファイルが切り替え後のブランチにもついてきてしまう。
つまり、切り替え後のブランチでファイルを開くと、切り替え前の編集内容がそのまま反映されてしまっていた。
自分のイメージでは、コミットをしなくてもブランチごとに状態が維持されると思っていたので、少し混乱した。
調べてみると、切り替え先のブランチでも同じファイルを編集している場合には、コンフリクトの警告が出るようだ。
今回は簡単な編集内容だったため、警告が出ずに持ち越されたのかもしれない。
基本的な対処法は2つ
ブランチを切り替える前に、
- ステージングとコミットを行う。(git add と git commit をする)
- または、git stash を使う。
「作業中だけどまだコミットしたくない、でもブランチを切り替えたい」という時に便利なコマンド。作業内容を一時的に退避させ、ブランチ切り替え後に元の作業状態へ復元できる。