如何修复缺少对象的 git 存储库?

2023-12-20

我的开发存储库在某个时候丢失了一个对象。

$ git fsck
fatal: failed to read object 2dddc84156fa30e4614a7ea5a1895885011b8db8: Invalid argument
$ git cat-file -t 2dddc84156fa30e4614a7ea5a1895885011b8db8
error: unable to find 2dddc84156fa30e4614a7ea5a1895885011b8db8
fatal: git cat-file 2dddc84156fa30e4614a7ea5a1895885011b8db8: bad file

新克隆的存储库具有该对象。

$ git cat-file -t 2dddc84156fa30e4614a7ea5a1895885011b8db8
tree

我想保留我的开发存储库,它有未推送的分支和存储。

如何将该对象修补到损坏的存储库中?


我最近在本地存储库中有一堆丢失的对象,并且有一个未损坏的参考存储库可以从中恢复它。这是我想出的对我有用的魔法:

cd <path-to-local-repo>
git unpack-objects < <reference-repo-path>/objects/pack/pack-<hash>.pack

事实证明,我需要的所有对象都位于参考存储库的包文件中,而不是单独的“松散”对象文件中。这个简单的咒语将该打包文件解压到本地数据库中,填补漏洞。做完之后

git gc

清理任何悬空的提交(即由于变基、修改提交等)git fsck现在干净了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复缺少对象的 git 存储库? 的相关文章

  • 如何让“git status”始终使用短格式?

    我想要git status始终使用短格式 git status short M file1 M dir file2 file untracked3 dir file untracked4 似乎不存在这方面的配置选项 并且git config
  • git 索引到底包含什么?

    Git 索引到底包含哪些内容 可以使用什么命令查看索引内容 感谢您的所有回答 我知道索引充当暂存区 提交的内容是在索引中而不是工作树中 我只是好奇索引对象由什么组成 我猜它可能是文件名 目录名 SHA 1 对的列表 也许是一种虚拟树 在 G
  • Visual Studio 2017 - 无法将提交的更改推送到本地存储库

    我在 Win 10 Enterprise 上运行 VS 2017 Enterprise 15 7 3 我的本地硬盘上有一个 git 存储库 我在其中进行了一些更改 现在希望使用 VS 将这些更改 提交并推送 到我们位于网络文件共享之一的中央
  • 竹子 - 构建我的拉取请求

    当拉取请求进入 git 时 我试图触发竹子中的构建 我可以将 webhook 信息发送到竹子 但它不是构建适当的 sha 标记的签入 而是构建 主 分支 这是否需要对竹子进行一些自定义 git 设置 到目前为止我还没有看到任何简单的事情 在
  • 为什么 --first-parent 不是 git show 的默认值?

    我确信这个问题将作为基于意见的问题而结束 但没有其他地方所以问它 所以这里 我正在尝试查看我的分支的历史记录 其中包括合并提交 特别是更改的内容 我在这里找到了一篇非常有用的帖子git 显示合并提交 https stackoverflow
  • 反向合并具有干净历史记录的缝合功能分支

    我有这个 d0 f1 d1 d2 f2 d3 merge d4 f3 merge
  • 如何将 GitHub PR 的代码与其他分支的 PR 代码分开?

    我正在开发一个项目并解决问题 我正在为每个拉取请求 PR 创建一个不同的分支 上次我用他们的 PR 创建了两个不同的分支并解决了这两个问题 现在的问题是 我的两个拉取请求都与我在不同分支上推送的代码搞乱了 我借助以下命令在 git bash
  • 无法在 Eclipse 中运行从 Git 导入的项目

    我的 Eclipse 工作区中有一个来自 Github 的项目 通过 File gt Import gt Projects from GIT 但是 我无法运行该示例 因为 运行方式 下的唯一选项是 运行配置 转到 运行配置 后 我单击 浏览
  • Git 子模块未在 Jenkins 构建中更新

    我在詹金斯的一个项目中有一个子模块 我已启用高级设置以递归更新子模块 当我运行构建时 我看到工作区包含子模块中的文件 问题是 它似乎是子模块的第一个修订版 当我推送更改 托管在 GitHub 上的存储库 时 Jenkins 似乎没有更新子模
  • 如何从另一个目录使用git?

    假设有如下文件夹结构 repos repo1 lt here is git repository I do cd repos 我现在如何使用存储库 repo1仍然在repos目录 我不想做 cd repo1 git status git c
  • 无法在 github 上的特定分支上生成 git no such file or directory

    问题出在这个 fork repo 上 https github com RubenWillems CCNet https github com RubenWillems CCNet 我可以在同一台笔记本电脑上安装其他叉子 但不能使用此叉子
  • 在 Git 中查看已删除的文件

    我已使用 Git 删除了一个文件 然后又提交了 因此该文件不再位于我的工作副本中 我想查看该文件的内容 但不想真正恢复它 我怎样才能做到这一点 git show HEAD path to file 您可以使用显式提交标识符或HEAD n查看
  • 从 git 中提取特定的提交/文件

    我在 git 存储库中进行了两次提交 并将它们推送到我的 git 服务器 两个提交是 在第一次提交中文件 A 被提交 在第二次提交中 文件 B 被提交 现在在另一台开发服务器上 我只想从 git 服务器中提取第一个提交或文件 A 这个怎么做
  • git 别名:多个命令、可变参数

    我经常发现自己输入以下内容 git push remote1 branch1 branch2 tag1 tag2 tag3 git push remote2 branch1 branch2 tag1 tag2 tag3 我更喜欢一个别名 我
  • 哪些Git命令无法在本地执行?

    当我和同事谈论 Git 时 我告诉他们 一旦本地存储库初始化 只有三个 Git 命令不能在不访问远程存储库的情况下执行 假设origin当然 不在本地计算机上 git fetch http www kernel org pub softwa
  • 为什么 git-cherry pick 没有说要提交什么?

    我对以下问题进行了很多搜索 但无法获得任何实质性信息 我创建了一个临时分支 202116 并尝试对 gerrit 202116 进行挑选 并收到以下消息 为什么我无法挑选此提交以及为什么会收到此错误 lt gt git fetch ssh
  • 如何在 Mac OS X 10.9 上安装和使用最新的 Git?

    我从 sourceforge 下载了 Git 2 4 3http git scm com download mac http git scm com download mac对于我的 Macbook Pro OS X 10 9 5 然后安装
  • 将远程存储库导入为具有完整历史记录的子目录

    我想将远程存储库作为具有完整历史记录的子目录进行合并和解耦 有多种方法和问题可以实现这一点 我的第一次尝试是使用subtree但它似乎没有重写文件的历史记录 所以我无法查看合并存储库的历史记录 接下来的尝试是手动合并它 就像 Seth Ro
  • 如何为Git存储库组织和设置镜像备份服务器?

    我正在将一些 svn 存储库移至 Git 所以 我基本上尝试做的是 设置一台带有裸 Git 存储库的服务器 我将从中拉取和推送到该存储库 为第一台服务器上的所有存储库设置一些备份服务器 所以 假设我的服务器上有一个目录 例如 HOME gi
  • git 可以知道你当前的分支是从哪个分支分支出来的吗?

    我想创建一个 git 别名 让我可以从其分支的原始分支同步我的分支 例如 如果我从

