LFS上传缺少对象,但文件在那里

时间:2018-10-02 16:48:32

标签: git github git-lfs

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

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

正在询问的文件是:

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

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

enter image description here

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

3 个答案:

答案 0 :(得分:1)

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

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


背景: Git LFS通过将大文件存储在Git存储库之外的数据存储中来工作。然后,仅通过Git存储库中的所谓Git LFS指针文件来引用单独存储的文件(您可以在Git LFS 101中了解更多信息)。如果Git LFS用户具有misconfigured local client,则可能会添加LFS文件并在本地引用,但不会将其上传到LFS数据存储中。因此,存储库的任何其他用户将无法下载引用的LFS文件,并且存储库将处于损坏状态。 error: GH008: Your push referenced at least 1 unknown Git LFS object保护用户免受这种情况的侵害。

答案 1 :(得分:0)

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

git-lfs在暂存文件之前运行干净过滤器时会添加对象。假设缺少的对象是文件的最新版本,则可以使用以下命令强制清除过滤器重新运行:

git add --renormalize path/to/file

答案 2 :(得分:0)

这种情况可能发生在您从一个远程存储库迁移到另一个远程存储库的情况下。假设旧存储库名为old-origin

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

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