状況
修正中に、どうしても取り込みたいブランチがあったけど、まだCommitはしたくない。
対応方法
stash
→merge
→apply
git stash save で一時的に保存する
git stash save
上記だと何ためにstash
するのかわからなくなるのでコメントを付けることが推奨される。
git stash save "任意のメッセージ"
実行すると、変更履歴から消えるが、新規作成したファイルは削除されないので、変更履歴に残り続ける。
なお、残り続けているファイルは退避できていないということなので、安易に消さないようにした方がいい。
※stash
は未追跡のファイルを退避してくれない。未追跡のファイルも含めたいときは-u
オプションを付ける必要がある。
git stash list で保存できているか確認する
git stash list
// => 「stash@{番号}」: On 「ブランチ名」: 「メッセージ」
上記のように表示できていれば問題ない。
作業を行う
ここで本来やりたかったことに着手する。
今回であれば取り込みたいブランチをマージする。
git stash apply で保存データを復旧する
git stash apply 復旧したいstash名
名前を省略すると、一番最新のstashを復旧されるので、最新のものを復旧する際は名前なしで問題ない。
復旧できたことが確認できればOK。
git stash drop で保存データを削除する
git stash drop
わからなくならないように適宜、削除する。