master-------+-----+ ⬆ | | +-develop | | ⬆ ⬇ | +-----feature1-+ | ⬆ ⬇ +------------feature2
That solves one big problem in our C++ pipeline. Someone merges his features into develop and let's assume there is a compiler error due to an incorrectly resolved conflict, etc. (developers simply can't resolve all issues locally because of 8 different targets). So they submit it, compile it on the build server and fix any issues that are left. Only if develop compiles on all platforms, the changes will be merged into master. So it's like a safety branch so nothing broken ends up in master. With this solution every developer can be assured that any integrate from master into his feature branch is clean and works.
Now my question, how is this achieved with git flow? How are features coming from one feature branch into another without any problems?