我的开发存储库在某个时候丢失了一个对象。
$ 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(使用前将#替换为@)