Similar to the Git workflow for code, users often want to be able to make edits in a separate branch or sandbox rather than directly editing and publishing to the main version of their site. Branching would allow you to do just that. As soon as a user starts to make edits, they would automatically be working in their own branch. Other users can view and work in the same branch to collaborate. When ready to publish, you would merge your changes into the main branch of the site. We would likely also add options to require approval for merging for certain roles as well.