Git:从远程获取特定对象

2024-06-26

在工作中我们必须应对一个非常庞大的 git 存储库(90Go)。 在尝试调整本地副本上的一些内容后(我的包文件出现错误,尝试解压它),我可能删除了一些目标文件。 例如:

> git GC

错误:无法读取 af9ed8[:snip:]

致命:坏树对象 af9ed8[:snip:]

错误:无法运行重新打包

如何从远程存储库获取特定对象(在这种情况下是哈希值 af9ed8...)?


如果您有远程文件系统访问权限或包含此对象的任何其他完整存储库,你应该能够去那里运行:

git cat-file tree af9ed8 > 9ed8...

请注意,这仅需要对存储库的只读访问权限(您可以在其他地方写入文件),因此它应该非常安全,您甚至可以以没有文件系统写入权限的用户身份执行此操作。然后,您可以将其传输/复制到存储库中的适当位置:

cp path/to/9ed8... .git/objects/af/9ed8...

松散对象存储在具有哈希值前两位的目录中;文件名是哈希值的其余部分。

编辑:如果对象在远程端松动,您也可以直接将其复制出来.git/objects,但如果它已打包,则必须使用git unpack-objects,我想该存储库中的包文件太大了。最好的方法是将包文件复制到损坏的存储库中,删除任何损坏的对象,然后使用git unpack-objects < packfile,这不会解压任何已经存在的对象。

我不知道如何通过普通的远程命令来做到这一点;即使是较低级别的git fetch-pack仍然在引用级别运行,获取具有必要提交的包以完成引用。我怀疑您可能会做一些偷偷摸摸的事情,例如删除引用该树的所有提交对象(git fsck可能会帮助您找到它们)。我真的希望你能够创建一个指向该对象的标签,将其推送到远程,然后尝试从远程获取标签(哄骗它获取对象),但看起来 Git 非常小心,不让您创建或操作一个指向不存在对象的标签。

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

