Git
恢復被舊版本覆蓋的 git repo
我只是
tar x
錯誤地執行而不是tar c
,並用幾天的舊版本覆蓋了我的 git 儲存庫。這將留下我新創建的任何文件,包括.git
. 我怎樣才能盡可能地恢復?
以防萬一,先複製整個混亂。
git fsck
將顯示懸空對象和送出。找到最新的懸空送出。我將所有送出雜湊都輸入到gitk
,它只在頂部顯示最新的“最新”雜湊。除了只有幾個送出要處理,我只有一個分支要恢復——如果有多個頭,這會更複雜。然後
git stash
儲存目前未送出的更改以供檢查。然後我能夠得到
git reset --hard
上面確定的送出雜湊。
git stash pop
也很乾淨地合併回來。我想我幾乎得到了我想要的一切。