git提交代码到一半,系统崩了

433 阅读1分钟

问题产生

今天在git提交到一半时,电脑系统崩溃,于是重新启动电脑,打开sourceTree,无限循环报128错误fatal: Not a git repository。 于是打开git bash

  • 使用git init提示存在.git文件夹
  • 使用git log提示git不相应

但是明明存在.git文件夹

解决方案

既然是存在.git文件夹,但是又没有响应,猜测是路径问题,没有找到对应路径,但是对git不是很熟悉的我对文件夹里面各种各样的文件蒙蔽了
感谢.git文件夹详解

很快定位到问题,与我猜测相关的文件是HEAD文件(映射到ref引用,能够找到下一次commit的前一次哈希值),打开HEAD文件,显示一堆黑体null乱码

不清楚这种展示是否正确,于是新建一个文件夹,使用git init

很明显不正确。那么问题就很愉快的解决了,将乱码删除,填入ref: refs/heads/最后一次提交的分支名

至于为什么不重新拉一个库,是因为本地commit失败,线上的库没有提交,本地git又打不开,完全记不起自己修改哪些文件,哪些地方,所以经常提交代码是个好习惯呀!!!