Git:从远程获取特定对象 的相关文章

  • 如何给 Git 控制台着色?

    我最近看到gitWindows 中的控制台是彩色的 例如绿色表示添加 红色表示删除等 我如何为我的颜色上色git这样的控制台 为了安装它 我使用了以下命令 sudo apt get install git core As noted htt
  • 我应该从哪里安装 git:xcode-select --install 还是brew install git?

    我应该从哪里安装 git xcode select install or brew install git 你需要做xcode select install无论如何 如果你想做任何开发 然后你可以做 brew install git 它将安
  • 当我所做的只是压缩提交时,为什么 git-rebase 会给我带来合并冲突?

    我们有一个包含 400 多个提交的 Git 存储库 其中前几十个提交需要大量的反复试验 我们希望通过将许多提交压缩为单个提交来清理这些提交 当然 git rebase 似乎是最佳选择 我的问题是它最终会产生合并冲突 而且这些冲突并不容易解决
  • 比较 2 次提交

    我没有找到任何关于获取两个文件之间差异的文档 我使用下面的代码使用坚固的方式提交文件 repo Rugged Repository new reponame email protected cdn cgi l email protectio
  • git 中的 web.config 和 app.config 机器特定设置

    我们在不同的办公室有多个开发团队 他们需要为我们项目中的许多配置设置使用不同的值web config and app config files 我们希望使用一组合理的默认值来检查这些配置文件 这样通过检查 trunk master 分支 您
  • Emacs shell:保存提交消息

    我几天前开始使用 emacs 在 emacs shell M x shell 中使用 git 时遇到问题 当我 git commit 或 git commit amend 时 它会打开 vim 来编辑并保存提交消息 我对此表示同意 但我找不
  • 更快的“git rebase --preserve-merges”方法

    我通过创建一系列功能分支来使用 git 并在完成后将它们合并到 mastergit merge no ff 这会创建空的合并提交 可用于识别先前功能分支的起点和终点 为了处理多个并发分支 甚至嵌套分支 我使用 rebase 我从不合并回去
  • Git core.safecrlf 对具有相同行结尾的文件有不同的行为

    我有带有 VS 项目的 Windows 计算机 并且使用 Visual Studio 和 Cygwin 环境中的工具 包括 Git 有时 编辑后我会在文件中得到不同的行结尾 我想要简单的解决方案来检查文件的行尾一致性 然后再将其发送到存储库
  • 使用 git 合并两个文件夹

    我正在和一些以前从未使用过 git 的人一起开发一个项目 由于不了解 git 的功能 他们创建了该项目的两个版本 开发版本和生产版本 这两个版本都存在于当前环境中 更复杂的是 除了旧的开发文件夹之外 另一个用户还创建了这些文件夹 所以项目目
  • 使用可通过 FTP 访问的 Web 服务器进行 Git 托管?

    我运行一个 糟糕的 网站 托管在第三方网络服务器上 我可以通过 FTP 访问我的 Web 服务器 据推测 Git 本身具有通过 FTP 推送 拉取的能力 由于我的 Web 服务器已经可以随处访问 我希望将其用作集中式 Git 存储库 我可以
  • 从子文件夹自动部署 Heroku

    我知道你可以从github自动部署到heroku 但我还没有找到一种方法只将子文件夹从github推送到heroku 从命令行我知道可以通过以下方式执行此操作 git subtree push prefix
  • 如何在 git merge 提交中列出冲突的文件(父级都有更改的文件)?

    qgit 有一个很好的选择 可以在合并提交中查看 有趣 的文件 其中有趣的文件被定义为在两个父文件中都有更改的文件 查看此类文件的相应命令行是什么 git show name status SHA1 of merge 将向您显示提交消息和在
  • 运行 npm install - 如何配置不使用 SSH(端口被防火墙阻止)

    当我跑步时npm install大多数模块配置正确 然而 至少有人想击中ssh 拉取模块的地址 不幸的是 我的公司有一项政策 不允许内部网络之外的 SSH 连接 我收到的具体错误是 Error while executing npm ERR
  • git pull 保留本地未提交的更改

    即使存在上游更改 如何安全地更新 拉取 git 项目 保持特定文件不变 myrepo config config php 有没有一种方法 即使这个文件在远程被更改 当我 git pull 时 其他所有内容都被更新 但这个文件没有改变 甚至没
  • 在 ConEMU 中显示 git 分支

    有没有办法在 ConEmu 中以视觉方式 背景或类似 在 git 中显示分支 Git 分支可以在普通的 cmd 或 Far Manager 提示符中可见 所有魔法都是通过特殊的 ANSI 序列完成的 必须选中 Inject ConEmuHk
  • 我可以通过 ssh 将 ssh 用户名与 git 的提交关联起来吗?

    我正在尝试通过 ssh 设置共享 git 存储库 将用户公钥复制到authorized keys 我真的希望 ssh key 中的 用户名 成为存储库中提交历史记录的一部分 这样用户 joe 就不能将他的名字设置为 kate 我们需要某种责
  • 通过标记现有提交来触发 Jenkins 管道

    描述 我设置了 Jenkins 2 126 以便在推送新标签时构建管道 具体来说 我想将现有提交标记为master as release 3并让它触发构建 根据多个消息来源 我想要的是可能的 https mohamicorp atlassi
  • git svn - cygwin下的错误

    我有 cygwin 和 git 我正在尝试使用 git 提交到 svn git svn dcommit 但它失败并出现奇怪的错误 git svn dcommit 4 main perl 5536 C cygwin bin perl exe
  • gitk中正则表达式的格式是什么?

    我正在尝试使用 gitk 中的 find 添加 删除字符串 正则表达式选项 我尝试过的语法不起作用 并且我找不到描述它接受的正则表达式语法的文档 我正在尝试匹配两者Modem Wakup and Modem UnWakeup 两者都不Mod
  • Git:如何忽略/指定 *checkout* 文件

    如果我不想跟踪 html 文件 我可以将模式添加到 gitignore 它们将被忽略 我想知道如何做相反的事情 在结账时 我如何要求 git 仅签出某些类型的文件或不签出某些类型的文件 例如 如果我不需要 html 文件 我可以写 git

