This is actually a question I would have expected much sooner!
So currently, the idea is to only work on the master branch for minor features and changes during alpha to save us some time. Major changes and features are implemented by creating a thematically labelled branch. Once the development on that is finished, a pull request is set up and we make sure that it doesn't break anything from the master branch, in which case we merge it.
For collaborators, access to the main branch is forbidden, they have to submit pull requests for any changes.
Once we hit Beta, we want to alter this workflow to not work on the main branch anymore. There will be a development branch which is merged into main with every stable release. Breaking changes will still be implemented in separate branches and then merged into the dev branch.