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

切换分支时Git LFS无法下载文件,如何恢复未推送分支的本地工作?

问题结论与解决方案

你的文件没有永久丢失,你遇到的报错本质是切换分支时Git默认会尝试从远程拉取LFS对象,但你对应的分支从未推送到过远程,因此远程不存在对应LFS对象返回404,文件内容实际还存储在你本地的Git提交记录或LFS缓存中。

操作步骤

  1. 跳过LFS校验切换回目标分支
    执行以下命令临时关闭LFS的smudge过滤器,避免切换分支时触发拉取远程LFS对象的逻辑:
git config filter.lfs.smudge "cat"

之后正常切换目标分支即可:

git checkout feature/499-trophy-after-match

切换完成后恢复LFS的默认配置:

git config --unset filter.lfs.smudge
  1. 从本地LFS缓存恢复文件
    报错日志已经给出了缺失文件的LFS哈希值cd5cbe0c9d75fc92257a403ff18539ecd37af2a77bb2defd3a56c12c276d465d,你可以直接在本地LFS存储目录查找对应对象:
  • 进入项目的.git/lfs/objects目录
  • 打开哈希前两位对应的cd文件夹,再打开接下来两位对应的5c文件夹
  • 如果找到名称和完整哈希一致的文件,直接将该文件复制到工作区的Content/Blueprints/Game/Royale/目录,重命名为BP_Gamemode_Royale_Test.uasset即可完成恢复。

也可以执行以下命令自动从本地缓存拉取所有缺失的LFS对象:

git lfs fetch --local
git lfs checkout
  1. 极端情况恢复方案
    如果本地LFS缓存被意外清理,你可以直接从本地Git的提交记录中导出该文件的历史版本:
    首先找到你提交该文件的提交哈希,执行以下命令导出:
git show <你的提交哈希>:Content/Blueprints/Game/Royale/BP_Gamemode_Royale_Test.uasset > ./BP_Gamemode_Royale_Test.uasset

如果导出的是LFS指针文件,说明提交中仅存储了指针记录,你可以使用该指针文件的哈希值重新搜索本地磁盘,或者用数据恢复工具查找对应哈希的文件。

后续注意事项

后续涉及LFS文件的分支操作前,建议先执行git lfs push origin <分支名>把本地LFS对象同步到远程,避免出现类似问题。

内容的提问来源于stack exchange,提问作者Alexander Blintsov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:27:07