首页/开发/Git 与协作速查/锥形模式(cone)的行为
进阶与大仓实践69 条

锥形模式(cone)的行为

cone 模式按目录层级匹配:set 指定目录及其父级目录内容,支持 add/set/reapply;规则简单可预测,是推荐使用的模式。

Git 与协作速查开发更新于 2026-10-13

锥形模式(cone)是什么

稀疏检出的 cone 模式按目录层级匹配:set 指定目录(及其父级所需的必要文件),add 追加、reapply 重新应用规则。规则简单可预测,是官方推荐的模式;非 cone 模式用 gitignore 式模式,灵活但更易写错。

基本信息

模式cone(默认)按目录;非 cone 用 gitignore 式模式
常用命令set / add / reapply / disable / list
层级父目录会保留必要文件以支持构建
查看git sparse-checkout list 输出当前规则
初始化git sparse-checkout init --cone 开启
规则存储当前规则保存在仓库元数据里,可跨分支复用

典型使用场景

  • 单服务开发:只检出负责的服务目录,减小工作区。
  • 前端库拆分:只取用到的包目录与公共层。
  • 构建优化:CI 只检出需要构建的模块。
  • 迁移过渡:渐进扩大范围,避免一次检出全部。
  • 规则维护:新增依赖目录时用 add 追加。
  • 排查异常:手工改过索引后用 reapply 恢复规则一致性。
  • 新功能开发:为新模块用 add 扩充范围而不是全量重新检出。
  • 磁盘限额环境:把工作区压到最小可行集合。

常用示例

常用示例
git sparse-checkout init --cone            # 开启 cone 模式
git sparse-checkout set --cone services/payment   # 只保留该目录及其父级骨架
git sparse-checkout add libs/proto         # 追加目录
git sparse-checkout list                   # 查看当前规则
git sparse-checkout reapply                # 重新应用规则(索引被改动后)

cone 与非 cone 对比

维度cone 模式非 cone 模式
匹配单位目录gitignore 式模式
可预测性高,官方推荐灵活但易写错
父目录自动保留必要文件按模式逐条判断
迁移set/add 简单直接需要精心设计模式
团队统一书面约定目录集各成员自定义会导致构建差异
reapply 用于重新应用当前规则(例如手工改动过索引后),比反复 set 更省事;切换模式或规则前先用 list 记录当前状态便于回退。;在仓库文档里记录启用步骤,方便新成员复现环境。

易错点

  • 非 cone 模式下写文件级模式容易误伤构建脚本,团队统一用 cone 减少意外。,需要文件级粒度时先评估再切换。
  • 父目录保留的文件与预期不符时,先 sparse-checkout list 查看当前规则再调整。
  • 规则改动后个别文件消失多半是匹配范围变化,别急着怀疑仓库损坏,先看规则。,确认文件是否仍在磁盘上再排查。
  • 稀疏检出与子模块组合使用时行为更绕,先在小仓库验证再上大仓。

数据来源与参考

  • Git 官方文档:git-sparse-checkout(CONE MODE)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