git stash

main branchにて作業しますので、別のbranchにいる場合はmain branchに切り替えましょう。

その状態でVSCodeを開き、a.txtを以下のように編集します。

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したものは、以下のコマンドにて確認することができます。

git stash list

上記コマンドにて、以下のように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があるかと思いますので、両方消しましょう。

Last updated