Keeping a fork in sync
This page is for designers maintaining a fork (Forking a theme). A fork that never merges from its origin misses every fix made there, including security fixes.
Step by step
Add the original as a remote, once:
git remote add upstream https://github.com/originalvendor/theme.git git fetch upstream --tagsMerge regularly (each upstream release, or monthly):
git fetch upstream --tags git switch main git merge upstream/mainResolve conflicts: in templates, keep upstream's fixes (escaping, accessibility) and re-apply your change on top. Read each conflict; never take one side blindly.
Test as in Upgrade testing, step by step.
Release your fork with a changelog entry:
Updated: merged <original> <version>.
Merge rather than rebase a branch others have fetched: rebasing rewrites published history.
Keep merges easy
- Keep your changes in separate files where possible (an override of a template rather than an edit of it).
- Send general fixes upstream (Contributing back upstream); every accepted one is a conflict you will never have.
Related pages
- Develop with Git
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.