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

配置Git LFS跟踪规则后新提交webp文件未被LFS识别求助

问题根因

两个新添加的webp文件未被LFS识别的核心原因是:你执行git add将文件加入暂存区时,Git LFS的过滤钩子未正常触发,暂存区存储的是直接写入Git仓库的完整文件对象,而非LFS指针文件。从你贴出的git lfs status输出可以直接验证这一点——两个新文件后标记为(Git: 哈希值),代表会被Git直接存储,只有标记为(LFS: 哈希值)的文件才会走LFS存储流程。
这个问题通常是两种情况导致的:

  • 安装Git LFS后未在仓库内执行初始化,LFS所需的Git钩子未正确挂载
  • 你在.gitattributes的LFS规则生效前,就已经把两个新webp文件加入了暂存区,缓存的暂存内容不会自动重新走LFS转换
    你之前遇到的webp文件损坏、历史分叉问题,基本是git lfs migrate操作不当导致的——迁移过程中如果没有正确拉取LFS对象,本地仓库里存的只是几十字节的LFS指针文件,打开自然会显示图像损坏。
修复步骤

按顺序在仓库根目录执行以下操作即可解决:

  • 先重新初始化LFS钩子,确保后续文件操作能触发LFS规则:
    git lfs install
  • 撤销你刚才提交的两个新webp文件的错误提交,保留文件修改在暂存区:
    git reset --soft HEAD~1
  • 把暂存区里缓存的错误webp文件移出暂存区,清除旧的暂存缓存:
    git restore --staged public/images/closed.webp public/images/open.webp
  • 验证LFS规则正常生效后,重新将两个webp文件加入暂存区:
    先执行git lfs track,确认输出列表中存在*.webp filter=lfs diff=lfs merge=lfs -text规则,再执行git add public/images/closed.webp public/images/open.webp
  • 验证识别状态:执行git lfs status,此时两个新webp文件后会显示(LFS: 哈希值),代表已经被LFS正确接管
  • 重新提交变更:git commit -m 'new bg images',提交完成后执行git lfs ls-files,就能看到closed.webp和open.webp出现在LFS文件列表中,后续正常推送即可绕过GitHub的单文件大小限制。
额外注意事项

如果后续需要把仓库历史中已经直接提交到Git的大文件统一迁移到LFS,执行git lfs migrate import --include="*.webp"前一定要先备份整个本地仓库文件夹,避免迁移过程出错导致历史损坏、文件丢失。迁移完成后需要用强推方式更新远程分支,确保协作者也同步拉取最新的迁移后历史。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:33:22