首页 > 其他分享 >git上传对象文件错误解决方案

git上传对象文件错误解决方案

时间:2023-05-27 12:55:05浏览次数:31  
标签:git 解决方案 ifeng feature luffycity objects user 上传

git上传对象文件错误解决方案

​ 时隔一个星期, 当我再次完成开发之后, 准备将代码上传, 却出现了一个上传代码的错误, 记录一下错误和解决方案

解决方案:

  1. 运行git fsck --full
(base) ifeng@ubuntu:~/Desktop/luffycity$ git fsck --full
error: 对象文件 .git/objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520 为空
error: 对象文件 .git/objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520 为空
fatal: 松散对象 c9e590416bbe286dc32a17ddf14670ebb52e4520(保存在 .git/objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520)已损坏

  1. 在.git目录下find . -type f -empty -delete -print 会删除全部空文件
(base) ifeng@ubuntu:~/Desktop/luffycity$ cd .git
(base) ifeng@ubuntu:~/Desktop/luffycity/.git$ find . -type f -empty -delete -print 
./FETCH_HEAD
./objects/cd/cd1a2512ad47d7e2290b02a2a77ea79277e7c9
./objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520
./objects/6a/871d8bf9b841b8febcc3a4c7c6c17ac9557a79
./objects/82/01d128f3356e1cbe2c2413ff422c53974b80db
./objects/2c/cdc2e45330ea23f1fb2f1cf133c7e9dc54680b
./objects/2c/65cffca3b6403b675f19701f41e64f3166401f
./objects/71/420f984a2d039563d7b80cb295f37e55b45ad3
  1. 再次运行git fsck --full, 还是有错,head指向元素不存在,是之前一个空文件,我们已经删了
(base) ifeng@ubuntu:~/Desktop/luffycity/.git$ git fsck --full
正在检查对象目录: 100% (256/256), 完成.
error: refs/heads/feature/user:无效的 sha1 指针 c9e590416bbe286dc32a17ddf14670ebb52e4520
error: refs/remotes/origin/feature/user:无效的 sha1 指针 c9e590416bbe286dc32a17ddf14670ebb52e4520
error: HEAD:无效的 sha1 指针 c9e590416bbe286dc32a17ddf14670ebb52e4520
error: 71420f984a2d039563d7b80cb295f37e55b45ad3:cache-tree 中无效的 sha1 指针
悬空 blob 38fae659ca427cf6d82705f281bd6549bb3bef41
悬空 tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
悬空 blob a517beeb35b0c70cd4b361ec6e085e58ef47c225
  1. 手动获取最后两条reflog, 运行tail -n 2 .git/logs/refs/heads/feature/user, 后面的部分就是上面信息的路径
(base) ifeng@ubuntu:~/Desktop/luffycity$ tail -n 2 .git/logs/refs/heads/feature/user
03f77f97f3f2f687186f74b7ceaee4e9c6103dde 377adde104760d582bf76985a95f5c2262491b1c ifeng <[email protected]> 1684228848 +0800	commit: feature: 注册功能实现流程-客户端请求发送短信并实现短信倒计时冷却提示!
  1. head当前是指向最新的那一条记录, 所以我们看一下parent commit即倒数第二次提交git show 377adde104760d582bf76985a95f5c2262491b1c
(base) ifeng@ubuntu:~/Desktop/luffycity$ git show 377adde104760d582bf76985a95f5c2262491b1c

可以看到内容是正常的

  1. 那么我们就重新设置head, 使其指向倒数第二条git update-ref HEAD 377adde104760d582bf76985a95f5c2262491b1c

  2. 最后我们git push的时候发现还是有错

(base) ifeng@ubuntu:~/Desktop/luffycity$ git push origin feature/user
error: refs/remotes/origin/feature/user 没有指向一个有效的对象!
error: refs/remotes/origin/feature/user 没有指向一个有效的对象!
To gitee.com:i__feng/luffycity.git
 ! [rejected]        feature/user -> feature/user (fetch first)
error: 无法推送一些引用到 '[email protected]:i__feng/luffycity.git'
提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外
提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 'git pull ...')。
提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节。

根据错误提示执行git pull origin feature/user我们从远程仓库自动合并feature/user

(base) ifeng@ubuntu:~/Desktop/luffycity$ git pull origin feature/user
来自 gitee.com:i__feng/luffycity
 * branch            feature/user -> FETCH_HEAD
