git sparse-checkout set: Usage, Options & Common CI Errors
git sparse-checkout set limits which directories Git materializes in the working tree.
In a large monorepo, sparse-checkout lets a CI job check out only the paths it builds, cutting checkout time and disk. Cone mode keeps the patterns simple and fast.
What it does
git sparse-checkout set defines the set of paths present in the working tree; everything outside the patterns is left out. git sparse-checkout init enables the feature, and disable turns it off and restores a full checkout.
Common usage
git sparse-checkout init --cone
git sparse-checkout set apps/web libs/shared
git sparse-checkout list
git sparse-checkout disableOptions
| Subcommand / flag | What it does |
|---|---|
| init --cone | Enable sparse-checkout in cone mode |
| set <paths> | Replace the included path set |
| add <paths> | Add to the included paths |
| list | Show the current patterns |
| disable | Turn off and restore a full tree |
Common errors in CI
An empty working tree after set usually means cone mode plus a path that does not exist, or non-cone patterns that match nothing - verify with git sparse-checkout list and that the paths exist in the commit. Combine with a partial clone (--filter=blob:none) to avoid downloading excluded blobs at all.