Git

恢復被舊版本覆蓋的 git repo

  • November 10, 2017

我只是tar x錯誤地執行而不是tar c,並用幾天的舊版本覆蓋了我的 git 儲存庫。這將留下我新創建的任何文件,包括.git. 我怎樣才能盡可能地恢復?

以防萬一,先複製整個混亂。

git fsck將顯示懸空對象和送出。找到最新的懸空送出。我將所有送出雜湊都輸入到gitk,它只在頂部顯示最新的“最新”雜湊。除了只有幾個送出要處理,我只有一個分支要恢復——如果有多個頭,這會更複雜。

然後git stash儲存目前未送出的更改以供檢查。

然後我能夠得到git reset --hard上面確定的送出雜湊。

git stash pop也很乾淨地合併回來。我想我幾乎得到了我想要的一切。

引用自:https://unix.stackexchange.com/questions/403762