2011-09-11 19 views
14

當推我的回購時,我的電池死在我的MacBook上。 現在我不能運行git status不能修復壞對象頭部錯誤與git狀態

$ git status 
fatal: bad object HEAD 
fatal: git status --porcelain failed 

我已經嘗試了一些建議,香港專業教育學院發現用於固定不好的對象錯誤。

$ git fsck --full 
dangling tree 65e856976b7aa7c73f15cd71defedb8a3d622a10 

我試過git prunegit prune-packed

我仍然可以提交,藏匿,推,這似乎只是影響git的狀態

安迪的想法?

感謝

+0

我有完全相同的問題。感謝您的解決方案! – Mauren

回答

2

如果您.git/HEAD損壞或指向一個損壞的對象,你可以通過手動或git checkout改變它。

+0

嗨嘗試,沒有任何區別。 HEAD指向refs/heads/master – Rob

+0

雖然,refs/heads/master不存在。 – Rob

+0

所以你需要簽出一個真正的分支(和/或恢復'refs/heads/master',如果它存在的話)。請注意,現在refs通常在'.git/packed-refs'中。 – wRAR

0

嘗試在git狀態之前添加git add filepath/file.ext的所有修改後的文件。

28

我想你已經解決了這個問題,但我有這個並可以通過運行

git pull 

簡單地修復它這導致進入工作狀態。儘管你的文件是完整的,你應該備份你的本地git目錄,然後運行git pull。之後你應該恢復營業。

如果有文件被刪除(不應該發生),您可以將它們複製回工作結帳並從那裏提交。

+1

易於修復,工作得很好。謝謝你的提示! –

+1

這對我有效,但必須在它允許我拉動之前首先'git藏匿'本地更改。謝謝。 –

2

這發生在我身上時,我不小心在Eclipse Java項目中添加了我的bin /文件夾。

使用'git pull'對我無效。

我的固定它:

  1. 關閉的Eclipse
  2. 室射頻斌
  3. 的git RM斌

然後我就能夠 'git的承諾',並繼續正常運行。

1

這爲我工作:

git fetch origin 
git reset --hard origin/master 
0

git checkout -f *branchname*爲我工作。

相關問題