How to Deploy to Your Sites Using Git

Last modified: September 2, 2025

What You Need to Start

In order to begin, you will need the following already setup:

  • A repository in GitHub for an existing site with a /wp-content/ directory in its root. Example:
  • plugins/ mu-plugins/ and/or themes/ directory inside /wp-content/
  • The repository in question is hosted at GitHub (More providers will be available in the future).
  • The HTTPS URL for the repository you will be deploying from.

Getting Your HTTPS URL

Navigate to the repository you are interested in deploying and click on the green “Code” button. Make sure under the clone title you have selected “HTTPS” or that the header says “Clone with HTTPS” before copying the HTTPS URL.

Github clone tab with HTTPs url selected

Connecting to Pressable

Navigate to your https://my.pressable.com dashboard. Create a new site or select an existing site you want to connect. Click on the Git tab from the single site page:

Paste the URL you copied from GitHub into the field and click Set Repository URL to connect. You can choose which folders to include in each deployment, and toggle whether files should be deleted from those folders if they no longer exist in your repository.

Authorizing

The page will refresh, and you will need to click Authorize to authorize Pressable to interact with this repository:

Once you click “Authorize,” you will be prompted to log in to GitHub and authorize this interaction.

Github authorization

Selecting the Branch

After you have authorized the application, you’ll be returned to your MyPressable Dashboard, and you will now have the ability to select a branch from your repository. This is the branch that you want to deploy to Pressable servers for the site you are configuring.

Pressable Git Branch Selection

As soon as you set a branch, you’ll want to configure the branch settings below.

Branch Settings

The branch settings allow you the flexibility to choose if you wish to synchronize your plugins, mu-plugins, and/or themes directories.

Additionally, you can decide whether to delete theme files and/or plugin files that are not present in the depository.

Once your preferred settings are toggled, click the Set and Deploy button. Going forward, anytime you push to the specified branch, we will receive notice and automatically deploy the changes to your site.

You can monitor the status of your deployments on the GitHub History section underneath the integration settings:

How Deployments Work

When changes are pushed to the configured branch, GitHub sends a webhook to Pressable. Our deployment process clones the repository and uses rsync to sync changes into the correct WordPress directories:

  • wp-content/themes/
  • wp-content/plugins/
  • wp-content/mu-plugins/

All repositories, whether public or private, can be used. Existing OAuth authorization and webhook handling continue to work without modification. If GitHub integration is revoked, connections and deployments for all directories (themes, plugins, mu-plugins) are also removed.

Organizations & third-party application access policy

If you are attempting to connect Git with a private repository under an organization, or have multiple organizations under your account, then you’ll want to make sure that the proper settings are set. If you are experiencing issues with Git connecting to the wrong organizations or not allowing you to select a branch, then you’ll want to follow the steps below:

  1. Access the main GitHub account settings here.
  2. Under Integrations click on Applications
  3. Then click on the Authorized OAuth Apps tab
  4. Under Organization Access you’ll see Organization access with all of your organizations listed.
  5. Clicking on the Grant button next to the corresponding organization will enable connection to any private repo under that organization. More info can also be found here.

Restrictions

  • We currently do not pull down WordPress Core files or the /wp-content/uploads directory.
  • Unless enabled in Branch Settings for theme, plugin, and mu-plugin directories, Git deploys currently do not delete files from the site when it syncs. Only file additions or changes are deployed.