You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipelines开启LFS的Checkout步骤出现Smudge下载错误

Azure Pipeline Git LFS拉取错误排查建议

针对发布分支执行LFS拉取时出现的batch response: Expected json type, got: "text/plain; charset=utf-8"错误,结合master分支流水线正常的情况,可从以下方向排查:

  • 检查分支LFS追踪规则差异
    对比发布分支与master分支的.gitattributes文件,确认目标DLL对应的LFS追踪规则(如*.dll filter=lfs diff=lfs merge=lfs -text)是否一致。若发布分支的规则被误修改、删除,会导致LFS无法正确识别该文件。

  • 验证LFS对象及指针文件状态
    在本地克隆发布分支,执行以下命令检查:

    # 查看文件是否被LFS追踪
    git lfs ls-files
    # 尝试拉取所有LFS对象
    git lfs fetch --all
    

    若本地也出现相同错误,说明仓库内的LFS指针文件损坏或对象本身存在异常,需重新提交正确的LFS指针或修复对象存储。

  • 排查流水线权限差异
    确认发布分支流水线使用的服务账号,是否拥有Azure DevOps项目中Git LFS对象的读取权限。可前往项目设置→权限→服务账号,检查该账号是否被授予“读取LFS对象”权限,而master分支流水线的账号权限配置正常。

  • 排查代理或网络拦截问题
    部分代理服务器可能会篡改LFS请求的响应格式,将JSON转换为text/plain。可尝试:

    • 切换流水线使用的代理池,避开可能存在拦截的代理
    • 在Checkout步骤前添加命令,强制指定LFS服务器地址:
      git config --global lfs.url https://dev.azure.com/[你的组织]/[你的项目]/_git/[仓库名].git/info/lfs
      
  • 检查Git LFS版本兼容性
    对比两个流水线代理机器上的Git LFS版本,执行git lfs version查看。若发布分支流水线的LFS版本过低,可能存在与Azure DevOps LFS服务的兼容性问题,升级至最新稳定版本即可。

  • 确认指针文件未被误替换
    检查发布分支中目标DLL的内容,确认其是LFS指针文件(格式为包含oid sha256:和size:的文本内容),而非实际的二进制DLL文件。若指针文件被误替换为真实二进制文件,会触发Smudge错误。

内容的提问来源于stack exchange,提问作者Yash Dutt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 03:17:17