自动合并 luffycityapi/luffycityapi/apps/users/serializers.py
Merge made by the 'recursive' strategy.
  1. 最后再去提交重新提交我们的代码就完成了
(base) ifeng@ubuntu:~/Desktop/luffycity$ git push origin feature/user
枚举对象中: 28, 完成.
对象计数中: 100% (27/27), 完成.
使用 4 个线程进行压缩
压缩对象中: 100% (13/13), 完成.
写入对象中: 100% (14/14), 2.16 KiB | 736.00 KiB/s, 完成.
总共 14 (差异 6),复用 0 (差异 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:i__feng/luffycity.git
   c9e5904..ff1c1a9  feature/user -> feature/user

标签:git,解决方案,ifeng,feature,luffycity,objects,user,上传
From: https://www.cnblogs.com/huxiaofeng1029/p/17436594.html

相关文章

  • Spring boot+vue打包、上传宝塔面板并配置https
    终于把网站搞完了,也终于能够通过域名访问了,这次就简单回顾一下这么多时间的经历,总结一下。项目地址穆音博客,本文发布原地址在Springboot+vue打包、上传宝塔面板并配置https我的开发环境是前端使用vue-admin-template,后端使用Springboot+mybatis-plus,由于我要根据后端打包的效......
  • git命令
    gitremoteupdateorigin——prune查看远程分支gitcheckout分支名切换分支gitstatus—s获取所有的修改的文件gitadd需要提交的修改名将文件添加到本地gitcommit—m“提交注释”将文件提交到本地gitpushorigin分支名推送到某一个分支gitbr......
  • 道路摊铺机远程监控物联网解决方案
    道路摊铺机是一种主要用于高速公路上各种材料摊铺作业的施工设备。摊铺作业中,上下料与路面压实等工作无法实时监测,影响到道路使用寿命与行车安全,大量的建设资金可能被白白浪费掉。而在数字化智能化技术支持下,摊铺设备可以实现数字化实时监控,能够帮助用户快速进行管理控制,保证摊铺工......
  • nvm安装多版本node,vscode不识别npm函数解决方案
    问题:npm:无法将“npm”项识别为cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次的解决方案解决办法:(首先确定cmd当中是能够正常显示node和npm版本问题) 1、第一种办法:设置管理员权限 2、第二种办法:在Vscode......
  • ubuntu 安装gitlab
    1.下载https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/apt/packages.gitlab.com/gitlab/gitlab-ce/ubuntu/pool/focal/main/g/gitlab-ce/选一个 2.安装 dpkg-igitlab-ce_13.10.0-ce.0_amd64.deb3.改配置vi/etc/gitlab/gitlab.rbexternal_url'http://192.168.31.......
  • Github疯传!200本计算机经典书籍!
    好书在精不在多,每一本经典书籍都值得反复翻阅,温故而知新!下面分享几本计算机经典书籍,都是我自己看过的。重构改善既有代码的设计就像豆瓣评论所说的,看后有种醍醐灌顶、欲罢不能的感觉。无论你是初学者,还是深耕多年的老手,这本书都值得你深度品读。作者有丰富的编程经验和思想,总......
  • Gitea Docker 备份恢复
    关于GiteaDocker备份恢复,可以参考以下链接:Gitea官方文档:https://docs.gitea.io/en-us/backup-and-restore/DockerHub上的Gitea镜像文档:https://hub.docker.com/r/gitea/gitea/GitHub上的Gitea仓库:https://github.com/go-gitea/gitea以下是一些关于GiteaDocker备......
  • 极光笔记 | EngageLab Push的多时区解决方案
    01、引言多时区问题一直是全球客户和终端用户面临的挑战之一。EngageLabPush致力于解决这个问题,确保全球各地的终端用户可以平等地享受到同样的推送服务,同时让客户能够更好地管理不同时区的应用和对应的终端用户。02、解决多时区问题的总体方案1、在服务器端,所有涉及时间的信息统......
  • git
    git使用1、git初始化方式:gitinit#用于初始化仓库在本地运行gitclone#用于克隆远端的仓库gitstatus#用于查看git仓库的状态![截屏2023-05-2310.18.44(2)](/Users/shiwu/Desktop/截屏2023-05-2310.18.44(2).png)2、git的工作流分为三块分别是工作区......
  • Java大文件分片上传/多线程上传方案
    ​ 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。先说下要求:PC端全平台支持,要求支持Windows,Mac,Linux支持所有浏览器。支持文件批量上传支持文件夹上传,且要求在服务端保留层级结构。文件夹数量要求支持到10W......