状況

修正中に、どうしても取り込みたいブランチがあったけど、まだCommitはしたくない。

対応方法

stashmergeapply

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

わからなくならないように適宜、削除する。