gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:47:14 25 4
gpt4 key购买 nike

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

$ 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

为了清理任何悬空提交(即由于 rebase 、修改提交等),我的 git fsck 现在是干净的。

关于git - 如何修复缺少对象的 git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8347796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com