没有远程压缩对象的git pull

hdo*_*rio 37 git

我有一个充满zip文件的存储库,重新压缩这些文件将是浪费时间.

我试图在远程和本地副本上设置core.compression = 0但没有成功

git config core.compression 0
git config core.loosecompression 0
Run Code Online (Sandbox Code Playgroud)

git pull仍然这样做

remote: Counting objects: 23, done.
remote: Compressing objects: ...
Run Code Online (Sandbox Code Playgroud)

hdo*_*rio 52

我遇到的时间问题是由delta压缩引起的.

我的解决方案是

echo '*.zip -delta' > .gitattributes
git gc
Run Code Online (Sandbox Code Playgroud)

我将引用来自http://lists-archives.com/git/719515-serious-performance-issues-with-images-audio-files-and-other-non-code-data.html的优秀回复.

对于某些工作负载,Git确实在zlib上花了相当多的时间,但它不应该在几分钟的时间内产生问题.

对于推拉,您可能会看到增量压缩,对于大文件来说可能会很慢

core.compression 0#似乎没有用.

这应该禁用包装文件中松散对象和对象的zlib压缩.它可以为不会压缩的对象节省一点时间,但是你将失去任何文本文件的大小优势.

但它不会关闭delta压缩,这就是推拉过程中的"压缩......"阶段.而这更可能是缓慢的原因.

pack.window 0

它设置了git在进行增量压缩时会考虑的其他对象的数量.将其设置为低可以改善推/拉时间.但是你将失去非图像文件(和git的元对象)的delta压缩的实质好处.因此,上面针对特定文件的"-delta"选项是一个更好的解决方案.

echo'*.jpg -delta'> .gitattributes

另外,请考虑重新打包您的存储库,这将生成一个将在推送和拉取期间重用的包文件.

请注意,必须在您要提取/拉出的仓库上进行设置,而不是您要提取/拉出的仓库.

  • 建议使用">>",因为这会覆盖你的`.gitattributes`文件中可能已有的任何内容:`echo'*.zip -delta'>> .gitattributes` (12认同)

J-1*_*DiZ 8

compressing object条线意味着它pack正在进行工作.这包括区分树木和东西.它不是"压缩"的意思core.compression.

  • @Doud你没有.Git收拾东西.这是好的和理想的行为. (4认同)
  • 仅供参考,'压缩对象'系列是对'git pack-objects'的调用,与'使树木和东西差异'无关''core.compression'和'pack.compression'将影响包装工作 (3认同)
  • 那么如何禁用在git clone上打包整个git repo?我的带宽没有问题 (2认同)