o] TortoiseGit错误 - Could not get all refs. libgit2 returned: corrupted loose reference file

因没法追溯的同步操做错误或工程文件错误,形成Git 同步时报错:git

 

Could not get all refs. libgit2 returned: corrupted loose reference filefetch

 

因对git相关配置不熟悉,形成手动修复时错改文件,越错越离谱,因此在解决问题前须要清楚Git相关配置文件信息及其做用。url

 

1. 在工程根目录有.git隐形文件夹,有的可见有的不可见,不可见的许设置为可见。3d

 

2. 打开.git后文件结构以下:blog

关键文件夹如图rem

config配置信息get

refs 最新更改SHA1信息同步

logs更改信息历史记录it

 

3. 对比查看refs下和logs下同名文件夹及文件内容:io

很是简单一看就懂,重要的是各个文件夹下文件信息要一致(通常只看最新信息),若出现错误,手动修复到上一条未出现错误的时候。

 

4. 确认上述文件信息正确后,git pull 会发现报错:loose object,这是由于系统生成的object文件因手动修改而找不到对应SHA1,须要进行文件清除和从新remote操做

 

对于fatal: loose object...is corrupt的解决方法

 

错误描述:

 

error: object file .git/objects/9a/83e9c5b3d697d12a2e315e1777ceaf27ea1bab is empty 

fatal: loose object 9a83e9c5b3d697d12a2e315e1777ceaf27ea1bab (stored in .git/objects/9a/83e9c5b3d697d12a2e315e1777ceaf27ea1bab) is corrupt  

解决方法:

 

$ rm -fr .git  

$ git init  

$ git remote add origin your-git-remote-url  

$ git fetch  

$ git reset --hard origin/master  

$ git branch --set-upstream-to=origin/master master   

相关文章
相关标签/搜索