解决git错误: error object file is empty , The remote end hung up unexpectedly

2023-10-30

今天执行git pull时遇到麻烦,应该是昨天电脑异常关机造成的git数据损坏:

$git pull
error: object file .git/objects/88/526655aa4eca14ead2d443e80082276a79e0c2 is empty
error: object file .git/objects/88/526655aa4eca14ead2d443e80082276a79e0c2 is empty
fatal: loose object 88526655aa4eca14ead2d443e80082276a79e0c2 (stored in .git/objects/88/526655aa4eca14ead2d443e80082276a79e0c2) is corrupt
fatal: The remote end hung up unexpectedly

这种情况以前也偶尔遇到过,我当时的解决办法又笨又简单,就是删除当前代码重新从远程仓库下载一份代码,反正只要确保远程仓库是最新完整的代码就没问题。
这次不同了,本地有不少花时间生成的中间结果代码,删除之后重建要花时间,所以就不想用这么笨的办法。
在stackoverflow上找到这篇文章《how to fix GIT error: object file is empty?》,几个answer提供了不同的解决方式,第一种方法,好烦好复杂,看不下去,后来发现国内不少翻译这篇文章的帖子,介绍的就是第一种方法。

而第二个answer提供的方法就简单明白许多,过程就三步:

在这里插入图片描述

于是尝试用这个办法:

step1:
删除所有因为数据损坏导致的空对象文件(remove any empty object files)。执行第一步没有任何输出

$ find .git/objects/ -type f -empty | xargs rm

step2:
下载上一步删除的对象文件(fetch down the missing objects)

$ git fetch -p
error: refs/heads/master does not point to a valid object!
error: refs/remotes/origin/master does not point to a valid object!
error: refs/heads/master does not point to a valid object!
error: refs/remotes/origin/master does not point to a valid object!
error: refs/heads/master does not point to a valid object!
error: refs/remotes/origin/master does not point to a valid object!
error: refs/heads/master does not point to a valid object!
error: refs/remotes/origin/master does not point to a valid object!
error: refs/heads/master does not point to a valid object!
error: refs/remotes/origin/master does not point to a valid object!
remote: Counting objects: 118, done.
remote: Compressing objects: 100% (113/113), done.
remote: Total 118 (delta 92), reused 0 (delta 0)
Receiving objects: 100% (118/118), 15.90 KiB | 0 bytes/s, done.
Resolving deltas: 100% (92/92), completed with 26 local objects.
From https://gitee.com/l0km/app
 * [new branch]      master     -> origin/master

step3:
做一次全面的存储对象检查(do a full object store check)

$ git fsck --full
Checking object directories: 100% (256/256), done.
Checking objects: 100% (6619/6619), done.
dangling commit 18086406efd2c3e37dc478744304dd2a758206bb
dangling blob 760bbd43e62054478eb3edbffd88ea65adb3f094
dangling commit fcc10548cc0d06de24b2903cf3ec745bb78185cb
dangling blob 234ff40df2a81d1a2625aae8ef76f6c7c92dc5f6
dangling blob 38e25f663bff5ebec04fa559500860e90fd4bf23
dangling commit 406f700c73b3a263604fea2a464634b389153835
dangling commit bcfcb27bfdb5d54b80557a9723bcbcab6b601a90

三步完成之后,再次执行git pull,错误消失,成功。

