現在、作業しているブランチをコミットせずに他のブランチで作業したい
そんな時にチェックアウトコマンドを実行するとコミットしていないのでブランチを切り替えることができずに困ってしまった!なんてことはないでしょうか?
このようなケースで利用できる便利なコマンドが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した作業を戻して削除することは可能ですが、明示的に戻して削除する作業内容を指定したほうが事故がないため安心です。
対象のしてはできる限り行うようにしましょう。