2013-12-08 93 views
1

我有我幾個星期前做的git commit的散列。我試着檢查出來,但它說,哈希「不匹配任何已知的git文件」。我也在git reflog中查找它,但是在那裏沒有看到它。我沒有看到我在reflog中提交的最早的提交。失去了一個git commit

我無法在Gitorious的遠程存儲庫中找到丟失的提交。但是,我確實看到了我在Gitorious做出的最早的提交,而不是我正在尋找的提交。

回答

2

那麼,提交不再存在於您的數據庫中,這是不幸的。以防萬一你有散列錯誤開始git lost-found

如果它因爲垃圾被收集而消失,那麼您的運氣不好。如果因任何其他原因(磁盤損壞,文件系統錯誤等)而消失,您可能仍然能夠找到該提交中的斑點。

git fsck可以告訴你git的內部數據庫是否有問題。如果沒有任何東西,試試這個:How to recover LOST WORK resulting from the use of git?

+0

so old commitits get garbage collecting?您如何確保保留舊提交,並且您知道如何確定垃圾回收之前的保留期限? – user994165

+0

@ user994165爲了澄清,只有無法訪問的對象被垃圾回收。作爲某個分支的祖先的提交可以訪問,並且永遠不會被垃圾收集。但是,例如,如果您進行了提交,然後通過重置爲父項來「撤消」該提交,則該提交可能會被垃圾收集。 – tom