CloudCannon is a Git-based CMS, and one of the most useful elements of Git workflows is the capacity to create branches of your website.
- Branch — A copy of your website that allows you to update your files without affecting your live content. When you are happy with your changes, you can publish your branch to the "main" copy of your Site.
A Publish Branch the branch immediately "upstream" of the branch you are working on, and is the copy of your website to which you want to publish your changes.
Let's go through an example.

The diagram above shows a common Git workflow, with five branches (also known as Sites in CloudCannon). In this example, content creators or developers on your team make a branch to work on each discrete project. This could be writing a new blog post, updating your product catalog by removing a page, or changing your website navigation. These task happen on separate branches so that each team member can work in parallel, with complete control over their project and no risk of accidentally showing incomplete work on your live website.
When a team member is done, they can publish their changes to the Publish Branch. In this example, the three branches "Write a new blog", "Remove a product page", and "Update site navigation" share a Publish Branch: "Staging Website". The Staging Website branch is a great place to see all your team's work together, and review your changes as a whole before making it public.
The Staging Website also has a Publish Branch: the Live Website. When you are ready for your changes to go public, you can publish to the Live Website.