如何从重新打包的上游git pull / fetch?

时间:2016-01-15 17:27:11

标签: git

我已经在上游回购中运行git repack -adf --depth=10000 --window=10000,该回购运行时间很长,并且从900减少到600 MB。

现在可以git-pull / git-fetch这个包改变了吗(没有做新的git-clone)?

我不想对这些客户git-repack,因为这需要很长时间,并且使用git-clone创建新的回购并不是正确选项 - 它会创建新的仓库(没有您的配置,存储,您以后需要移动未跟踪的文件等),而不仅仅是更新您当前的仓库。

1 个答案:

答案 0 :(得分:1)

据我所知,本地打包不会以任何方式影响抓取/推送(以及克隆)。正在发送的捆绑包从头开始。因此,在获取或克隆期间,您无法真正受益于服务器上的重新打包。

但是,您可以将.git/objects/pack/*.pack个文件从服务器复制到客户端,并为每个文件运行git index-pack --stdin --keep=origin <$file。然后运行git gc以删除冗余对象并仅保留服务器上不存在的对象 - 它应该很快。有关详细信息,请参阅https://git-scm.com/docs/git-index-pack