Never commit to main
candidate branch contains latest, working, work in progress
Always fork from candidate or a feature branch.
Merge your own feature branches into your own feature branches
Open pull requests to merge your feature branches into candidate. Request code review.
Never merge candidate into main