首页 > 其他分享 >git fatal: bad object HEAD

git fatal: bad object HEAD

时间:2023-11-18 18:13:26浏览次数:44  
标签:HEAD git object bad objects fatal

0 前言

昨天凌晨写了一点代码,结果git status的时候发现报错

codemon@codemon-laptop:~/codes/cpp_pro/Zpods$ git status
error: object file .git/objects/7e/4ba4b1a1d7ab1a9466e9d6f3d2b40199b2ebb3 is empty
error: object file .git/objects/7e/4ba4b1a1d7ab1a9466e9d6f3d2b40199b2ebb3 is empty
fatal: loose object 7e4ba4b1a1d7ab1a9466e9d6f3d2b40199b2ebb3 (stored in .git/objects/7e/4ba4b1a1d7ab1a9466e9d6f3d2b40199b2ebb3) is corrupt

本来改bug已经很烦了,结果又出了这个奇怪的问题。这个问题其实挺好解决的,网上也有挺多的教程,这里我不赘述,因为我引入了另一个问题。

我当时有bug了第一反应是问GPT,然后他让我用

# git检错工具
git fsck --full

# 删除损坏的对象
find .git/objects/ -size 0 -exec rm -f {} \;

# gc工具
git gc

!!结果,Tamade,引入了新的问题,就是git fatal: bad object HEAD,大概就是我HEAD指向的分支有问题。然后我根据教程改了半天,还是有问题。

1 尝试

我根据CSDN上的教程,比如这个可能有用的方法,但是并没有解决我的问题

2 最终解决方法

我最后参考了这篇文章

Git status fatal: bad object HEAD

大概思路就是: 用远端的.git替换本地已经损坏的.git

  1. 从远端git clone你的仓库到另一个地方
  2. cp -r命令将远端的.git文件拷贝到你原来的仓库

** 注意,不要将原来仓库的.git删掉,不然会丢失原来仓库的记录**

这样操作之后,你用git status就是当前本地和远端仓库的差异了

综上所述

一定要养成及时push的好习惯!!!

标签:HEAD,git,object,bad,objects,fatal
From: https://www.cnblogs.com/jye159X/p/17840824.html

相关文章

  • Git因文件过大导致提交失败解决方案
    问题描述git推送到远程时因个别文件过大导致推送失败Gitee托管平台对不同套餐的用户采用了不同的配额限制,详情可查阅Gitee产品文档解决方法1、查看超出限额的大文件命令如下,其中557b10ce603309c9a25c0e3924ce3d681104f18c为错误信息中给出的文件的哈希值gitrev-list--......
  • hudson.plugins.git.GitException: Failed to delete workspace
    持续集成环境(git+gitlab+jenkins+pipeline+maven+harbor+docker+k8s)之前都是ok的,突然就报错了:CloningtheremoteGitrepositoryCloningrepositorygit@192.168.117.180:qzcsbj/gift.gitERROR:Failedtocleantheworkspacejenkins.util.io.CompositeIOExc......
  • 使用openjdk17编译时报错:Fatal error compiling: 错误: 不支持发行版本 1.17
    1.在linux环境下(docker镜像里面)使用如下命令编译打包时报错mvncleanpackage-Dmaven.test.skip=true[INFO]Scanningforprojects...[INFO][INFO]---------------------<xxx.xxx:pero-xdd>----------------------[INFO]Buildingpero-xdd0.0.1-SNAPSHOT[INFO]-......
  • 冲刺秋招,备战24年春招,GitHub爆火的Android面试指南来袭!
    前言你有面试机会了吗?随着金九银十到来,肯定有很多小伙伴想抓住一年两次的机会,开始疯狂投简历了吧~但是事实是投出去的简历基本上HR都是已读不回收到面试邀请,被告知不用面试了参加了面试,就像走了个过场,成了HR的业绩指标面试通过,但是被放鸽子了...为什么?相信会有人想这样问,......
  • Git合并时一些鲜为人知的坑
    1. 反复解决同一个冲突最常见的原因:  多人团队中开启了rebase,对commit顺序造成破坏,使得merge其他分支时可能找不到原始commitid的关联信息,就需要重新merge conflicts.  2.明明合并完了,又让从头合并当然这和用rebase有关的,关键是已经解决了冲突,为啥还让从头再来......
  • git 切换公钥
     打开CMD1、ssh-keygen-trsa2、cdC:\Users\user5m/.ssh(输入对应的路径)3、ls(查看目录)4、catid_rsa.pub(查看当前公钥) 5、ssh-keygen-trsa-C'[email protected]'(输入git邮箱)6、复制生成的公钥并打开码云(添加SSH公钥) 完成以上操作即可拉取代码提交......
  • Git命令整理
    gitreset和gitrevert是Git版本控制系统中常用的命令,用于撤销提交或修改历史记录。它们的作用不同,下面对它们进行解析:gitreset:gitreset命令用于将当前分支的HEAD指针移动到指定的提交,并可以选择性地更改工作目录和暂存区的状态。它有不同的模式:gitreset--soft<......
  • ERROR: Permission to stevenlong123/test.git denied to smith-bing. fatal: Could n
    第一次练习git提交代码到github时出现的错误。这里就是说github服务器拒接了我们,不支持远程连接。发现是因为我使用的是ssh来提交的,ssh是安全连接需要通信双方各有一对公钥私钥,github服务器不会自动交换公钥,需要手动在github存储库中部署自己电脑的公钥。使用git命令“ls-al~/.s......
  • Git与Gitee的交互及配置忽略文件
    将本地项目提交到Gitee1、创建一个新的仓库:首先,在Gitee上创建一个新的仓库。2、初始化本地项目为Git仓库:这将在项目目录中创建一个名为".git"的隐藏文件夹,用于存储Git的相关配置和版本信息。gitinit3、将项目文件添加到暂存区:执行以下命令将项目文件添加到Git的暂存区:   ......
  • git
    1.gitignore文件不起作用的解决方案:gitrm-r--cached.gitadd.gitcommit-m'update.gitignore'2.拉取线上特定的分支(如:克隆dev分支的代码):gitclone-bdevgit-url//在本地创建分支dev并切换到该分支gitcheckout-bdev(本地分支名称)origin/dev(远程分支名称......