What's the purpose of develop then? Production staging? A safety net master is always shippable?
But I've also wondered about it, hence my question in response to Robert's post.
Exactly that. You usually have CI on 3 levels (possibly with increasing complexity on e.g. compilers tested): 1. PRs 2. develop 3. master Why is the 2nd stage required? Assume you have 2 MRs. The first introduces a new file using some existing functionality. The 2nd changes/removes/renames that existing functionality and all references. Both MRs pass CI and are merged. But now your develop is broken as the update from the 2nd was not applied to the feature in the 1st. Another commit (possibly directly to develop) fixes this after which CI passes. Now you can put this into master.