Anyone who has editor access at the organization level will be able to create a branch. If an editor only has viewer access to a specific file, they can still create a branch from it but will not be able to merge changes.
Anyone who has access to the main branch has the ability to see other branches. If you need to share it with someone who is not part of the main file, you have the option to specifically invite people only into the branch—preventing them from having access to main.
You can create multiple branches off of the main file, but you can't make a branch of a branch.
Users in the branch will receive a notification (much like a library update) that there have been updates and they can update their file from main.
It is not currently possible to publish from a branch.
Merging can only done by those who have editor access on the main file. Viewers who created a branch will need to reach out to an editor to have the branch reviewed and merged.
Open and resolved comments stay connected with the branch they were created in and will not merge into the main file. After a branch has merged and archived, you can open the branch to view any comments in it.