GitLab push error: LFS objects are missing
GitLab push error: LFS objects are missing
我已经将 Git LFS 用于 GitLab 几个月了,没有任何问题,但最近在推送文件时返回以下错误:
$ git push origin master
Git LFS: (14 of 14 files) 8.88 MB / 8.88 MB
Counting objects: 54, done.
Delta compression using up to 6 threads.
Compressing objects: 100% (49/49), done.
Writing objects: 100% (54/54), 5.42 KiB | 0 bytes/s, done.
Total 54 (delta 15), reused 0 (delta 0)
remote: GitLab: LFS objects are missing. Ensure LFS is properly set up or try a manual "git lfs push --all".
To https://gitlab.com/<gitURL>.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://gitlab.com/<gitURL>.git'
其中 gitURL
是我的 git-存储库 URL。
正如错误提示的那样,我尝试使用 git lfs push --all
手动推送我的二进制文件,这给了我以下输出:
$ git lfs push --all origin master
Git LFS: (0 of 0 files, 1370 skipped) 0 B / 0 B, 1.77 GB skipped
这意味着我的所有本地文件都已成功存储在我的服务器上。
尝试获取所有 lfs 文件也能正常工作:
$ git lfs fetch --all
Scanning for all objects ever referenced...
* 1446 objects found
Fetching objects...
完成时没有任何错误。
此外,使用 git lfs fsck
检查所有 lfs 文件的一致性似乎也能正常工作:
$ git lfs fsck
Git LFS fsck OK
我现在开始 运行 没有关于修复此错误的想法。
任何帮助将不胜感激。
我们在 GitLab 上的存储库最近引入了自己的 LFS 支持时,就发生了这种情况。如果你想继续使用你自己的 LFS 那么这个过程是相当痛苦的 - 你需要在每个存储库上禁用他们自己的 LFS 支持,但似乎没有一个 web 选项,你需要通过他们来做命令行 API:
- 安装pythongitlab命令行API:
pip install python-gitlab
- 为您的帐户设置一个私有的 gitlab 令牌,在您的帐户配置文件的访问令牌部分生成它。
写一个配置文件到 ~/.python-gitlab.cfg
:
[global]
default = yourrepo
ssl_verify = true
timeout = 20
[yourrepo]
url = https://gitlab.com/
private_token = <your API key from the settings tab on gitlab.com>
从设置网页的顶部获取您的 gitlab 项目 ID
gitlab project update --lfs-enabled false --id <Your project id>
我们的一些开发人员报告说,即使这样也行不通,他们不得不向 https://gitlab.com/api/v4/projects/<Your project id>?lfs_enabled=false
发送手动 HTTP PUT 请求,并将 Private-Token header 设置为您的私人令牌。例如,使用 CURL:
curl -X PUT --header "Private-Token: <private token>" -F "lfs_enabled=false" https://gitlab.com/api/v4/projects/<project id>
这个命令帮助了我:
git lfs ls-files -l | awk '{ print }' | xargs git lfs push --object-id origin
而且比其他答案更快。
尽管(据我所知)我的 gitlab 存储库中没有任何 LFS 对象,但我还是收到了这个错误。
remote: GitLab: LFS objects are missing. Ensure LFS is properly set up or try a manual "git lfs push --all".
解决方案是在 gitlab 项目设置中禁用 Git 大文件存储 (LFS)。
设置 > 常规 > 可见性、项目功能、权限 > 展开 > Git 大文件存储 (LFS)
我已经将 Git LFS 用于 GitLab 几个月了,没有任何问题,但最近在推送文件时返回以下错误:
$ git push origin master
Git LFS: (14 of 14 files) 8.88 MB / 8.88 MB
Counting objects: 54, done.
Delta compression using up to 6 threads.
Compressing objects: 100% (49/49), done.
Writing objects: 100% (54/54), 5.42 KiB | 0 bytes/s, done.
Total 54 (delta 15), reused 0 (delta 0)
remote: GitLab: LFS objects are missing. Ensure LFS is properly set up or try a manual "git lfs push --all".
To https://gitlab.com/<gitURL>.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://gitlab.com/<gitURL>.git'
其中 gitURL
是我的 git-存储库 URL。
正如错误提示的那样,我尝试使用 git lfs push --all
手动推送我的二进制文件,这给了我以下输出:
$ git lfs push --all origin master
Git LFS: (0 of 0 files, 1370 skipped) 0 B / 0 B, 1.77 GB skipped
这意味着我的所有本地文件都已成功存储在我的服务器上。
尝试获取所有 lfs 文件也能正常工作:
$ git lfs fetch --all
Scanning for all objects ever referenced...
* 1446 objects found
Fetching objects...
完成时没有任何错误。
此外,使用 git lfs fsck
检查所有 lfs 文件的一致性似乎也能正常工作:
$ git lfs fsck
Git LFS fsck OK
我现在开始 运行 没有关于修复此错误的想法。 任何帮助将不胜感激。
我们在 GitLab 上的存储库最近引入了自己的 LFS 支持时,就发生了这种情况。如果你想继续使用你自己的 LFS 那么这个过程是相当痛苦的 - 你需要在每个存储库上禁用他们自己的 LFS 支持,但似乎没有一个 web 选项,你需要通过他们来做命令行 API:
- 安装pythongitlab命令行API:
pip install python-gitlab
- 为您的帐户设置一个私有的 gitlab 令牌,在您的帐户配置文件的访问令牌部分生成它。
写一个配置文件到
~/.python-gitlab.cfg
:[global] default = yourrepo ssl_verify = true timeout = 20 [yourrepo] url = https://gitlab.com/ private_token = <your API key from the settings tab on gitlab.com>
从设置网页的顶部获取您的 gitlab 项目 ID
gitlab project update --lfs-enabled false --id <Your project id>
我们的一些开发人员报告说,即使这样也行不通,他们不得不向 https://gitlab.com/api/v4/projects/<Your project id>?lfs_enabled=false
发送手动 HTTP PUT 请求,并将 Private-Token header 设置为您的私人令牌。例如,使用 CURL:
curl -X PUT --header "Private-Token: <private token>" -F "lfs_enabled=false" https://gitlab.com/api/v4/projects/<project id>
这个命令帮助了我:
git lfs ls-files -l | awk '{ print }' | xargs git lfs push --object-id origin
而且比其他答案更快。
尽管(据我所知)我的 gitlab 存储库中没有任何 LFS 对象,但我还是收到了这个错误。
remote: GitLab: LFS objects are missing. Ensure LFS is properly set up or try a manual "git lfs push --all".
解决方案是在 gitlab 项目设置中禁用 Git 大文件存储 (LFS)。
设置 > 常规 > 可见性、项目功能、权限 > 展开 > Git 大文件存储 (LFS)