【Git】コミットしないでチェックアウトを行うstashコマンドをわかりやすく解説

GitHub

現在、作業しているブランチをコミットせずに他のブランチで作業したい

そんな時にチェックアウトコマンドを実行するとコミットしていないのでブランチを切り替えることができずに困ってしまった!なんてことはないでしょうか?

このようなケースで利用できる便利なコマンドがgit stashコマンドです

今回は現在の作業ブランチをコミットしないで保持できるstashコマンドについて紹介していきます

stashコマンド 一覧

stashコマンドは現在作業しているブランチを一時保存(退避)して別のブランチへの切り替えを可能にするコマンドです。

利用ケースとしては、現在対応している開発とは別の開発に急遽対応が必要となったときにがあります。

stashコマンドでの一時保存は複数できるので安心して利用しましょう。

現在のブランチの状態を一時保存(退避)する

現在のブランチの状態を一時保存(退避)するには以下のコマンドを実行します。

修正したファイルのみ一時保存

git stash

新規に追加したファイルを含んで一時保存

git stash -u

-uオプションをつけることで新規に追加したファイルも一緒に保存されるようになります。

一時保存時にメッセージをつける

git stash save "メッセージ"
git stash -u save "メッセージ"

saveを使用するとメッセージをつけて一時保存することができます。

ここで付けたメッセージはstashした一時保存一覧を表示させた際に確認することができるのでとても便利です。

一時保存(退避)した作業ブランチの一覧を確認する

一時保存(退避)した作業ブランチの一覧を確認

git stash list

一覧を取得すると以下のように表示されます

stash@{0}: WIP on main: cb12345 ....
stash@{1}: WIP on feature/branch: fe12345 ....
stash@{2}: WIP on develop: aa54321 ....

この後に紹介する各種コマンドではリスト出力の時に確認できる”stash@{0}“の部分を必要とするコマンドが多いので、ご自身の環境で確認しつつ作業してください。

一時保存(退避)した作業ブランチを戻す

直近のstashした作業を戻す

git stash apply

一時保存したstashを指定して作業を戻す

git stash apply stash@{0}

{}内の数字はgit stash listで表示させた一時保存したリストのうち、元に戻したい作業の数字を指定しましょう。

一時保存(退避)した作業を一覧から削除

削除する作業を指定する

git stash drop stash@{0}

{}内の数字はgit stash listで表示させた一時保存したリストのうち、削除したい作業の数字を指定しましょう。

また、“git stash drop”だけでも直近のstashした作業を削除することは可能ですが、明示的に削除する作業を指定したほうが事故がないため安心です。

基本的には削除するstashを指定してコマンドを実行するようにしましょう。

一時保存(退避)した作業ブランチを戻して削除する

一時保存(退避)した作業ブランチを戻して削除

git stash pop stash@{0}

{}内の数字はgit stash listで表示させた一時保存したリストのうち、戻して削除したい作業の数字を指定しましょう。

また、こちらのコマンドも“git stash pop”だけでも直近のstashした作業を戻して削除することは可能ですが、明示的に戻して削除する作業内容を指定したほうが事故がないため安心です。

対象のしてはできる限り行うようにしましょう。

タイトルとURLをコピーしました