LFS 上传丢失的对象,但文件在那里

问题描述 投票:0回答:3

我正在尝试推动提交。但我不断收到错误消息:

error: GH008: Your push referenced at least 1 unknown Git LFS object

它所质疑的文件是:

 (missing) SRP/com.unity.shadergraph/.data/texture_2d_lod_node.PNG (b262d71d68d478f6b6c3dc3086451a764e065b8608a65104e17cb8aefefa5f76)

现在我转到该文件夹,该文件确实存在:

所以我的问题是为什么它一直给我这个错误?

git github git-lfs
3个回答
24
投票

当您从一个远程存储库迁移到另一个远程存储库时,可能会发生这种情况。假设旧存储库名为

old-origin
,

git lfs fetch --all old-origin
git lfs push --all origin

应该同步 git 提交历史记录中的所有 LFS 对象。


7
投票

LFS 对象存储中似乎缺少该对象。 LFS 对象位于 .git/lfs/objects。如果您丢失的对象在那里,它将位于像 b2/62/d71d68 这样的路径...

git-lfs 在暂存文件之前运行 clean 过滤器时会添加对象。假设丢失的对象是文件的最新版本,您可以使用如下命令强制清理过滤器重新运行:

git add --renormalize path/to/file

3
投票

该错误意味着您的 Git 推送包含对从未上传到服务器的 Git LFS 对象的引用。

尝试运行

git lfs push origin --all
上传所有本地 Git LFS 对象。之后
git push
应该可以工作。


背景: Git LFS 的工作原理是将大文件存储在 Git 存储库外部的数据存储中。然后,只能通过 Git 存储库中所谓的 Git LFS 指针文件来引用单独存储的文件(您可以在Git LFS 101中了解更多信息)。如果 Git LFS 用户有“本地客户端配置错误”,则可能会出现 LFS 文件被添加并在本地引用但未上传到 LFS 数据存储的情况。因此,存储库的任何其他用户将无法下载引用的 LFS 文件,并且存储库将陷入损坏状态。 error: GH008: Your push referenced at least 1 unknown Git LFS object 可以保护用户免受这种情况的影响。

    

© www.soinside.com 2019 - 2024. All rights reserved.