克隆企业本地TFS/DevOps仓库报错smudge filter lfs失败提示HTTP_1_1_REQUIRED
问题根本原因
HTTP_1_1_REQUIRED错误触发的核心原因是本地Git LFS客户端默认使用HTTP/2协议发送请求,而企业本地部署的TFS/Azure DevOps Server的LFS服务端仅支持HTTP/1.1协议,请求协议不匹配导致交互失败。跳过smudge的方案仅规避了LFS文件拉取逻辑,没有解决协议不兼容的核心问题,因此会出现二进制文件缺失的问题。
永久解决方案(不影响LFS文件正常拉取)
全局配置Git LFS强制使用HTTP/1.1协议
执行以下命令,配置会对所有仓库的LFS请求生效:git config --global lfs.transfer.options http.version HTTP/1.1仅针对单个仓库配置HTTP/1.1协议
如果不需要全局生效,进入对应仓库目录后执行以下命令,仅对当前仓库生效:git config lfs.transfer.options http.version HTTP/1.1
临时生效方案(单次克隆时使用)
如果仅需要完成单次克隆操作,可以在克隆命令前添加环境变量指定HTTP版本:
- Linux/Mac环境执行:
GIT_LFS_TRANSFER_OPTIONS="http.version=HTTP/1.1" git clone <你的仓库地址> - Windows CMD环境执行:
set GIT_LFS_TRANSFER_OPTIONS=http.version=HTTP/1.1 && git clone <你的仓库地址> - Windows PowerShell环境执行:
$env:GIT_LFS_TRANSFER_OPTIONS = "http.version=HTTP/1.1"; git clone <你的仓库地址>
配置验证
配置完成后执行以下命令验证LFS文件是否正常拉取:git lfs pull
如果命令无报错,且仓库内的二进制文件为正常大小(非几KB的指针文件),说明配置生效。
内容的提问来源于stack exchange,提问作者Jonathan
相关产品推荐
相关产品推荐

