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   

相關文章
相關標籤/搜索