我有一个带* .pack文件的git repo - 没有松散的对象。 出于某种原因,与问题无关,所有* .idx文件都将丢失。 我该如何恢复它们?
感谢
答案 0 :(得分:5)
从树的顶部开始尝试运行:
git index-pack .git/objects/pack/PACK_FILENAME
其中PACK_FILENAME
是您的包文件的名称。例如,我尝试过的存储库有路径:
.git/objects/pack/pack-7e0af787b3e455fac722264ff05dd0bae7d71625.pack
您应该为每个包文件执行此操作,并且您的存储库应该再次处于正常工作状态。
答案 1 :(得分:1)
注意:" git index-pack --stdin
"需要访问现有的存储库,
但是" git index-pack file.pack
"生成一个.idx
文件
对应于packfile没有。
这意味着,从Git 2.12(2017年第一季度)开始,您甚至可以从Git仓库外部恢复idx
文件,以进行测试。
commit 29401e1点击commit a3c45d1,commit 7176a31,commit de95302,Jeff King (peff
)(2016年12月16日)。
(Junio C Hamano -- gitster
--合并于commit 49d45de,2016年12月21日)
index-pack:不在存储库中时跳过冲突检查
您可以运行"
git index-pack path/to/foo.pack
"在...之外 存储库生成索引文件,或只是为了验证 内容。
因此,进行碰撞检查毫无意义 我们显然没有任何物体可以碰撞。