Apache Geode is heavily based on Git-Flow model  and  - Based on one of the first threads discussed in the project mailing list.
The main concepts are:
1) The master branch is reserved for production-ready code, aka releases.
- No changes are made directly on the master branch.
- Master is merged solely from develop, and only by the "release manager".
- Merges can only be done, when build is successful on all supported platforms, and the tests on all supported platforms have passed.
- In other word, if you want to develop an enhancement for Geode, use develop branch explained below.
2) The develop branch is the development mainline. Ongoing work shows up here first.
- develop branch holds the latest code
- It is used for active development thus can be unstable time to time (though unit test is enforced)
- Contributors can develop enhancements on this branch and make patches.
3) Feature branches may be used to isolate interim work and will merge back to develop.