首页/开发/Git 与协作速查/部分克隆(--filter=blob:none)
进阶与大仓实践69 条

部分克隆(--filter=blob:none)

克隆时只取提交与树、不取文件内容,检出或读取时再按需下载对应对象;显著降低首次克隆体积,适合大仓与 CI。

Git 与协作速查开发更新于 2026-10-12
克隆git clone --filter=blob:none <url>
对象按需获取读取缺失对象时自动从 promisor 远端拉取
组合常与 --sparse 一起用于 monorepo

常用示例

常用示例
git clone --filter=blob:none https://example.com/monorepo.git
cd monorepo
git rev-list --count HEAD
git ls-tree HEAD | head
服务端需支持过滤(主流托管平台支持);拉取是透明进行的,但离线环境会因缺对象而失败。

易错点

  • 历史检索类命令(grep/blame 全量)会触发逐对象下载,可能比完整克隆更慢
  • 断网或代理受限时按需拉取失败,表现为「文件打不开」而非网络报错

数据来源与参考

  • Git 官方文档:git-clone(--filter)
  • GitHub Docs:Partial clone
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