遞歸。包括.git目錄 首先,您需要驗證您的.git
文件夾沒有「損壞」。
# Verify that the .git folder and all the objects are still usable
git fsck --full
如果你沒有看到和晃來晃去的數據一切都OK。
,但沒有推動回購其他地方尚未
你仍然可以恢復所有,即使你推以前的數據(除非你做了強制推送)
從某種意義上說,我很高興我在犯了太多錯誤之前犯了這個錯誤,但假設這是一個長達數年的項目的唯一副本,那麼你會受到多大的影響?
如果你沒有備份,你會遇到很大的麻煩。它是一種可恢復的情況,但需要很多工作。
如何從此錯誤中恢復?
如果您已將所有選項卡替換爲空格,反之亦然,您將不得不嘗試再次替換它們,好處是git具有SHA-1,它是內容的sha1sum
(內容本身已壓縮與格式內不應包含任何空格
短(它有點比這更復雜)的git計算SHA-1以下的內容,並壓縮它:
blob<space><content_lengt><null><content>
然後git的壓縮如果你知道如何存儲文件,你可以嘗試恢復它們,但它的很多工作。那麼手裏就不應該有空格,所以你可能會搞砸內線(.git/object
)的機率很小。
Summary
不要緊,你做什麼從未觸摸.git
文件夾!
主要trickiness是,現在有沒有簡單的方法來告訴什麼最初是兩個空格,什麼本來是一個標籤。您可能只是重新創建存儲庫。 (希望在一個長達數年的項目的情況下,會有另一個遠程的地方,你可以重新克隆。) – Amber