Each package belongs to a separate Git repository. By default, there are two branches within each of the repositories: one called *master* and another one called *mock*. Both branches are protected and maintained by IRI (If necessary, this can be changed). The *master* branch is the one used for stable code. The *mock* branch should be used for allowing the developers to carry out mock tests.
Developers should not push any code to these two repositories but develop into branches or forks based on them. Once the code is sufficiently tested, a merge to the stable branch can be requested.
For those that are not familiar with GIT repositories, please have a look to [git - the simple guide] (http://rogerdudler.github.io/git-guide/) and [Pro - Git book] (http://book.git-scm.com/)