Knowledge base

Two-way sync with your GitHub repository

Changes you make to your site turn into commits in your own repository, and what you push there lands on your site. It is free, and here is what happens when both sides change at once.

Connect your own GitHub account to a site and we will keep the two in step in both directions. It is free, it is off until you switch it on, and we only ever commit into a repository on an account you own — never one of ours.

What gets synced

Anything you change in your site's files becomes a commit in your repository, however you changed it: the file manager, SFTP, the WordPress theme editor, or an SSH session. You do not have to tell us — we compare your site against its last commit and push the difference.

Going the other way, a push to your connected branch lands on the site.

What we never commit

Your wp-config.php is excluded, deliberately and permanently. It holds your database password and your authentication salts, and those do not belong in a repository — not even a private one, because git keeps history for ever.

Also excluded: .env files, keys and certificates, your uploads folder, caches and node_modules. A repository is your site's source, not a backup. Media belongs in your backups, where it is already kept, and putting it here would make every push slow and every change unreadable.

What happens if both sides changed

This is the question worth reading. Say you edit a file in the file manager, and meanwhile a colleague pushes a change to the same repository.

We stop. We do not merge, and we do not overwrite anybody. The site's Deploy tab shows "Your repository has changes we haven't seen", names the commit you need to look at, and waits for you. Nothing is lost on either side while it waits — your edit is still on the site, their commit is still in the repository.

You then choose:

  • Keep this site's files — we put your version on top of theirs. Their commits stay in
  • the history; nothing is erased.

  • Use the repository, discard site changes — the repository's version is applied to the
  • site, and the changes you had made here are discarded. This one is destructive, which is why it is a deliberate click and never something we do on your behalf.

There is no "merge automatically" option, on purpose. A merge performed by us would produce a file that neither of you wrote, on a live site, without either of you seeing it first.

Why syncing might stop

  • You have not connected your own GitHub account. The switch stays off until you do.
  • It is waiting for you. See above — a hold does not clear itself.
  • Your account is not in good standing. Syncing pauses and resumes on its own once
  • billing is up to date. Nothing is lost.

The Deploy tab shows the last few syncs, including the ones where nothing had changed. If that list is empty and sync is switched on, the connected account most likely cannot write to the repository — check its access and reconnect.

Choosing what syncs

By default the whole site syncs. On a WordPress site that is usually not what you want: it means every file of WordPress core, which you did not write and will not edit. Set "Sync only this folder" to your theme — for example wp-content/themes/my-theme — and the rest is left alone.

Still stuck?

Support is included on every plan and answers in your own language.

Contact support All articles
Two-way sync with your GitHub repository