随机推荐

  • 哪种算法可以解决我的婚礼餐桌问题?

    我的婚礼有 x 位客人 有 y 张桌子 有 z 个座位 客人A可以与客人B同桌 客人C不能与客人D同桌 给定所有客人之间所有连接的数据集 是否有已知的算法可以解决此类问题 我确信这种问题有一个抽象的父问题 称为 问题 x 或其他问题 或者它
  • Spring-data-redis @Cacheable java.lang.ClassCastException:java.util.HashMap无法转换为java.lang.String

    我想使用 spring data redis 在我的 spring boot 应用程序中缓存数据 但它总是说强制转换异常 我用谷歌搜索了一段时间 但没有任何想法 请帮助我 谢谢 任何建议都很棒 这是我的 Redis 配置 Configura
  • 空提交的 Git 补丁

    我创建一个空提交 git commit allow empty m something important 有时它很有用 例如协调 2 个 或更多 不同的 git 树 然而 当我 git format patch 空提交被省略 因为它们不与
  • Linux GCC 上 的 C++ 编译问题

    尝试过谷歌并在这里搜索 但没有运气 我正在尝试将一些使用 Windows 的代码移植到 Linux 上 然后我得到了大量的编译错误 我所做的只是 include
  • 半透明数据库

    我正在构建一个包含健康信息的应用程序 这个面向消费者的应用程序对我来说是新的 我想要一种方法来完全消除隐私问题 当我回顾保护可公开访问的数据库中的敏感数据的方法时 我经常遇到数据库半透明的概念 有原书 http www wayner org
  • AWS SNS 参数电话号码无效

    我正在尝试学习 aws sns 服务从我的网络应用程序发送短信 我正在本地主机上工作 params array credentials gt array key gt iam key secret gt iam secret region
  • 查找SQL记录中的并发用户数

    我有以下结构的表 UserID StartedOn EndedOn 1 2009 7 12T14 01 2009 7 12T15 01 2 2009 7 12T14 30 2009 7 12T14 45 3 2009 7 12T14 47
  • 使用 CSS 修复自定义字体行高

    在我正在开发的新网络应用程序上使用自定义字体时 我遇到了一个奇怪的问题 这种自定义字体 FF DIN 似乎具有自然垂直的偏离中心的行高 这迫使我放置一些顶部填充黑客来补偿按钮和输入等元素的顶部空间 示例 绿色字体 Helvetica Neu
  • 如何在Eclipse调试器中查看崩溃原因

    按照这个 Android 教程 http developer android com resources tutorials hello world html http developer android com resources tut
  • 如何使用PNGJS库从rgb矩阵创建png?

    我无法从此处的文档创建 PNG 文件 编码 https github com niegowski node pngjs https github com niegowski node pngjs 该文档提供了有关操作现有 PNG 的示例 为
  • Intent.putExtra列表[重复]

    这个问题在这里已经有答案了 可能的重复 如何将列表放入意图中 https stackoverflow com questions 6541088 how to put a list in intent 我想通过一个List从一项活动转移到另
  • 用于 Javascript、HTML 和 CSS 网站的 Visual Studio 项目,具有调试功能

    我正在网络浏览器中开发一个基于纯前端的应用程序 我使用的是 Javascript jQuery Knockout HTML CSS 引导程序 所以没有后端 没有必要 在这方面 我在 Visual Studio 中找不到合适的项目模板 截至
  • 使用外部复合 jQuery 模板

    受到这 2 篇博客文章的启发后 我想尝试一下 jQuery 模板 http encosia com 2010 11 10 composition with jquery templates why and how http encosia
  • Python DataFrame:将一列转置为多列

    我有一个如下所示的数据框 df pd DataFrame month 2017 09 27 2017 09 27 2017 09 28 2017 09 29 Cost 100 500 200 300 我怎样才能得到这样的 df 2017 0
  • CSS 字体不起作用

    我正在尝试向我的网站添加自定义字体 我尝试了很多事情但没有成功 这是我的CSS代码 font face font family myFirstFont src url ellis ttf body margin 0 padding 0 wi
  • 从 size_t 或 uintptr_t 来回转换指针是否会破坏严格别名?

    我建议对一个库进行更改 其公共 API 目前如下所示 typedef size t enh handle int en open enh handle struct internal e malloc handle enh e return
  • Swift - 向每个页面添加相同的导航栏项目

    我正在尝试将相同的导航栏项目添加到应用程序中的每个选项卡 我目前已在我的 homeController 中正确设置了它们 但我想将代码移动到一个单独的文件中 并在我想要的任何地方远程实现它 例如 在导航栏左侧添加一个 搜索 图标 而不必在每
  • docker dynamodb -sharedDb 选项

    我正在尝试使用官方在本地主机上启动 dynamodbrepo https hub docker com r amazon dynamodb local 我尝试了以下方法 docker run p 8000 8000 amazon dynam
  • Fileupload 和 PrettyFaces 以及 JSF 2.2 [重复]

    这个问题在这里已经有答案了 我已经尝试过以下解决方案 Primefaces FileUpload 与 PrettyFaces 和 JSF 2 2 3 https stackoverflow com questions 20492015 pr
  • Git:从远程获取特定对象

    在工作中我们必须应对一个非常庞大的 git 存储库 90Go 在尝试调整本地副本上的一些内容后 我的包文件出现错误 尝试解压它 我可能删除了一些目标文件 例如 gt git GC 错误 无法读取 af9ed8 snip 致命 坏树对象 af