Currently AFAIK master is whatever was pushed last by a developer who has rights to push to master.
We need a better clear branching model that allows anyone to pick out whatever they need, be it a stable branch, the current development head or a feature branch.
I suggest we follow the clear branching model explained in this post:
1) Master always contains the release code, in addition releases are tagged
2) Development head is called the ‘develop’ branch. This is where developers with sufficient access merge pull requests and feature branches
3) (Optional in future, maybe when things have evolved) Release branches are branched from develop to form candidates for a release
4) Feature branches are branched from develop to work on larger features