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

已在待提交对象中显示的文件未出现在git lfs ls-files结果中

问题排查与解决方案

可能的遗漏点

  1. 追踪规则不匹配
    检查.gitattributes中的LFS规则是否与目标tarball的路径/扩展名完全匹配:

    • 若文件在子目录(如subdir/archive.tar),仅用*.tar无法覆盖子目录,需改为**/*.tar(匹配所有层级的tar文件);
    • 注意大小写敏感,比如规则是*.TAR但文件是*.tar会直接失效。
  2. 未让Git重新加载追踪规则
    提交.gitattributes后,Git不会自动将新规则应用到后续添加的文件。必须执行:

    git add --renormalize .
    

    该命令会强制Git重新处理所有文件的属性,确保新的LFS规则生效。

  3. git lfs ls-files的默认行为限制
    默认情况下,git lfs ls-files仅显示已提交到仓库的LFS追踪文件。若要查看待提交的文件,需添加参数:

    git lfs ls-files --include-uncommitted
    

正确添加tarball到LFS的步骤

  1. 配置追踪规则:

    git lfs track "**/*.tar"  # 匹配所有层级的tar文件,可根据实际调整规则
    

    此命令会自动更新.gitattributes文件。

  2. 提交规则文件(可选,也可与tarball一起提交):

    git add .gitattributes
    git commit -m "Update LFS tracking rules for tarballs"
    
  3. 重新加载规则并添加目标文件:

    git add --renormalize .
    git add path/to/your/archive.tar
    
  4. 验证追踪状态:

    git lfs status  # 应显示文件在"Objects to be committed"列表中
    git lfs ls-files --include-uncommitted  # 可查看到该待提交文件
    
  5. 提交并推送:

    git commit -m "Add tarball tracked by LFS"
    git push
    

针对已错误提交的文件修复

如果tarball已经以普通文件的方式提交到仓库,可通过以下步骤修正:

  1. 移除本地缓存的普通文件版本:
    git rm --cached path/to/your/archive.tar
    
  2. 重新应用LFS规则并添加文件:
    git add --renormalize .
    git add path/to/your/archive.tar
    
  3. 提交修复:
    git commit -m "Fix: Track tarball with LFS"
    
    若需要修改历史提交记录,可使用git lfs migrate import:
    git lfs migrate import --include="**/*.tar" --ref=HEAD~n  # n为需要回溯的提交数
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:25:17