結論
標題のとおりです。
$ git stash --abort
を誰もが一度は即座に実行するかと思いますが、そういうオプションは今のところ無いので、$ git reset --merge
で戻します。
補足
$ git stash pop
を実行した結果コンフリクトしたとします。
その後に $ git reset --merge
を実行することで $ git stash pop
は無かったことになりますが、その場合、stash はちゃんと元に戻っています*1。
考察
$ git stash
をするとき、どうしてもタイプ数を抑えたいので $ git stash --save "名前"
をしないことが多いです。が、そうすると stash がたまりまくってしまい、どれがどれだか分からなくなってしまいます。
stash は原則必ず戻すもの、という考えが守られていれば $ git stash pop
が適宜適切に行われ、$ git stash list
はいつも空になります。
が、そううまくはいかないもので、stash して寝て次の日になって、さらにそれを繰り返して、ということをしていると、ある日よく分からない大量の stash が $ git stash list
にてお目見えすることになります。
面倒でも $ git stash --save "名前"
をするのがよさそうです。あとはこまめに stash を掃除してあげたほうがよさそうです。
参考
*1:コンフリクトの解消はできたけど stash のデータが消えた、ということにはならない