MENU

git clone 报错fatal:protocolerror:badpackheader

October 19, 2019 • 群晖相关,linux相关

错误提示

  • efrror: RPC failed; curl 18 transfer closed with outstanding read data remaining
  • atal: The remote end hung up unexpectedly
  • fatal: protocol error: bad pack header

原因及解决方法

发生这个问题一般是项目中某些资源太大导致,可以尝试 ssh 方式 clone ,或者解决方式如下

  • 首次 clone 的层数定位在第一层

    • git clone 仓库地址 --depth 1
  • 然后 cd 到项目目录中

    • cd 项目目录
  • 再次拉取内部文件,--unshallow 即不使用浅克隆

    • git fetch --unshallow
  • 方法二
    git 服务器上修改 .config 文件:
    增加一项节点 [pack]

    • [pack]
    • windowMemory = 200m
    • SizeLimit = 200m
    • threads = 1
    • window = 0

    或者命令行执行:

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

不过实测发现,服务端只设置一条 window = 0 就已经 OK 了。

Last Modified: July 31, 2021