如何解压缩打包文件中的所有对象?
我刚刚克隆了一个远程仓库,所以我的本地仓库目前不包含任何松散的对象,只有一个.pack和.idx文件。
我尝试运行git unpack-objects < .git/objects/pack/pack-.pack
,但什么也没有发生。
我做错了什么吗?还有其他命令可以解压缩吗?
在使用该命令之前,您需要将打包文件移出 .git/objects/pack
目录。不过,这些打包文件需要在存储库内部。
例如,在项目根目录下创建名为 SAMPLE
的目录。然后将打包文件移动到 SAMPLE
目录中。在此之后,在没有打包文件的情况下进入存储库,使用命令:
git unpack-objects < SAMPLE/*.pack
Git会在您的仓库中的.git/objects
目录中生成所有对象。
git clone ***.git
git unpack-objects
不会创建已经存在于仓库中的对象,而考虑到打包文件已在仓库中,它不会执行任何操作。这在get help unpack-objects
中有很清楚的解释。 - Kevin Coxgit unpack-objects -n < SAMPLE/*.pack
时,Bash 给出了一个错误:bash: SAMPLE/*.pack: ambiguous redirect
。这是因为我尝试使用-n
开关吗?我想在完全解包之前尝试干运行... - Wilson Fgit unpack-objects < SAMPLE/*.pack
)让我再次想了想,以为多年来我对 Bash 如何处理<
运算符的理解是错误的。Bash 无法使用<
运算符处理多个文件。必须一个一个地迭代它们,例如:for fn in SAMPLE/*.pack; do git unpack-objects < "$fn"; done
。 - amphetamachine