我已经在上游回购中运行git repack -adf --depth=10000 --window=10000
,该回购运行时间很长,并且从900减少到600 MB。
现在可以git-pull
/ git-fetch
这个包改变了吗(没有做新的git-clone
)?
我不想对这些客户git-repack
,因为这需要很长时间,并且使用git-clone
创建新的回购并不是正确选项 - 它会创建新的仓库(没有您的配置,存储,您以后需要移动未跟踪的文件等),而不仅仅是更新您当前的仓库。
答案 0 :(得分:1)
据我所知,本地打包不会以任何方式影响抓取/推送(以及克隆)。正在发送的捆绑包从头开始。因此,在获取或克隆期间,您无法真正受益于服务器上的重新打包。
但是,您可以将.git/objects/pack/*.pack
个文件从服务器复制到客户端,并为每个文件运行git index-pack --stdin --keep=origin <$file
。然后运行git gc
以删除冗余对象并仅保留服务器上不存在的对象 - 它应该很快。有关详细信息,请参阅https://git-scm.com/docs/git-index-pack