Skip to Content
CLIWorkflowsIncremental Pull

Incremental Pull

sfdt pull retrieves metadata from your default org into local source. A SQLite-backed cache tracks what’s been retrieved and each component’s modification date, so subsequent pulls fetch only what changed in the org — a big win on large orgs.

Define what gets pulled

.sfdt/pull-config.json lists the metadata types and the target directory:

{ "metadataTypes": [ "ApexClass", "ApexTrigger", "LightningComponentBundle", "CustomObject", "CustomField", "Layout", "FlexiPage", "PermissionSet", "Flow" ], "targetDir": "force-app/main/default" }

Add or remove types to control the scope.

Pull modes

sfdt pull # incremental — only changed components sfdt pull --full # force a full retrieve and rebuild the cache sfdt pull --status # show cache status (last pull time, component counts) sfdt pull --dry-run # preview without writing

Use sfdt pull after an admin makes changes directly in the org to bring source back in sync. Use --full to reset the cache after major changes or if you suspect the cache is stale.

Tune the cache

Cache behavior is set under pullCache in .sfdt/config.json:

{ "pullCache": { "enabled": true, "parallelism": 5, "batchSize": 100, "retrieveTimeoutSeconds": 360 } }
KeyEffect
enabledTurn the delta cache on/off
parallelismConcurrent retrieval threads
batchSizeComponents per retrieve batch
retrieveTimeoutSecondsPer-retrieve timeout

The cache lives in .sfdt/cache/. It’s safe to delete — the next sfdt pull --full rebuilds it.

Last updated on