作者:mobiledu2502917563 | 来源:互联网 | 2023-01-08 11:42
我已经将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/.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://gitlab.com/.git'
gitURL
我的git-repository 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...
完成没有任何错误.
此外,检查所有lfs文件的一致性git lfs fsck
似乎也可以正常工作:
$ git lfs fsck
Git LFS fsck OK
我现在开始没有关于修复此错误的想法了.任何帮助将不胜感激.
1> mfj..:
当他们最近引入自己的LFS支持时,这发生在我们的GitLab存储库中.如果你想继续使用你自己的LFS,那么这个过程相当痛苦 - 你需要在每个存储库上禁用它们自己的LFS支持,但似乎没有它的web选项,你需要通过它们来做命令行API:
安装python gitlab命令行API: pip install python-gitlab
为您的帐户设置私人gitlab令牌,并在您的帐户个人资料的访问令牌部分生成它.
将配置文件写出~/.python-gitlab.cfg
:
[global]
default = yourrepo
ssl_verify = true
timeout = 20
[yourrepo]
url = https://gitlab.com/
private_token =
从设置网页的顶部抓取您的gitlab项目ID
gitlab project update --lfs-enabled false --id
我们的一些开发人员报告说,即使这样也不起作用,他们不得不求助于发送手动HTTP PUT请求,https://gitlab.com/api/v4/projects/?lfs_enabled=false
并将私有令牌头设置为您的私人令牌.例如,使用CURL:
curl -X PUT --header "Private-Token: " -F "lfs_enabled=false" https://gitlab.com/api/v4/projects/
从历史上看,GitLab没有提供LFS支持,所以很多人都会在他们的回购中设置自己的解决方案.这个答案允许您转换新的GitLab LFS支持并继续使用您自己的支持.