随机推荐

  • 使用 C# 从网站下载文件

    我正在尝试使用以下代码从网站下载文件 WebClient webClient new WebClient webClient DownloadFile http www nseindia com content historical EQU
  • -bash: ./deploy.sh: 权限被拒绝,错误:脚本返回退出代码 126

    我正在尝试使用 Jenkins 实现持续部署 这涉及到将 jar 文件发送到远程服务器 并在远程服务器上启动该 jar 文件 问题是我不断收到访问被拒绝错误 并且我已经尝试了远程和本地服务器上的每个帐户似乎都不起作用 我犯了同样的错误 詹金
  • 为什么选择选择更改多个提交?

    我这里有 2 个分支 即分支 1 和分支 2 分支1增加了很多新功能 分支2也很稳定 今天 我只想将分支 1 中的 1 个功能合并到分支 2 中 所以 我只是跑git cherry pick
  • Drupal 7 - 如何从模块加载模板文件?

    我正在尝试在 Drupal 7 中构建自己的模块 所以我创建了一个名为 moon 的简单模块 function moon menu items array items moon array title gt description gt t
  • LINQ to Entities 在 DateTime.DayOfWeek 上加入

    想象两个表 班次 RANK S DAY Shifts 包含一个 ShiftDate 列 它是DateTime并且 RANK S DAY 有一个DayOfWeek柱子 我需要加入 int ShiftDate DayOfWeek equals
  • toUpperCase() 没有使字符串大写

    我不知道我做错了什么 但不知何故 toUpperCase 字符串函数在我的浏览器上不起作用 或者我弄错了什么 var string kjsdgfiIJHBVSFIU string toUpperCase console log string
  • Android - mediarecorder 的最大 maxfilesize 是多少?

    Android 对于 Android 媒体记录器 setMaxFileSize 可以设置的最大文件大小是多少 我知道它在 4147483650 和 5147483650 之间 为什么首先要有限制 我正在录制到 SDCARD 在运行之前检测卡
  • 使用 spring 在 Ibm Websphere MQ 中实现重试逻辑

    我正在使用 Spring 和 Websphere MQ 进行以下消息传递配置 我需要实现一个场景的重试逻辑 其中我从队列接收消息并将消息数据放到弹性搜索服务器 搜索服务器是非事务性的 如果搜索服务器关闭 我必须回滚消息再次放入队列并在一段时
  • 如何在Rails中管理3个多对多模型

    我正在跟进铁路广播公司 http railscasts com episodes 47 two many to many制作不同模型进行维护的建议many to many关系 但是 我在提取传递关系数据时遇到问题 假设有 3 个多对多模型
  • Android 2.2 - 如何检测我是否安装在 SDCard 上?

    我正在编写一个存储大量媒体文件的 Android 应用程序 它们不是那种会弄乱用户通知或其他媒体目录的类型 而且数量太多 但它们也必须是用户可更新的 所以我不能将它们放入资源中 我可以使用 getExternalFilesDir 获取 SD
  • DLL-导出模板基类的静态成员

    在 DLL 中 我有一个带有模板基类的导出非模板类 该模板基类有一个静态成员变量 我在链接到具有导出的非模板类的 DLL 的可执行文件中使用静态基成员 在许多情况下 我会收到未解决的外部符号或有关不一致链接的投诉 我发现了一种可行的方案 但
  • TDD、DDD 和封装

    经过几年遵循我工作场所 架构师 传下来的不良实践并认为一定有更好的方法之后 我最近一直在阅读有关 TDD 和 DDD 的内容 我认为这些原则和实践将是一个很好的方法 非常适合我们编写的软件的复杂性 然而 我见过的许多 TDD 示例都调用域对
  • Flutter:应用程序的区域设置不受其所有本地化代表的支持

    您好 我正在尝试在 flutter 应用程序中添加 BottomNavigationBar 但当我运行项目时出现错误 A MaterialLocalizations delegate that supports the ka GE loca
  • 将应用程序设置存储在项目文件夹而不是 AppData 中

    我的项目中有一个 Settings cs 文件 我通过以下方式从程序访问其中的数据 Properties Settings Default MyProperty 生成的设置文件存储在以下位置 C Users Foo AppData Loca
  • android ndk 开发问题:memcpy 函数出现“无效参数”错误

    我在android项目中使用了c 代码 所以我使用了NDK工具 IDE是eclipse 编译项目时 我收到错误memcpy功能 Invalid arguments Candidates are void memcpy void const
  • DropDownList-项目在回发时为空

    我有 DropDownList 我必须将其填充到与另一个控件的单击事件关联的事件中 数据已填充并存在 但当我选择一个值并回发时 该值为空 这意味着视图状态不起作用 解决方案说在 Init 中填充 DropDown 但我不能 因为要求不允许这
  • 在 Laravel 4 中设置自动增量初始值

    有没有办法使用 Schema Builder 的迁移来设置 Laravel 4 中表上主键的自动增量初始值 我想将表的 id 设置为从 100 开始 我知道使用纯 SQL 可以做到这一点ALTER TABLE MY TABLE AUTO I
  • 如何使用第一个逗号将字符串拆分为段落?

    我有字符串 address 10 Madison Avenue New York NY 212 538 1884 像这样分割它的最好方法是什么 p 10 Madison Avenue p p New York NY 212 538 1884
  • Apache Maven 错误:无法将工件 org.apache.maven.plugins:maven-clean-plugin:pom: 2.5 传输到中央

    我对此很陌生 我正在 apache maven 上工作 我在代理服务器后面工作 每次 我都会尝试构建maven项目 它给了我这个错误 我还更改了 settings xml 文件中的代理设置 但它不起作用 它一直给我同样的问题 构建失败 我在
  • 如何修复缺少对象的 git 存储库?

    我的开发存储库在某个时候丢失了一个对象 git fsck fatal failed to read object 2dddc84156fa30e4614a7ea5a1895885011b8db8 Invalid argument git c