我正在調試由硬盤驅動器故障導致的git存儲庫損壞情況。我有查找對象屬於哪個提交?
>git fsck --full
fatal: loose object 25e9d8d2deb964c3da0f86f60bbd5a23e8387349 (stored in
.git/objects/25/e9d8d2deb964c3da0f86f60bbd5a23e8387349) is corrupt
>git show 25e9d8d2deb964c3da0f86f60bbd5a23e8387349
fatal: loose object 25e9d8d2deb964c3da0f86f60bbd5a23e8387349 (stored in
.git/objects/25/e9d8d2deb964c3da0f86f60bbd5a23e8387349) is corrupt
現在,我想知道關於此對象的一些事情 - 它是什麼,它屬於哪裏? (哪個文件夾,其呈交?)
當我試圖調查對象的存儲,我得到:
>git show e9d8d2deb964c3da0f86f60bbd5a23e8387349
fatal: ambiguous argument 'e9d8d2deb964c3da0f86f60bbd5a23e8387349': unknown revision or
path not in the working tree. Use '--' to separate paths from revisions
我應該如何進行?
我有一個從今天早些時候的存儲庫的副本,但我不想只是垃圾我的本地更改 - 我寧願看看我是否可以修復回購,或者只是垃圾一個提交。
P.S. - 我發現了一些關於「鬆散對象」問題的線索,但沒有提供關於如何調查/解決的具體指示,無論是在哪裏找到另一個回購庫中的腐敗對象的備份,以及在沒有備份這個對象。
P.S. 2 - 奇怪的是,gitk --all
運作良好,並不在乎這種腐敗狀態。
我想說的第一件事就是使用'git cat-file -p'來試圖找出它是什麼類型的對象。 – 2012-02-20 21:55:12
@格雷格 - 輸出:'錯誤:無法解開25e9d8d2deb964c3da0f86f60bbd5a23e8387349頭 錯誤:inflateEnd:失敗 致命的:不是有效的對象名25e9d8d2deb964c3da0f86f60bbd5a23e8387349' – ripper234 2012-02-20 22:00:14
好吧,也許嘗試一些其他的'貓file'選項,看看你能找出。 – 2012-02-20 22:02:44