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

Azure DevOps流水线及本地Git出现__pycache__远程引用损坏问题求助

解决Git远程引用损坏(含__pycache__路径)的问题

问题重现

Azure DevOps流水线突然停止工作,排查发现远程仓库存在一个异常的损坏引用:.git/refs/remotes/origin/feature/__pycache__/app.cpython-310.pyc——这个引用本不应存在。登录服务器删除__pycache__目录后流水线恢复,但本地执行git fetch --all --prune时触发相同错误:

$ git fetch --all --prune
Fetching origin
error: cannot lock ref 'refs/remotes/origin/feature/__pycache__/app.cpython-310.pyc': unable to resolve reference 'refs/remotes/origin/feature/__pycache__/app.cpython-310.pyc': reference broken
error: could not remove reference refs/remotes/origin/feature/__pycache__/app.cpython-310.pyc

本地修复步骤

要解决本地的错误,直接清理本地的损坏引用即可:

  • 方法一:手动删除损坏的引用目录
    进入本地仓库的对应路径,直接移除__pycache__相关的引用目录:
    rm -rf .git/refs/remotes/origin/feature/__pycache__
    
  • 方法二:用Git命令移除指定损坏引用
    针对具体的损坏引用执行删除命令:
    git update-ref -d refs/remotes/origin/feature/__pycache__/app.cpython-310.pyc
    

执行完上述任一操作后,再重新运行git fetch --all --prune即可正常完成同步。

成因分析

  • 最直接的原因就是误操作创建并推送了包含__pycache__路径的分支,比如执行了类似git checkout -b feature/__pycache__/app.cpython-310.pyc的命令,然后将这个异常分支推送到了Azure DevOps远程仓库。Git允许分支名包含斜杠,但__pycache__是Python自动生成的缓存目录,完全不属于合法分支名的范畴。
  • 少数情况下,也可能是自动化脚本、CI/CD工具或Git客户端插件的bug,导致误将__pycache__下的缓存文件路径识别为分支名并推送,但这种场景概率极低。
  • 远程仓库的异常引用同步到本地后,Git在fetch时无法解析这个不符合规范的引用结构,就会抛出“reference broken”的错误。

内容的提问来源于stack exchange,提问作者Shaun Mitchell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:27:30