You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Git服务器克隆/推送缓慢求助:150MB仓库操作耗时超10分钟

可能导致Git提交/克隆变慢的原因分析

碰到过好几次这种Git性能骤降的情况,结合你说的150MB仓库、100次提交但最近才变慢的情况,大概率是下面这几个原因:

  • 历史中存在未清理的大文件:哪怕你后来删除了大文件,Git的版本记录会保留每一次提交的完整快照,这些历史里的大文件会在克隆、推送时被反复处理(就是你看到的cached delta files环节)。比如不小心提交过安装包、视频、大的压缩包,哪怕删掉了,历史里还留着,就会拖慢整个流程。

  • 未忽略的大量小文件/生成文件:如果你的仓库里混进了node_modules、构建产物、日志文件这类自动生成的内容,哪怕单个文件不大,数量多了之后,Git计算delta差异时要遍历的文件量会爆炸,导致处理时间剧增。检查下.gitignore是不是漏了这些目录/文件。

  • 本地仓库的缓存或文件损坏.git目录里的缓存文件可能出现异常,或者长期没有做仓库优化。试试执行git gc --prune=now,这个命令会清理垃圾对象、压缩历史、整理delta缓存,很多时候能快速解决这类性能问题。

  • 远程仓库的临时性能问题:如果是托管在第三方平台的仓库,可能对方的存储节点临时负载高,或者你当前的网络到远程仓库的链路不稳定,导致传输和delta处理的耗时被拉长。可以换个网络环境试试,或者看看平台有没有状态公告。

  • 最近的大变更提交:如果近一日有过一次性提交大量文件、或者修改了大文件的大部分内容的操作,Git后续的delta计算需要处理这个庞大的变更集,自然会变慢。这种情况可能随着后续几次小提交慢慢缓解,但也可以用git gc提前优化。

内容的提问来源于stack exchange,提问作者Yuval Ezrati

火山引擎 最新活动