PushPull stores selected WordPress content in a Git repository using a canonical JSON representation instead of raw database dumps.
This is a beta plugin. It is still under active development, has limited functionality, and currently supports only a narrow subset of the intended PushPull feature set.
The current release supports these managed content domains:
gblocks_styles)gblocks_condition)wp_block)PushPull keeps a local Git-like repository inside WordPress database tables and supports the following workflow directly from WordPress admin:
The plugin also includes:
This is an early, focused release. At the moment, PushPull is intentionally limited to:
manifest.json per managed setIt does not yet manage general posts, pages, menus, media, forms, or arbitrary plugin data.
PushPull does not use WordPress post IDs as repository identity.
For the currently supported managed sets it stores:
manifest.json file that preserves logical orderingPushPull currently supports GitHub repositories through the GitHub Git Database REST API.
Create a fine-grained personal access token or installation token with access to the target repository. The token should allow:
In PushPull > Settings:
GitHub as the providerTest connectionThe normal workflow is:
Commit to snapshot the current live managed-set content into the local repositoryFetch to import the current remote branch into refs/remotes/origin/<branch>Pull for the common fetch + merge flow, or Merge manually after fetch when you want review firstApply repo to WordPress when you want the local branch state written back into WordPressPush when you want local commits published to GitHubIf both local and remote changed, PushPull can persist conflicts, let you resolve them in the admin UI, and then finalize a merge commit.
If the configured GitHub repository exists but has no commits yet, Test connection will report that the repository is reachable but empty.
In that case, click Initialize remote repository. PushPull will:
You do not need to create the first commit manually on GitHub before using PushPull.
PushPull connects to the GitHub API for the repository you configure in the plugin settings.
The plugin uses GitHub’s REST API to:
PushPull sends the following information to GitHub over HTTPS:
Authorization headerIn the current release, the managed content sent to GitHub is limited to the enabled supported domains: GenerateBlocks Global Styles, GenerateBlocks Conditions, and WordPress Block Patterns.
PushPull does not send your whole WordPress database to GitHub. It only sends the managed content represented by the enabled adapters.
GitHub terms of service: https://docs.github.com/en/site-policy/github-terms/github-terms-of-service
GitHub privacy statement: https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement