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で消すことができる

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。