MMT works on template branches. Each remote points at one branch, and each checkout tracks one remote.
Create a branch#
Copy an existing branch from a remote:
mmt branch create -r mystore-dev holiday-2026
Or name the parent, store and credential:
mmt branch create -f Production -s ST -c mystore holiday-2026
Add -l to set the branch color shown in the admin. Then add a remote for the new branch and check it out:
mmt remote add -c mystore -s ST -b holiday-2026 mystore-holiday
mmt checkout mystore-holiday ./mystore-holiday
Work on several branches#
The simplest way is one checkout folder per branch. Each has its own .mmt folder and keeps its own state.
mmt switch moves an existing checkout to another remote’s branch without downloading anything. It’s useful for pushing work you did on one branch to another, but read its notes first: objects that exist on the new branch but not in your folder show as modified, and a plain push would send them empty.
Delete a branch#
mmt branch delete -c mystore -s ST holiday-2026
MMT doesn’t ask for confirmation. Delete any remotes and checkout folders for the branch afterwards.
Tags#
Changesets can have tags, for example #release-2026-10. In MMT, tags belong to the checkout:
- Checkout and switch start with the tags of the changeset you got.
mmt tagadds, replaces or removes them. Nothing is sent to the server yet.- Every
mmt pushsends the checkout’s tags with the new changeset.
Tags are stored in lower case without # or spaces, so mmt tag add "Release Oct" becomes #releaseoct. Remember to change or clear tags after a release push, or the next push gets the same tags.