RPC failed curl 18 transfer closed with outstanding read data fatal protocol error bad pack header

本週從git clone下載項目時由於項目過大,http方式報錯protocol error: bad pack header,ssh方式報錯fatal: early EOF fatal: index-pack failed期間查閱各種資料,也走了不少彎路,在此整理記錄一下,特此分享。

問題描述

git clone用http方式下載報錯如下:
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: protocol error: bad pack header
git clone用ssh方式下載報錯如下:

SSH公鑰配置的也沒問題仍然報錯

error: pack-objects died of signal 9/5818)   
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: index-pack failed

錯誤如下圖:

在這裏插入圖片描述

解決方案

第一種方案

網上說http方式報錯protocol error: bad pack header需要配置ssh方式即可解決,但是在我的實際操作過程中,ssh方式爆出然報錯fatal: early EOF fatal: index-pack failed等錯誤。

第二種方案

修改本地的git配置:

git config --global pack.windowMemory "100m"
git config --global pack.SizeLimit "100m" 
git config --global pack.threads "1"
git config --global pack.window "0"

結果未能解決仍然報錯。

第三種方案 淺克隆git clone --depth 1 項目地址

可能是下載的項目工程太大導致的,那我們就下載最近的一次commit就好了,即:git clone --depth 1 項目地址,我出現的現象是很快就下載到100%了,但是下載的是一個空文件夾,什麼內容都沒有,即下載失敗

最終解決方案和原因分析

根據這兩種錯誤,我查到的大部分的解決方案就是淺克隆(git clone --depth)、修改git配置:加大緩存區、修改壓縮配置等(git config --global),但是未能解決我的問題,最後在一篇博客評論中看到是應該是git服務有問題,不是本地客戶端的問題
需要修改git 服務端的配置,進部署git的服務器,不是打開本地命令窗。在git服務器做如下配置即可解決:

git config --global pack.windowMemory "100m"
git config --global pack.SizeLimit "100m" 
git config --global pack.threads "1"
git config --global pack.window "0"
我的解決方式

將問題交給運維那邊處理,運維那邊說改配置比較麻煩怕影響其他的(我也沒理解),只是簡單改了一下,讓我在試試淺克隆結果總算成功瞭如下圖:
在這裏插入圖片描述淺克隆存在的問題:
淺克隆只會把默認分支clone下來,其他遠程分支並不在本地,所以這種情況下,需要用如下方法拉取其他分支需要進行如下步驟

step1:  淺克隆
git clone --depth 1 https://地址/xxxxxxx.git    

step2:  cd  到新下載的項目根目錄
cd   xxxxxxx

step3: 設置遠程要拉取的地址
git remote set-branches origin  分支名稱

step4: 淺克隆下載此分支
git fetch --depth 1 origin 分支名稱

step5:切換到分支
git checkout 分支名稱

最終完美解決:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章