You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter项目CI存储空间占用过高,Git依赖如何仅拉取指定目录?

解决方案

目前Pub工具原生不支持Git依赖的稀疏检出,默认会拉取完整仓库代码,你可以选择以下三种方案解决存储不足的问题:

方案1:拆分独立子仓库(最适合长期维护)

把Dart bindings相关的代码单独拆成一个独立的Git子仓库,直接在pubspec.yaml中依赖这个子仓库的Git地址即可,拉取时只会下载子仓库的内容,不会涉及体积庞大的C++主仓库代码。

方案2:手动执行Git稀疏检出(适合CI环境,无需调整仓库结构)

如果你暂时无法拆分仓库,可以在CI流程中先手动做稀疏检出拉取指定路径,再将依赖改为本地路径依赖:

  • 第一步:执行稀疏检出,仅拉取需要的文件夹,同时开启浅克隆进一步压缩体积:
# 初始化空仓库
git init temp_repo
cd temp_repo
# 开启稀疏检出
git config core.sparseCheckout true
# 配置需要拉取的路径
echo "path/to/the/folder/containing/dart/bindings/*" >> .git/info/sparse-checkout
# 绑定远程仓库
git remote add origin my.git.repo.url
# 浅拉取指定分支代码,仅拉最新1次提交
git pull origin main --depth=1
cd ..
  • 第二步:修改pubspec.yaml中的依赖为路径依赖,指向刚才拉取的本地目录:
my_package_name:
  path: ./temp_repo/path/to/the/folder/containing/dart/bindings
  • 第三步:正常执行flutter pub get即可。

方案3:发布到内部私有Pub源(适合团队多人协作场景)

将Dart bindings包发布到团队内部的私有Pub源,直接通过版本号依赖该包即可,无需拉取任何Git仓库代码,拉取速度最快,也不存在冗余存储问题。

内容的提问来源于stack exchange,提问作者nishith Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:45:05