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

这篇具有很好参考价值的文章主要介绍了git上传对象文件错误解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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 <ifeng190410@gmail.com> 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: 无法推送一些引用到 'git@gitee.com:i__feng/luffycity.git'
提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外
提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 'git pull ...')。
提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节。

根据错误提示执行git pull origin feature/user我们从远程仓库自动合并feature/user文章来源地址https://www.toymoban.com/news/detail-460958.html

(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上传对象文件错误解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案

    【GIT】本地和远程test关联 【GIT】当前本地分支与远程关系解除(及解除后再次绑定) 【GIT】分支校验 【GIT】基于IDEA使用GIT提示:无法将“awk\\\"项识别为 cmdet、数、脚本文件或可运行程序的名称。请检查名称的排写,如果包括 【GIT】看时间段内个人代码行数(记得修改作者名

    2024年02月05日
    浏览(29)
  • nginx文件上传大小限制解决方案

    nginx配置附件上传大小限制。 用 nginx 做代理。上传超过 1M 大的客户端文件无法正常上传, nginx 直接报错,上传文件太大( 413 Request Entity Too Large )于是修改了下 nginx 的配置,就可以了。   client_max_body_size 1024m; 可放在 http 下控制全局大小限制,大小根据需求配置,最大为

    2024年02月17日
    浏览(40)
  • 在提交文件到gitee远程仓库时报用户名密码错误 fatal: Authentication failed for ‘https://gitee.com/xxx/xxx.git 解决方案来啦 亲测有效

    在提交文件到gitee远程仓库时,突然出现一个弹框输入用户名 密码 很懵逼 输入了结果是错误的 D:文件名git push -u origin \\\"master\\\" remote: [session-fa417d86] Akiko: Incorrect username or password (access token) fatal: Authentication failed for \\\'https://gitee.com/xxx/文件名.git/\\\'      此刻如果再提交一遍 还是会

    2024年02月16日
    浏览(46)
  • java大文件上传,大文件下载解决方案

    普通的Servlet文件上传: 使用Java Servlet技术,通过表单提交文件,然后在服务器端使用流将文件写入磁盘。这适用于小文件,但不太适合大文件,因为需要将整个文件加载到内存中。 Apache Commons FileUpload: 这是一个常用的开源库,用于处理文件上传。它支持流式处理文件,适

    2024年01月20日
    浏览(30)
  • ThinkPHP文件上传:简便安全的解决方案

    在现代Web应用程序中,文件上传是一项常见而重要的功能。ThinkPHP是一种流行的PHP开发框架,提供了便捷而安全的文件上传解决方案。本文将介绍ThinkPHP框架中的文件上传功能,并探讨如何使用它来实现安全可靠的文件上传功能。 一、ThinkPHP文件上传的基本用法 ThinkPHP提供了丰

    2024年02月11日
    浏览(37)
  • Selenium中出现‘WebDriver‘对象没有‘find_element_by_xpath‘属性的错误解决方案(Python)

    Selenium中出现’WebDriver’对象没有’find_element_by_xpath’属性的错误解决方案(Python) Selenium是一个用于自动化Web浏览器测试的强大工具。它提供了许多方法来定位和操作网页元素。其中一种常用的方法是使用XPath来定位元素。然而,有时你可能会遇到一个错误,提示’WebDrive

    2024年02月04日
    浏览(28)
  • 一文了解IntelliJ IDEA如何使用git上传代码到GitHub(附常见问题解决方案)

    本文对应知识库文档(持续更新常见问题解决方案中ing) IntelliJ IDEA使用以及下载 (yuque.com) IDEA使用 git 参考链接 https://www.cnblogs.com/chenchenzi/p/14923708.html 解决访问Github出现的Couldn‘t connect to server错误 解决访问Github出现的Couldn‘t connect to server错误-CSDN博客 解决IDEA中用Git推送时

    2024年02月04日
    浏览(50)
  • [解决方案]运行时错误‘53’,文件未找到:MathPage.WLL

    mathtype使用报错,运行时错误‘53’,文件未找到:MathPage.WLL 一、首先确定自己电脑的位数(这里默认大家的电脑都是64位) 二、右击MathType桌面图标,点击“打开文件所在位置”,然后找到MathPage.WLL文件所在位置 MathPage.WLL位置:D:mathtypeMathPage64MathPage.WLL 然后复制一份,放

    2024年01月20日
    浏览(46)
  • 大文件切片上传+断点续传解决方案-前后端实现(附源码)

    上传文件大家应该都做过,前端直接把file文件传给后端就ok了,但是大文件这样传就会造成页面假死,体验极差。如果遇到网络不稳定的时候,中途上传失败的话,又要从头开始传,本来文件就大,还慢。所以今天我们用一种新方法-切片上传+断点续传 页面上很简单,我就放

    2024年02月09日
    浏览(33)
  • git部分文件不想提交解决方案

    正确的做法应该是:git rm --cached logs/xx.log,然后更新 .gitignore 忽略掉目标文件,最后 git commit -m \\\"We really don\\\'t want Git to track this anymore!\\\" 具体的原因如下: 被采纳的答案虽然能达到(暂时的)目的,但并非最正确的做法,这样做是误解了 git update-index 的含义,而且这样做带

    2024年02月02日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包