git stash
main branchにて作業しますので、別のbranchにいる場合はmain branchに切り替えましょう。
その状態でVSCodeを開き、a.txtを以下のように編集します。
sample1
tarou
hello
world
この状態で、前章で作成したfeature1に切り替えようとするとエラーになるかと思います。
これはfeature1にてa.txtを編集しており、作業branchでもa.txtを編集していて、commitをしていない場合に、起こり得ます。
この時にcommitをすれば、問題なくbranchを切り替えることができるのですが、まだ作業が途中で、commitをしたくない場合は、git stashを使います。git stashをすると、変更分を一時保存することができます。
(-aは追跡していないファイルも全て取り込むオプションで、-mはstashする際のメッセージをつけるオプションです。)
git stash push -am "worldを追加(一時保存)"
stashすると、作業branchでの変更分が無くなったかと思います。
stashしたものは、以下のコマンドにて確認することができます。
上記コマンドにて、以下のようにstashしたものが表示されるかと思います。
もしstashしたものを元に戻す場合は、git stash applyを叩きます。applyする際は、どのstashを適応するか指定する必要があり、indexを指定します。indexは、git stash listを叩いた際に表示されるstash@{0}の0にあたります。以下のコマンドを叩きましょう。
再度stashしましょう。-mを省略した場合は、メッセージに最後のcommitメッセージがあてられます。
git stash listにて表示されるものを消したい場合は、git stash dropを叩きます。dropする際も同様にindexを指定します。現在2つのstashがあるかと思いますので、両方消しましょう。