nf env push and nf env pull sync the database and mutable wp-content between the local env and a configured repo remote.
Database and uploads sync are high risk. Treat every production push as potentially destructive.
Pull remote data into local development:
nf env pull production --dry-run
Push local data to a remote env:
nf env push production --dry-run
If you omit the remote, nf prompts you to choose from configured repo remotes:
nf env pull --dry-run
In non-interactive mode, provide the remote explicitly.
Sync includes:
wp-content/uploadswp-content/pluginswp-content/languagesSync intentionally skips wp-content/mu-plugins. MU plugins are target-owned platform files: local Docker owns local-only helpers such as nf-mailpit.php, Kinsta owns kinsta-mu-plugins.php and its companion directory, and Linode owns nf cache integration. Use nf site repair <site:env> to restore provider platform files when an existing env was damaged by older sync behavior.
Sync also does not reconcile wp-config.php defines. Use nf define status [remote] and nf define sync [remote] for configured project constants such as plugin registration keys.
Theme deployment is separate. Use Themes for theme releases.
After the destination database is imported, nf updates the destination URLs, runs search-replace when needed, activates the configured theme when installed, and runs wp rewrite flush. This regenerates WordPress rewrite rules without --hard. The existing object-cache flush remains a separate later step. A rewrite failure fails the sync and prevents the cache step from being reported as complete.
Dry-run prints the local project, local env path, remote name, site, env, provider, URL, access summary, and mode:
nf env pull production --dry-run
nf env push production --dry-run
No data is changed in dry-run mode.
Non-interactive preflight without execution is also non-mutating:
nf env pull production --non-interactive
Interactive execution prompts for confirmation:
nf env pull production
nf env push production
Non-interactive execution requires both --execute and --yes:
nf env pull production --execute --yes --non-interactive
nf env push production --execute --yes --non-interactive
Before pulling remote data into local:
nf remote show <remote>.--dry-run and read the plan.Before pushing local data to a remote:
wp-content.--dry-run and read the plan.Key rule: never silently clobber production credentials or content.