2017-03-02 11 views
0

私は昨日事故で落としたgit stashを持っています。問題は、私はもうそれを見つけることができないということです。失われたgit stashの内容を見つけよう

私はこのようなすべてのダングリングコミットの一覧を取得しようとしました:

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

これは私にSHA1年代の長いリストを提供します。しかし、どのように私は親とコミットのdiffをgrepすることができますか?

git fsck --no-reflog | awk '/dangling commit/ {print $3}' | xargs git diff SHA1_OUTPUT^ SHA1_OUPUT 

それともこれを行うには良い方法がある(SHA1_OUTPUTを参照する方法)私は、xargsのを使用して考えていたが、私は、xargsの内awkコマンドの出力を使用するかどうかはわかりませんか?

+0

これを試してください:git fsck --unreachable | grepコミット|カット-d \ -f3 | xargs git log --oneline。あなたがそれを識別することができれば、sha-1を見つけてからgit diff を探してください。 – basslo

答えて

0

私は事故で私の隠し袋を清掃したとき、それは一度私に起こった。私は緩めるのにはあまりにも重要だった隠し場所だけを気にしていました。ファイル名のおかげでそれを回復しました。

あなたも、あなたが復元したいファイルの名前を覚えていれば実際に、あなたは

git fsck --no-reflog | awk '/dangling commit/ {print $3}' | xargs git show 

を実行することができます。そして、あなたは変更したファイルとどのような修正されたが表示されます。検索機能(/)に依存することによって、あなたは覚えているファイルを検索することができ、彼らはあなたがハッシュを取得し、

git reset <stash_hash>^ 

バック

をそれを得るそして、なぜ再び隠しておくことはできません一致する場合は、変更が表示されます: D

git stash save "Stash my lost stash..." 
関連する問題