Git LFS无法追踪曾被Git追踪过的大文件问题求助
解决Git LFS无法追踪曾被Git追踪过的二进制文件问题
问题复盘
- 误将200MB的
tensorflow-2.13.0-cp310-cp310-linux_x86_64.whl用Git直接追踪,后续重置提交并强制推送删除该提交后,无法让LFS正常追踪该文件 - 空文件状态下
git lfs status显示正常追踪,但替换为实际二进制内容后,状态变为LFS: e3b0c44 -> Git: 8a43985,表示会用Git而非LFS提交 - 尝试调整操作顺序、修改文件内容均无效,仅在新分支成功上传LFS文件,原分支状态又出现异常
可行解决步骤
1. 彻底清理本地Git缓存
Git可能缓存了该文件的追踪状态,需要强制清除:
git rm --cached tensorflow-2.13.0-cp310-cp310-linux_x86_64.whl git reset HEAD .gitattributes git add .gitattributes git add tensorflow-2.13.0-cp310-cp310-linux_x86_64.whl
2. 强制重置LFS过滤器配置
确保Git LFS的过滤器在本地仓库正确生效:
git lfs install --force
3. 清理LFS缓存并重关联文件
若LFS缓存了旧的文件关联记录,清理后重新配置追踪:
git lfs prune git lfs track "tensorflow-2.13.0-cp310-cp310-linux_x86_64.whl" git add .gitattributes git add tensorflow-2.13.0-cp310-cp310-linux_x86_64.whl
4. 基于新分支同步状态
利用新分支的正常配置,同步到原分支:
# 切换到原分支 git checkout <原分支名> # 合并新分支中成功提交LFS的记录 git cherry-pick <新分支中成功提交的commit_id> # 若有冲突,保留新分支的.gitattributes配置后重新添加文件 git add tensorflow-2.13.0-cp310-cp310-linux_x86_64.whl
关键说明
git lfs status中Git: <hash>表示文件会被Git直接追踪,LFS: <hash> -> File: <hash>则表示LFS已正确关联,提交后会通过LFS推送- 文件名包含点不影响LFS追踪,空文件能被追踪说明
.gitattributes配置本身有效,问题根源是Git或LFS的缓存状态残留
内容的提问来源于stack exchange,提问作者Tamás Sajti
相关产品推荐
相关产品推荐

