Documentation › Get started
Moving branches between stages
Drag and drop a branch to change its stage or merge it, and what happens to the databases.
Drag and drop
In the Branches list, drag a branch onto another stage's header to move it there. You can also click the stage tag next to the branch name and pick Move to . Drop a branch onto another branch to merge it into that branch on GitHub.
Move or merge Confirm the dialog. A move changes the stage but doesn't build yet.
Rebuild The branch shows This branch is now staging… with a Rebuild now button. The next build uses the new stage's rules. A merge pushes to GitHub, which starts a build on the target branch.
What happens to the databases
To staging : the next build is a fresh, neutralized copy of production. The branch's old development database is dropped once the new build is up.
To production : the next build uses the project's production database. If there is none yet, it is created with your modules and without demo data.
To development : the next build starts from a new database with demo data. A branch coming back from staging is set to Do nothing on new commits, so it only builds when you ask.
The production database is never dropped by a build, even when the production branch is moved away.
Rules
A project has one production branch.
A staging branch can't become production, and production can't become staging. Merge the code instead: dropping production on the Staging header merges it into the staging branch.
Moves that involve production need the admin role. The number of staging branches is limited in Settings → Staging branches .
A merge with conflicts is refused: merge locally with git and push.
A typical flow Work on a development branch → merge it into staging and test with real data → merge staging into production.