Edited at

git stashをコミットもなしに消してしまった時の対応


git stash 消えた・・・ しかも、コミットしてない・・・

SourceTreeで変更の適用をしようとした瞬間、手元が狂って、「変更の削除」を選択。そのstashは返らないものに思われた・・・。

「また1から実装か・・・」と嘆いておりましたがぐぐったら以下の方法がヒット。

しかもコミットしてなくても使えます。git stash復元・復活が可能です。

git stash save で一時退避した変更を、誤って git stash clear で消してしまったときの回復法


方法

MacであればTerminalを開きます。

$ git fsck | awk '/dangling commit/ {print $3}'

と打ちます。

[shtr_t@localhost myproject]$ git fsck | awk '/dangling commit/ {print $3}'

Checking object directories: 100% (256/256), done.
Checking objects: 100% (93244/93244), done.
70a401ef9784b3cbb6697b6d335888728384fa62
[shtr_t@localhost myproject]$ git cherry-pick -n -m1 70a401ef9784b3cbb6697b6d335888728384fa62

※消したスタッシュが多ければ多いほどたくさん出るので、cherry-pickしつつ変更内容を確認する作業が必要になります。

スクリーンショット-2016-06-16-10.37.18.png

戻ったあぁあああああああ!


資料

git stashをコミットもなしに消してしまった時の対応