LoginSignup
0
0

More than 3 years have passed since last update.

stashしたものが行方不明になった時やったこと

Last updated at Posted at 2020-10-25

事の起こり

編集途中のものを一旦 stash した。それから rebase したりブランチを削除したりして最後にstashしたものを戻そう(stash pop)しようとら、stashしたものがない。stash list に何も出てこない。
stash した時のブランチを削除したから?

対応

git fsck で追跡不能なリビジョンを表示する。

$ git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (3778/3778), done.
dangling commit d8c140de7dbe0f0695790e94631f9f4c041ede54
dangling tag bb4efddf60954be66b6cfd7235d14bf2635264c2
dangling tag 6bf9af0329e00ab9661781147ca34e7b39070975

"dangling 何とか" というのが追跡不能なリビジョンらしい。
これらのリビジョンのアーカイブを作る

$ git archive --format=zip d8c140d -o rev_d8c140d.zip

$ git archive --format=zip bb4efdd -o rev_bb4efdd.zip

$ git archive --format=zip 6bf9af0 -o rev_6bf9af0.zip

で、そのアーカイブを展開してワークツリーと比較して(WinMergeを使った)差分から d8c140d が行方不明になっていたstashしたものらしいと判断した。
もっといい方法があるのかもしれないが、自分の頭ではこれが限界。

参考ページ

誤って削除した git stash を戻す | deadwood
Gitを使いこなすための20のコマンド | OSDN Magazine
Git - git-fsck Documentation

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0