brew 出现 git 错误的问题分析

现象

  1. brew update的时候出现 gitcrash
 

分析

  1. 在brew update 的时候看见有 git gc 的字样,提示有在gc 的动做。到/usr/local/ 目录,直接运行 git gc 出现一样的问题。
  2. 备份/usr/local/.git 目录,发现其中一个文件/usr/local/.git/objects/pack/pack-a9xxxxxxxxxxxxxxxxxxxx.pack 文件copy 失败。应该是文件系统出现了问题。
  3. 重启进入恢复模式,修复文件系统。无效
  4. 用 cat 打开这个文件一样失败。用 sublime 打开这个文件,再从新保存,发现文件长度少了一半。dd 方式 copy 状况与 sublime 相似,但文件内容会比 sublime 稍多一些。
  5. 强制删除掉这个 pack 文件和对应的 idx 文件。出现 git 操做一直提示缺乏某几个 object 的状况。
  6. 观察该文件夹git 的 remote repository。能够看到远程的 git 地址
 

解决方案

  1. 另外的文件夹中clone 一份代码出来,用其中的.git/objects目录覆盖/usr/local/.git/objects目录。
  2. git gc 正常,brew update 正常,brew doctor 正常
相关文章
相关标签/搜索