web関連
【git】一時的にファイルを避難させるstashコマンド
developブランチで作業中にmasterブランチで急に作業がしたくなった時にstashコマンドを使うと作業内容を一時的に避難してブランチ間の移動ができるとのことなので備忘録
stashコマンドで一時的に編集内容を退避させる方法
git stash
はコミットしてないファイルがある状態でgit checkout
でブランチを移動しようとしたときに、編集内容を一時的に避難をしてくれるコマンド
例えば、test.txtをdevelopブランチで作業をしてて、ブランチを変えようとすると以下のエラーが出た
$ git checkout master
error: Your local changes to the following files would be overwritten by checkout:
projects/test.txt
Please commit your changes or stash them before you switch branches.
Aborting
要するに「ブランチを変える前にコミットするかstashしてね、じゃないとcheckoutで上書きされちゃうよ」ってこと
なのでstash
コマンドを使って避難をさせる
stashコマンドを使ってファイルを避難、ファイルの復元
stash
コマンドの具体的な使い方について書く
例:developブランチで作業中にmasterブランチに移動しようとして上述したエラーが出たという状態を想定
git stash
「Saved working directory and index state WIP on develop: aca957a update: init projects」というメッセージが表現される
git stash list
を使うと避難できているかどうかが確認できる
stash@{0}: WIP on develop: aca957a update: init projects
git checkout master
でmasterブランチで作業しコミット
作業が完了したのでgit checkout develop
でdevelopブランチに戻る
developブランチに戻ったとしても、stash
コマンドで一時的非難した作業内容は戻らないので以下のコマンドで作業内容を元に戻す
git stash pop
これで、元に戻る
同時にgit stash list
で確認をすると何も表示されなくなる
以上がstashの使い方
stash
を消したいときはgit stash clear
で消すことができる