
Content Version for Git backs up WordPress content versions to a GitHub repository. It creates a GitHub revision history for posts, pages, categories, tags, and optionally media metadata and original media files, so editors and site owners can audit changes, compare versions, restore earlier content, and recover deleted resources from wp-admin.
This is designed for site owners, agencies, and developers who want a GitHub-backed content audit trail without running Git on the WordPress server. The plugin writes and reads Git objects through the GitHub API. It does not keep a local Git repository and does not call the git CLI.
Features include:
- GitHub backup and revision history for WordPress posts, pages, categories, tags, and optional media resources.
- Automatic Git versions for normal post and page saves.
- Batched Git versions for direct category and tag relationship changes.
- Side-by-side content diffs and field diffs.
- Full restore and content-only restore modes.
- Deleted Resources view for posts, pages, and tracked media.
- Restore deleted posts/pages as new drafts and deleted media as new attachments.
- Optional media metadata and file tracking.
- Manual import of existing posts, pages, and media.
- Version store dashboard with branch, latest commit, tracked file count, size, and GitHub version store status.
- Direct GitHub API commits without a local Git worktree.
Safety boundaries:
- Import Existing Content only writes versions to GitHub. It does not change WordPress posts, pages, media, categories, or tags.
- No content is sent to GitHub until an administrator enables and configures the GitHub version store.
- Use a private GitHub repository because versions may include unpublished content, metadata, and media files.
- The GitHub token is not displayed after saving.
- Normal version writes preserve unrelated files on the selected branch.
- Reset GitHub Version Store rewrites the configured GitHub branch history, but it does not delete WordPress content.
External Services
This plugin connects to GitHub when the “Enable GitHub version store” setting is enabled and a repository URL, branch, and personal access token are configured.
When enabled, the plugin writes Git commits directly to the configured GitHub repository using the GitHub API. Commit data may include post/page content, metadata, term references, media metadata, and media files if media tracking is enabled.
Create the GitHub repository before configuring the plugin. The repository may be empty, and the plugin can initialize an empty repository on the first write, but it does not create GitHub repositories. Use a dedicated repository or a dedicated branch for this plugin’s version store. Normal version writes preserve unrelated files on the branch, but Reset GitHub Version Store rewrites the configured branch history.
For fine-grained personal access tokens, select only the version-store repository and grant Contents read and write access. Organization repositories may require organization approval for the token before the plugin can use it.
The GitHub version store is disabled by default. No data is sent to GitHub unless a site administrator enables and configures it. Without the GitHub version store, this plugin does not keep durable local Git versions. GitHub’s terms and privacy policy apply:
- https://docs.github.com/en/site-policy/github-terms/github-terms-of-service
- https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement
Screenshots

Content Versions Dashboard showing version store status, settings, import controls, and GitHub version store configuration.

Content Versions page for a post with preview, diff, and restore actions.

Side-by-side content diff and field diff view.

Deleted Resources list with post, page, and media restore options.