概述:如何修復損壞的Git倉庫 - 「混帳fsck的」報告「樹警告[哈希值]:包含的條目指向空SHA1」
我無法在我們的回購成功拉改變我們的生產服務器。
運行「混帳的fsck」在我的回購返回相同的錯誤的5個實例:
warning in tree [hash]: contains entries pointing to a null sha1
我們的回購,包括託管到位桶版本的所有版本中存在的錯誤。
我和我的同事都對我們非常想保留的本地版本的回購協議進行了無節制的和未提交的更改。
我試過google,stackoverflow和man page,但是我找不到一個很好的指南來解釋發生了什麼或者如何解決這個問題。
談到GIT時,我和我的同事是相對的小菜鳥。我們已經掌握了基礎知識,但是我們還沒有花費時間在低級命令上。
我很感激任何和所有幫助恢復我的回購完整性。
詳細描述:
我的問題,當我試圖遠程分支拉我的生產服務器啓動。它應該是工作目錄的簡單更新,但我得到了一些模糊的錯誤,我不記得並發現我的工作目錄已損壞。
Git狀態報告失敗合併後未跟蹤和修改文件的噸數。我無法弄清楚如何用git命令解決問題,所以我手動操作文件系統來刪除文件(但我沒有碰到.git目錄中的任何東西),並讓我的工作目錄恢復到我的工作目錄生產服務器將無誤地爲我的網站服務。
運行 「混帳的fsck」 在我的回購返回相同的錯誤的5個實例:
warning in tree [hash]: contains entries pointing to a null sha1
我跑的git的fsck上:
- 我的回購我的開發機器上
- 我同事的dev機器
- 在dev和prod上的bitbucket的新鮮克隆版本回購
我試過的一切都顯示了同樣的警告。所以不管是什麼問題,它都在我們的回購版本中。
呼喚「混帳LS-樹[樹哈希報告錯誤]」顯示了與壞樹哈希沿着正常的目錄打印:
160000 commit 0000000000000000000000000000000000000000 [name of repo]
最接近的一個解決方案,我發現是這樣的計算器職位: How to remove an entry with null sha1 in a Git tree。但是,我無法真正理解這些步驟,切割和粘貼命令無法解決我的問題。
我的問題:
- 什麼這些錯誤究竟意味着什麼?他們有多嚴重?
- 我們如何修復我們的回購(如果可能請爲我們的noobs一步一步做)?
- 在我們修復之前或之後,我們是否應該承諾並推行所有對回購的更改?
- 修復回購有什麼含義?我們如何將修復分發到所有版本的回購(例如開發機器和生產服務器)?
- 是什麼導致了這個錯誤,我們如何防止它再次發生?
事實證明,我的桌面上的RAM開始拋出錯誤(memtest86失敗)。我相信糟糕的RAM損壞了我的GIT提交,當我推動更改時,所有內容都被損壞了。 –