Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Putting a theme under Git

Keep a theme in its own Git repository, rooted at the extension folder - why one repository per theme, how to start it, how to work on it inside an installation, and which commit message prefixes to use.

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/designers/extensions/putting-a-theme-under-git.md

On this page

Putting a theme under Git

This page is for designers who have not yet put their theme under version control, or who keep it inside a site's repository. The themes 7x publishes each live in a repository of their own whose root is the extension folder.

Why one repository per theme

One repository per themeThe theme inside a site's repository
Its own history, tags and releasesReleases mixed with the site's changes
Installable with Composer by any siteCopied by hand into other sites
Contributors see only the themeContributors see the customer's site
Can be public while the site stays privatePublishing it means publishing the site

Step by step: start the repository

  1. Go to the theme's folder: cd extension/mytheme.
  2. Create the repository with main as its branch: git init -b main.
  3. Check what will be committed: git status --short. Add a .gitignore first (A .gitignore for themes).
  4. Commit: git add . && git commit -m "Added: The mytheme theme extension".
  5. Create the remote repository and push (Creating the GitHub repository).

Working on it inside an installation

  • If the installation requires the theme through Composer, let Composer make the clone so its history is kept: composer config --global 'preferred-install.yourvendor/*' source, then composer require (or composer reinstall) the package. A clone made by hand in place of an archive Composer installed is replaced at the next update. See Develop with Git.
  • Commit in extension/mytheme, not in the installation's repository.

Commit messages

Write what changed for the user and why, with one of these prefixes, so a changelog can be assembled from the history:

PrefixFor
Added:A new template, view mode, setting, translation
Updated:Changed behavior or look
Removed:A deleted template, setting or file
Renamed:A renamed file, setting or class
Fixed:A bug fix

Example: Fixed: The map popup escapes the address and the title.

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.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x