Git 在服务器上找不到 LFS 文件

Git LFS files not found on server

我们一直在使用 Git 和 git-lfs,由我们自己的 Gitlab 实例托管。

有时当一个特定的用户推送文件时,其中一些(似乎是 .png 文件)没有进入 LFS 存储,而是被添加到 git。当这种情况发生在他们的机器上时,我还没有看到日志/消息。

但最终发生的是当其他用户尝试从 LFS 下载该文件时,它会抛出一个错误:

[28bbec36fe441b7de97d566872c71cd4542384d871b369168285408c1f062cfd] Object does not exist on the server or you don't have permissions to access it

我已尝试手动上传文件到 Gitlab 服务器 git-lfs 数据目录中的文件名,文件名的 SHA ID 正确,但没有成功似乎被捡起来了。到目前为止,我唯一的解决方案是修改文件,使其生成不同的 SHA ID,然后重新上传。

有没有办法手动将单个文件添加到 Gitlab 的 git-lfs 存储?

我猜想 git-lfs 没有在客户端推送的客户端正确安装。但是,如果您有 git-lfs 0.5.4,您应该可以通过以下方式修复它:

# git lfs push --object-id origin [oid] [oid] [oid]
$ git lfs push --object-id origin 28bbec36fe441b7de97d566872c71cd4542384d871b369168285408c1f062cfd