锥形模式(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 记录当前状态便于回退。;在仓库文档里记录启用步骤,方便新成员复现环境。