We have to support multiple releases, so we are following git branching model similar to the above diagram. Now the problem is that we have to do lots of merging here example for
fix/011, we are merging it three different branches(
release/2.0). Also there is question of from where to create this
fix/011 branch from
release/2.0? Creating it from master brings unwanted features, creating it from any release branch brings merging overheads and conflicts and cherry pick back to master is error-prone.
Is there any better approach? We can't follow single release branch approach because our different customers are on different releases and many times they don't want to do major upgrade to get fix for small issue(and there are pricing aspects as well)
We are using github.
One good option I found is forking fix(/feature) branch from all branches (refer: https://docs.microsoft.com/en-us/azure/devops/repos/git/git-branching-guidance?view=azure-devops#port-changes-back-to-the-master-branch) but our developers didn't find it much different from exiting approach and they feel is complex.