2017-03-02 28 views
0

我有一個git存儲,我昨天意外掉線了,現在我想恢復它。問題是,我再也找不到它了。查找丟失的git存儲的內容

我試圖讓所有類似的晃來晃去提交列表:

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

這讓我SHA1的一個長長的清單。但是,我怎麼能夠與他們的父母討論承諾的差異呢?我想使用xargs的,但我不知道怎麼用xargs的內awk命令的輸出(如何引用SHA1_OUTPUT

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

還是有更好的方式來做到這一點?

+0

試試這個:git fsck --unreachable | grep commit | cut -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..."