2012-11-09 127 views
2

我正試圖部署我的本地倉庫到遠程目錄。我在這個遠程目錄中運行了git init --bare,並且使用git remote add server ssh://[email protected]:2222/path/to/repo將正確的ssh路徑添加到了本地git repo分支(名爲dev)。爲什麼我的git推送到HostGator共享主機失敗?

當我運行git push server dev我得到以下的輸出:

Counting objects: 44, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (37/37), done. 
Writing objects: 100% (44/44), 89.58 KiB, done. 
Total 44 (delta 2), reused 27 (delta 2) 
error: Could not read 551dd5c5d67e3b2da4074d8f15a59a324a063a03 
fatal: Failed to traverse parents of commit 0615b940c3247e3547de1379ab09a4a6bb614252 
error: Could not read 551dd5c5d67e3b2da4074d8f15a59a324a063a03 
fatal: Failed to traverse parents of commit 0615b940c3247e3547de1379ab09a4a6bb614252 
To ssh://[email protected]:2222/path/to/repo 
! [remote rejected] dev -> master (missing necessary objects) 
error: failed to push some refs to 'ssh://[email protected]:2222/path/to/repo' 

我不知道這到底是怎麼回事。

+1

'git fsck'對你的本地存儲庫有什麼看法? – cdhowie

+0

謝謝,我仍然在學習git的基礎知識。我懸掛提交,我認爲這是造成這個問題。這對我來說是一個新鮮的回購,所以我簡單地刪除它並從頭創建一個新的回購和開發分支。 –

+1

懸掛提交不會成爲問題,它們只是未引用的提交 - 將在稍後清理的垃圾。如果你的一個提交引用了一個不存在的父提交,那麼會有什麼關係。 – cdhowie

回答

3

正如「git repository failed to traverse parent error」中所述,這也可能是由淺層克隆引起的。

在你的情況,雖然(測試回購),從頭開始是最容易的。

一般情況下,你有有趣的建議在this thread

1.使用 「git rev-list --objects」 找出40aaeb204dc了。

如果不工作:

2.運行 「git fsck --full」,與包裝完好。這將需要一段時間。
結果將包括缺失對象的列表(如40aaeb204dc),最重要的是它們的類型。

以下howto/recover-corrupted-blob-object.txt可用於識別損壞的鬆散物體。