git - git 推送到 gitlab 非常慢
问题描述
我的 git 推送非常慢,将一个 200MB 的项目推送到 gitlab 大约需要 45 分钟,我平均得到 70.00 KiB/s,知道为什么会这样吗?
我正在尝试使用 --verbose 开关来查看是否可以看到哪些文件正在减慢速度(通常在 1/% 之后它会更快一点......但是 --verbose 开关不显示任何附加信息,是有这样的东西吗?
我通常通过 ssh 进行 git push。
这可能是因为我的项目中有一些图像吗?像 8MB 的图像不应该让它那么慢......
无论如何,提前谢谢!
解决方案
是的,它是图像。
将图像添加到 git repo 是一个已知问题,它会使 repo 的推送和拉取速度慢得多。
原因是对于一张图像的大小相当于数千行文本文件。添加 3-4 张图像,您将大大增加您的存储库的大小。
该怎么办?
三种实用方法
1. 接受事物的本来面目。
下次知道避免将图像放入 git repo 中。将它们放在哪里,在图像的外部服务上;通常使用 Amazon S3 或使用内容交付网络(如 Cloudinary 有免费计划)。
好消息是缓慢应该只是第一次将图像推/拉到新位置。之后.. 推/拉只会降低通常再次成为文本文件的差异。
所以这意味着现在设置这个 repo 总是很慢,但是一旦被拉下来应该又可以了。
2. 将事情恢复原状。
为了使您的存储库像以前一样快速和小型,您将需要将图像取回。用 git 做这件事会很麻烦,因为 git 的整个设计前提是开发人员很难从 repo 中清除已提交的文件。
3. 重新开始.. 了解你的 git 历史并重新开始。
这通常是完全不推荐的,因为您丢失了所有的提交历史,但如果您是一个较新的开发人员并且这是一个非常小的项目..那么实际上是的,您可以重新开始。删除 git 文件夹,删除图像,通过引用外部 url 实现图像,然后将其余文件提交回新存储库。
如果您要走这条路,请谨慎行事。
推荐阅读
- apache - Apache 403 禁止访问被拒绝
- postgresql - 查询结构与函数结果类型 postgresql 不匹配
- python - 如何使用 python 将 CSV 文件导入 SQLite3
- r - 我想在 R 中使用 Wolfram 中使用的函数 EllipticE( )、ElliptctcF( ) EllipticK( ) 函数
- javascript - 函数 if 和 for 循环 const 数组中的偶数
- vue.js - Vue:使用计算属性将参数从应用程序传递到组件并返回
- mysql - 如何仅实现子类专业化 EER
- python-3.x - 在不使用 end="" 的情况下将返回的字符串连接成单行 python
- javascript - 使用 js 的验证没有更新到 span
- python - 如何为python中的变量分配返回值?