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 正常
欢迎关注本站公众号,获取更多信息