我得到了一个带有 LFS 的旧存储库,但一些(可能是较旧的)文件丢失了,所以我无法推送:
git push -u origin
Locking support detected on remote "origin". Consider enabling it with:
$ git config lfs.https://gitlab.com/gitlabaccount/repo.git/info/lfs.locksverify true
Unable to find source for object 43cb9e6d1d15bb8d31af911aa69a15a67174c5 (try running git lfs fetch --all)
Uploading LFS objects: 87% (600/691), 546 MB | 0 B/s, done
error: failed to push some refs to '[email protected]:gitlabaccount/repo.git'
据称我的同事运行了
git lfs fetch --all
,但并没有解决问题。
我真的想要一份最新的、所有历史记录的副本,以及一个现在可以运行的版本。我并不真正担心旧文件,我的偏好是完成推送并丢失一些丢失的 lfs 文件,但 lfs 错误不会让我这么做。
Gitlab 允许我在项目上禁用 lfs,但我不知道如果我这样做,大小/限制会发生什么。不确定在服务器或客户端上启用然后禁用它的正确过程是什么。或者,推送是否有“忽略丢失的文件”选项?
你可以使用下面的方法忽略它,它会忽略 git lfs 的 pre-push hook
git push --no-verify
git config lfs.allowincompletepush true
对我有用。它忽略损坏的 lfs 对象。