brew 出現 git 錯誤的問題分析
現象
- brew update的時候出現 gitcrash
分析
- 在brew update 的時候看見有 git gc 的字樣,提示有在gc 的動做。到/usr/local/ 目錄,直接運行 git gc 出現一樣的問題。
- 備份/usr/local/.git 目錄,發現其中一個文件/usr/local/.git/objects/pack/pack-a9xxxxxxxxxxxxxxxxxxxx.pack 文件copy 失敗。應該是文件系統出現了問題。
- 重啓進入恢復模式,修復文件系統。無效
- 用 cat 打開這個文件一樣失敗。用 sublime 打開這個文件,再從新保存,發現文件長度少了一半。dd 方式 copy 狀況與 sublime 相似,但文件內容會比 sublime 稍多一些。
- 強制刪除掉這個 pack 文件和對應的 idx 文件。出現 git 操做一直提示缺乏某幾個 object 的狀況。
- 觀察該文件夾git 的 remote repository。能夠看到遠程的 git 地址
解決方案
- 另外的文件夾中clone 一份代碼出來,用其中的.git/objects目錄覆蓋/usr/local/.git/objects目錄。
- git gc 正常,brew update 正常,brew doctor 正常
歡迎關注本站公眾號,獲取更多信息