我有一个用 git repack -a -d
打包的 git 存储库,这将所有对象重新打包到一个大文件中。这样可以节省空间。但是我想撤消它,并将那个大包文件变成所有小目标文件。
我想这样做的原因是将 git 存储库备份到远程服务器。我做了一个备份(在重新打包之前)。在远程服务器上安装 git 很重要,所以我打算使用 rsync
来复制文件。然而 rsync 并不是那么聪明,它基本上会想要再次复制东西。如果我可以“解压”这个存储库,它可能会更快地复制。
最佳答案
git-unpack-objects将解压对象,但仅在不包含该包的存储库中:
创建一个新的空仓库:
mkdir new-repo; cd new-repo; git init
将对象写入:
git unpack-objects < ../old-repo/.git/objects/pack/pack-XXX.pack
pull 入必要的分支/标签:
git pull ../old-repo
或者,如果您喜欢冒险,您可以尝试使用 new-repo
中的对象目录来替换旧目录。
关于git - 如何撤消 "git repack -ad"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052701/