We use Git Flow for our branching strategy (http://nvie.com/posts/a-successful-git-branching-model) That basically our branches represent different levels of stability:
- master branch is the most stable.
- release-x.y.z is not as stable as master, but more stable than,
- develop branch which is again more stable than
- feature-my-awesome-feature branch.
Having merge checks makes perfect sense when merging from lesser stable to more stable branches, such as merging a feature branch into develop (there the merge checks and pull requests are a way to increase stability).
However, merging the other way is always considered safe, i.e., it is always safe to merge release-x.y.z branch into develop, since that should not decrease stability of the develop branch since the release branch is more stable.
With the current implementation of merge checks it is only possible to restrict on the target branch. For example, it means I can only implement rules for the develop branch and those rules are the same if it is a feature branch or a release-x.y.z branches that should be merged.
I would like to have a method for the developers to easily do the safe merges from stable branches to the lesser stable branches without having to go through pull requests and all of the merge checks.
Link to the relevant repository: https://bitbucket.org/mirrobots/mir