$ git pull
Updating 8852665..f66f1dd
Fast-forward
 CMakeLists.txt                                 |  4 +--
 dependencies/build_mgncs.sh                    |  1 +
 dependencies/cmake/Modules/FindLIBCONFIG.cmake |  4 ++-
 dependencies/cmake/Modules/FindMGNCS.cmake     |  2 +-
 dependencies/cmake/Modules/FindMGPLUS.cmake    |  2 +-
 dependencies/cmake/Modules/FindMGUTILS.cmake   |  2 +-
 dependencies/cmake/Modules/FindMINIGUI.cmake   |  2 +-
 dependencies/cmake/Modules/depcommon.cmake     | 22 +++++++-----
 dependencies/mips_build_mgncs.sh               | 47 +++++++++++++-------------
 facelock/CMakeLists.txt                        |  6 +++-
 10 files changed, 52 insertions(+), 40 deletions(-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决git错误: error object file is empty , The remote end hung up unexpectedly 的相关文章

  • 如何在 VS Code 中仅提交跟踪文件?

    git status 显示以下三个信息 要提交的变更 分阶段变更 未暂存提交的更改 未暂存更改 未跟踪的文件 我曾经git commit a 它提交 1 和 2 然而VS代码Commit All提交 1 2 和 3 Commit Stage
  • Git:当文件位于嵌套 git 存储库中时强制“添加”

    我想添加一个包含在父存储库中的嵌套 git 存储库中的文件 我正在开发一个在我的项目中使用的库 然而git add nested repo myfile不做任何事情 我可以尝试重命名 git文件在进行提交时 但是当我重命名回时 我担心会出现
  • 如何列出 Git 1.7+ 中的所有远程分支?

    我试过了git branch r 但这仅列出我在本地跟踪的远程分支 如何找到我没有的列表 命令是否列出对我来说并不重要all远程分支或仅那些未跟踪的分支 For the vast majority 1 of visitors here th
  • Git ref master 现在为空,如何恢复?

    我不完全确定发生了什么 但由于某种原因 我的 git 存储库的主引用文件现在是空的 我们在 Dropbox 上托管存储库 所以也许与此有关 但现在我无法从中提取 它是这么说的 Your configuration specifies to
  • Git 拉回 master 中的提交?

    一位同事 我们称之为亚伦 被指派翻新网站的一部分作为长期项目 他创建了一个新的 Git 分支 名为aaron 他所有的改变都是在这个分支上进行的 当他工作时 我继续维护整个网站 将我的更改提交给master 最终 Aaron 将他的分支合并
  • 如何在 git diff 中按标点符号拆分单词?

    我对以下命令有一些运气 git diff color words lt gt space lt gt 但它似乎没有在第一个字符类中正确地否定方括号 我试过这个 git diff color words lt gt space lt gt 为
  • 命令来确定当前 HEAD 的上游引用?

    我正在寻找我所希望的简单的一行命令确定当前签出分支的正确上游引用 本质上就像是 git branch remote HEAD 如果有效 会将符号模式 HEAD 转换为当前分支名称 然后选项 remote然后将其更改为远程跟踪分支的引用 但它
  • Git 中的专有+开源设置? (例如铬/铬)

    您将如何设置一个拥有专有版本和开源版本 例如 Chrome 和 Chromium 的代码存储库 对于 Git 您会使用两个分支还是两个存储库 您如何使 私有 版本与开源版本保持同步 如果是我 我会有两个存储库 这样 您就可以对每个版本拥有不
  • 如何像对待普通目录一样对待嵌套存储库(子模块)?

    我的 WordPress 网站是使用 Git 进行版本控制的 包括wp content plugins 文件夹 现在有一个插件 wp editormd 带有自己的 Git 存储库 wp content plugins wp editormd
  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位
  • 是否存在比 SVN 更快的集中版本控制?

    我已经使用 SVN 很长时间了 现在我们正在尝试使用 Git 我在这里谈论的不是中心化 去中心化的争论 我唯一关心的是速度 后一个工具要快得多 但有时 我需要使用一种集中式方法 这种方法比分散式方法更简单 更简单 学习曲线非常快 这节省了大
  • 警告:您的 git 版本是 1.9.3。存在严重的安全漏洞

    我在部署到 Heroku 期间收到有关 git 1 9 3 严重安全漏洞的警告 我尝试通过 homebrew 更新 git 但发现 git 最初并不是通过 homebrew 安装的 然后我通过自制程序安装了它 brew update bre
  • 具有单独 work_tree 的 Git 子模块

    我按照本页上的教程使通过 Git 部署我的网站变得简单 http toroid org ams git website howto http toroid org ams git website howto 到目前为止一切都很好 但是我最近
  • Windows 版 GitKraken 中的文件名太长

    正如建议的Q22575737 https stackoverflow com a 22575737 6623589 我已经更新了我的注册表并设置了git config system core longpaths true在处理长路径时 问题
  • 在 git repo 中查找超过 x MB 且 HEAD 中不存在的文件

    我有一个 Git 存储库 用于存储随机的内容 主要是随机脚本 文本文件 我设计的网站等 随着时间的推移 我删除了一些大型二进制文件 通常为 1 5MB 这些文件会增加存储库的大小 而我在修订历史记录中不需要这些文件 基本上我希望能够做到 m
  • vscode通过SSH连接gitlab的问题

    我在尝试通过 SSH 连接到 GitLab 远程存储库时遇到问题 这里是迄今为止完成的步骤 成功生成 SSH 密钥 管理人员将密钥添加到存储库中 因此当我访问 GitLab 网站时 我可以提交和发布分支 我无法从 VSCODE 发布分支并收
  • git 预提交钩子格式代码 - Intellij/Android Studio

    本要点展示了如何在预提交时使用 Eclipse 格式化程序自动格式化 Java 代码 Source https gist github com ktoso 708972 https gist github com ktoso 708972
  • 重新打包存储库对于大型二进制文件有用吗?

    我正在尝试将大量历史记录从 Perforce 转换为 Git 并且一个文件夹 现在是 git 分支 包含大量大型二进制文件 我的问题是运行时内存不足git gc aggressive 我的主要问题是重新打包存储库是否可能对大型二进制文件产生
  • git - 更新 fork 的 master 并将我的分支重新建立到它之上?

    我分叉了一个 github 项目 然后将其克隆到本地 然后我在新分支中做了一些更改my github the project repo 然后我添加并提交了更改 并推送到我的 github 存储库并提交了拉取请求 所有者已收到我的请求 并希望
  • git pull,忽略深度,如何不拉取整个历史记录?

    我们有一个巨大的多 GB git 存储库 主要是二进制对象 克隆需要几天时间 实际的主分支 没有历史记录 只有大约 20MB 所以我想 深度为 1 的 git 克隆就是解决办法 然而 现在我需要将某人的更新拉到主服务器 我们没有分支 当我拉

随机推荐

  • 统计json数组元素个数的函数

    js function getJsonLength jsonData var jsonLength 0 for var item in jsonData jsonLength return jsonLength len getJsonLen
  • 【漏洞复现】CVE-2023-23752 Joomla权限绕过漏洞

    环境搭建 sudo docker compose up d 查看端口号 sudo docker ps 服务启动后 访问http your ip 8080即可查看到Joomla页面 这个漏洞是由于错误的属性覆盖导致的 攻击者可以通过在访问Re
  • Linux网络编程_Ubuntu环境配置安装

    文章目录 一 基于vmware虚拟机安装Ubuntu系统 虚拟机 1 vmware下载 2 Ubuntu系统下载 3 配置 3 1 无法连网 这里很容易出现问题 3 2 更换国内源 3 3 无法屏幕适配全屏 3 4 汉化 二 直接安装Ubu
  • Android设置自定义录视频宽高比

    安卓视频开发中 往往需要动态设置录视频宽高比 java 声明预览的宽高和屏幕宽高 private int previewWidth 480 screenWidth 480 private int previewHeight 480 scre
  • 域渗透基础知识(四)之域组

    目录 域组 组类型 组的作用域 域本地组 Domain Local Group 全局组 Global Group 域组的查询 活动目录中内置的组 内置的本地域组 内置的全局组 内置的通用组 特殊组 AGDLP 权限划分策略介绍 A G DL
  • c语言中命令行参数argc,argv[]详解

    main int argc char argv 1 argc为整数 2 argv为指针的指针 可理解为 char argv or char argv or char argv argv是一个指针数组 注 main 括号内是固定的写法 3 下
  • C++ - cout、cin语言

    C cout cin语言都需要添加头文件 include
  • 延迟渲染到最终结果------3,prepass预处理阶段(大象无形11.3.1)

    回顾目前流程 void FDeferredShadingSceneRenderer Render FRHICommandListImmediate RHICmdList 一 按需要重新分配渲染目标 1 void FSceneRenderTa
  • Qt报QWidget: Must construct a QApplication before a QWidget错误

    Qt报QWidget Must construct a QApplication before a QWidget错误 Qt 报这个错误的原因是程序中采用了LIBS添加静态库lib库文件和运行的模式 Debug Release 模式加载对应
  • android FragmentPagerAdapter getItem方法没有执行

    在一个 Android 应用中 我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动 不过我碰到了一个问题 即当 Fragment 对应的数据集发生改变时 我希望能够通过调用 mAdapter not
  • 【leetcode】shell四道题的专栏含讲解

    目录 前言 192 统计词频 中等 193 有效电话号码 简单 194 转置文件 中等 195 第十行 简单 前言 本栏目主要是科普shell的一些基本使用 但题目比较少 做的不够过瘾 官方只有四道题 专栏地址 leetcode shell
  • hyperledger Fabric node sdk 1.4 简明教程

    hyperledger fabric的node sdk最新版本为1 4 本文将介绍如何使用最新版本的fabric node sdk开发node js应用 以实现与fabric区块链的交互 例如查询链码状态 或者提交链码交易 本文分五个部分来
  • Python3 中 bytes 和 string 之间的互相转换

    因为这是原来不知道 Markdown 时写的文章 富文本编辑器不知道怎么用脚注 所以参考资料显得有些孤立了 见谅 Table of Contents 前言 创建 bytes 型数据 创建字符串 相互转换 string to bytes 按
  • idea 代码生成时序图

    当我们想要了解大佬的代码时 如何才能快速的了解一个方法的整个运行过程呢 uml图中的时序图可以帮助我们解决整个问题 idea中想要将代码生成时序图 需要添加一个插件 SequenceDiagram 第一步 我们可以从idea中直接下载添加
  • 2022.3版本idea创建JavaWeb项目

    创建一个简单的JavaWeb项目 最近一直在使用2022版本的idea 正好赶上学习JavaWeb 创建一个JavaWeb工程就比较头疼 主要是2022 3版本的idea和之前的版本不一样 网上也没有这个版本相关介绍 下面是我简单创建一个j
  • pom文件添加依赖,出现unknown问题【maven】,maven工程的依赖报错解决办法大全

    maven项目的依赖是开发的前提 笔者遇到过很多错误 一个一个坑的走过来 特此总结了以下几点解决办法 1 父工程的依赖版本与子工程的版本不一致 spring cloud项目 一般都是父项目中有多个子服务 也就是子module模块 如下图 问
  • 1.Flask配置文件

    1 配置文件 1 1 介绍 from flask import Flask app Flask name 打印默认的配置信息 print app config flask中的配置文件是一个flask config Config对象 继承di
  • FullCalendar – jQuery Event Calendar in ASP.NET

    https github com esausilva ASP Net EventCalendar http trentrichardson com examples timepicker https github com posabsolu
  • Qt qml Frameless

    Qt qml Frameless main qml demo main qml import QtQuick 2 10 import QtQuick Controls 2 3 import QtQuick Layouts 1 3 Appli
  • 解决git错误: error object file is empty , The remote end hung up unexpectedly

    今天执行git pull时遇到麻烦 应该是昨天电脑异常关机造成的git数据损坏 git pull error object file git objects 88 526655aa4eca14ead2d443e80082276a79e0c2