As a plugin or theme developer, you likely use git for WordPress version control — especially if you work with a team. But even many devs who work solo use version control either as a way to keep their git skills fresh or to help track changes over the course of a project.
If you have a solid workflow that utilizes some combination of git plus a service like GitHub, BitBucket, or GitLab, that’s great. But once you push your changes or merge a pull request, you still have to use SSH or FTP to deploy your updated files on your site. That’s an extra step that eats up precious time.
What if you could deploy those commits directly to your WordPress site automatically? With FetchPress, you can. Put simply; if you use version control when developing for WordPress, you need to be using FetchPress. I’ve tested the plugin with my own code and GitHub account, and in this FetchPress review, I’m excited to show you how it works.
Hook Into Git With FetchPress
Fetch Press is a WordPress plugin that hooks into your remote git repository and automatically deploys your code when you make a push or merge a pull request.
With FetchPress, you can synchronize any repository, public or private. Whether your repo is stored on Github, Bitbucket, or GitLab, you can use FetchPress to sync and deploy your theme or plugin code in a snap. You can stop wasting time using SSH or FTP and spend more time writing code.
How to Use FetchPress for WordPress Version Control
Let’s walk through the setup and usage of FetchPress. It’s easy to use, but I’ll go through the steps as I tested the plugin and show you how to get set up.
Installation and Setup
First, you’ll need to grab the FetchPress plugin. You can try it for free by creating an account at https://fetch.press. After setting up your account and logging in, you can download the plugin from your account page.
Once you have the plugin downloaded, simply install and activate the plugin on your WordPress site as you would any other. If you already purchased a site plan, you can enter your license on the first tab of the main menu.
You can use FetchPress with all public repositories if you don’t have a license. The advantage of purchasing a license is that you can use it with private repositories. For this review, I tested the paid version with GitHub, although you can use GitHub, BitBucket, or GitLab.
Connect with GitHub
To allow the deployment of private GitHub repos, you’ll need an access token. If you’ve ever authorized access to your GitHub account with another service, the process will be familiar to you. In FetchPress, navigate to the GitHub tab. Click the Get GitHub Token button, which will open a modal requesting access to your GitHub account.
Copy the token you receive and paste it into the FetchPress GitHub Token field on your WordPress site. Click Save Changes, and that’s it — you’re connected! It’s that easy.
Add a Plugin
I already had a private GitHub repository for a plugin I’ve been working on, so I was ready to get started. The process is pretty straightforward.
In the FetchPress admin bar menu, click Add plugin. On the Add Plugin screen, enter the info about your plugin using the fields at the top.
Repository: Enter your username/project-name
Branch: This defaults to master if left empty.
Repository subdirectory: This field is optional — it’s only required if your theme or plugin resides in a subdirectory within the repo.
Version Control and Other Choices
Select the radio button next to the version control service you’re using; GitHub, BitBucket, or GitLab.
Then choose Private Repository if necessary, and leave it unchecked if it’s public. If you select Deploy on Push, FetchPress sets up a webhook that automatically deploys your code from the repo whenever a change is pushed to the branch. If the plugin already exists on your site, you’ll want to select Link to existing plugin. You need to ensure that the existing plugin folder name matches the name of your git repo.
Once you’ve made all your selections, click the Add Plugin button. You’ll get a message telling you it was successfully installed — or, in my case, if it wasn’t. I struggled with this for a few minutes until I realized I had named my master branch “main.” Because I had left the Branch field blank, it wasn’t able to sync correctly. Something to be aware of if you have a different name for your master.
If you get the message that your plugin was installed successfully, you can activate it using the handy link in the message.
Add a Theme
You can also add and sync a theme to your WordPress site from your repository. It works exactly the same as adding a plugin.
Managing Your Themes and Plugins
FetchPress creates a “card” for each theme or plugin you install and sync. You can access them through either the Themes or Plugins items in the admin menu.
Managing is super easy. There are three options on each card for managing each plugin or theme:
Update: If you didn’t choose to Deploy on Push when you set up your plugin or theme, you’ll need to update manually.
Edit: Clicking the Edit Plugin (or Theme) button brings you to the now-familiar screen where you initially set it up. You can make any selections — like choosing to Deploy on Push — or edit the name of the folder, branch, or repository subdirectory.
Unlink: Clicking the broken link icon will disconnect the theme or plugin from syncing to your repo. It will remain installed but will no longer update through FetchPress.
Testing FetchPress Sync
Let’s see how this works by pushing some changes to my previously-installed movie-reviews plugin.
First, I made code changes on my local machine, then pushed them to GitHub like normal. I could see the pushed commit in my activity.
Then, I returned to my test site, and in FetchPress→Plugins, I clicked Update Plugin. FetchPress gave me the thumbs-up via a message saying, “Your plugin “Easy Movie Reviews” was upgraded successfully.” So far, so good, but I needed to see if my change actually synced.
Unfortunately, my code change was so small that it wouldn’t be readily apparent. So I checked the plugin code in my test site’s plugins folder.
Success! I could see that the line of code that I had changed was updated, just as I intended, and pushed to GitHub.
As I mentioned, you can try FetchPress for free by creating an account on their site. When you’re ready to add a site plan, you can go live.
Site plans are all based on an annual subscription model with three tiers:
For $99 per year, you get a license for up to 20 sites, with unlimited deployments to private and public repositories.
Pro gives you a license for up to 50 sites at $199 per year, with unlimited deployments to private and public repositories.
You can use FetchPress on up to 500 sites at the Enterprise level for $499 per year. Like the others, it includes unlimited deployments to private and public repositories.
FetchPress Works Like a Charm
It’s always gratifying when I find a plugin that just works, and FetchPress is one of those. The interface is uncomplicated and intuitive. It’s obviously made for developers in that they don’t insult your intelligence with a lot of overdone, bloated menus. FetchPress gets right to the point and does what it promises. Not that it’s an unattractive UI — it just stays out of your way and makes things easy to configure.
If you use version control when developing for WordPress, you need to be using FetchPress.