Git スタッシュを誤って削除した場合の復旧方法
Takahiro Iwasa
2 min read
Git
It has been more than 3 years since this post was published.
Git スタッシュが誤って削除された場合でも、ファイルを復元できます。
コミット履歴出力
URL Copied!
次のコマンドでコミット履歴を出力してください。
git fsck | awk '/dangling commit/ {print $3}' >> commit_list.txt
以下のような結果が表示されます。
dangling commit bfebf68feeebf07a86d7e3e4da77962de67c14ee
dangling commit 86f4aec78bd51c80b0fd2d5d83963a2259dc72b4
dangling commit 48fd9f8f97a577bc8a87b133f6e1dd789a692bd0
dangling commit 64ff8c33fb878afb8bf5c99c1b8d8fdfaa1b1f3c
dangling commit bdff88e13803e6c7737691aa1fb6f1e038321966
...
...
...
コミットの要約出力
URL Copied!
以下のコマンドを実行して、コミットの要約を出力してください。
#!/bin/bash
while read line
do
git show $line
done < ./commit_list.txt
以下のような結果が表示されます。
commit bfebf68feeebf07a86d7e3e4da77962de67c14ee
Merge: b046240 5ee731a
Author: Takahiro Iwasa <[email protected]>
Date: Fri Feb 12 22:01:47 2016 +0900
On develop: 0212
復元したいコミット ID の特定
URL Copied!
日付や時刻、コミットメッセージなどを基に、上記の出力から復元したいコミット ID を特定してください。
復元
URL Copied!
以下のコマンドを実行して、コミット ID でコミットをチェリーピックしてください。
git cherry-pick -n -m1 <YOUR_COMMIT_ID>
まとめ
URL Copied!
誤ってスタッシュを削除してしまった場合、落ち着いて上記の手順を実施してみてください。 スタッシュを回復できるはずです。
この投稿が、お役に立てば幸いです。