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

解决方案:
- 运行
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)已损坏
- 在.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
- 再次运行
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
- 手动获取最后两条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 <ifeng190410@gmail.com> 1684228848 +0800 commit: feature: 注册功能实现流程-客户端请求发送短信并实现短信倒计时冷却提示!
- head当前是指向最新的那一条记录, 所以我们看一下parent commit即倒数第二次提交
git show 377adde104760d582bf76985a95f5c2262491b1c
(base) ifeng@ubuntu:~/Desktop/luffycity$ git show 377adde104760d582bf76985a95f5c2262491b1c
可以看到内容是正常的
那么我们就重新设置head, 使其指向倒数第二条
git update-ref HEAD 377adde104760d582bf76985a95f5c2262491b1c最后我们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: 无法推送一些引用到 'git@gitee.com: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.
- 最后再去提交重新提交我们的代码就完成了
(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上传对象文件错误解决方案的更多相关文章
- git 上传本地文件到github
git 上传本地文件到github 1 git config --global user.name "Your Real Name" 2 git config --global u ...
- Git上传空文件夹
git上传的文件夹为空的时候 1,先删除空的文件夹 参考:https://www.cnblogs.com/wang715100018066/p/9694532.html 2,这个只能说是技巧不能说是方 ...
- Web上传大文件的解决方案
需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...
- JS上传大文件的解决方案
最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...
- B/S上传大文件的解决方案
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = ...
- php无法上传大文件完美解决方案
php.ini无法上传大文件完美解决办法 1.打开php.ini(打开方式就不用说了,百度一大堆) 2.查找post_max_size 表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表 ...
- 上传文件到CDN,上传后文件错误。
开始用xfp上传,发现文件错误.后来改用filezilla,上传后文件正确.害苦了我啊
- vue上传大文件的解决方案
众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路. 实现文件夹 ...
- .net上传大文件的解决方案
ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现. 下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压. ASP.NE ...
- asp.net上传大文件的解决方案
IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...
随机推荐
- Python通过ssh登录实现报文监听
Python自动化ssh登录目标主机,实现报文长度length 0监听,并根据反馈信息弹窗报警: 代码比较简陋,后续记得优化改进. #_*_coding:utf-8 _*_ #!/usr/bin/py ...
- 【读书笔记】Nice Families Of GF
目录 Nice Families Of GF rational rational algebraic D-finite总览 下定义 逻辑关系 例子 更多的例子和判别法 运算是否有性质? 运算是否有性质 ...
- 2023最新ELK日志平台(elasticsearch+logstash+kibana)搭建
前言 去年公司由于不断发展,内部自研系统越来越多,所以后来搭建了一个日志收集平台,并将日志收集功能以二方包形式引入自研系统,避免每个自研系统都要建立一套自己的日志模块,节约了开发时间,管理起来也更加容 ...
- .Net 6.0全局异常捕获
背景: 全局异常捕获是我们开发当中不可获取的一个环节,顾名思义就是全局的捕获异常,并响应出去,今天就带着各位童鞋们在.Net 6.0当中如何做到全局异常捕获. 思路: 我们可以通过请求管道达到我们全局 ...
- RHCE服务---Web
网站需求:请给openlab搭建web网站 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息,教学资 ...
- 跨域解决方案CORS
这里说的 js 跨域是指通过 js 在不同的域之间进行数据传输或通信,例如通过 ajax 向一个不同的域请求数据,或者通过 js 获取页面中不同域中(iframe)的数据.只要协议.域名.端口有任何一 ...
- swiper.js Bscroll 轮播
<!-- 轮播banner图 --> <div class="banner"> <div class="swiper-container&q ...
- vue中优雅的使用定时器
1.常见方法.在data中声明一个变量,定时器绑定到变量中,然后在beforeDestory中销毁这个定时器 举个例子 首先我在data函数里面进行定义定时器名称 data() { return { ...
- CentOS7-自动化部署web集群
一.项目要求 1.创建role,通过role完成项目(可能需要多个role) 2.部署nginx调度器(node2主机) 3.部署2台lnmp服务器(node3,node4主机) 4.部署mariad ...
- WPF 界面布局、常用控件入门教程实例 WPF入门学习控件快速教程例子 WPF上位机、工控串口通信经典入门
WPF(Windows Presentation Foundation)是一种用于创建 Windows 桌面应用程序的框架,它提供了丰富的控件库和灵活的界面布局,可以创建现代化的用户界面.下面是 WP ...