DevOps minimize the time between development of new feature and its readiness for production deployment. CI & CD (referring to Continuous Delivery) helps in achieving this goal. Going by this fact, let say development team keeps on creating new features that goes through CI/CD pipeline and each newly developed feature becomes a release candidate. As its a business decision to decide whether to deploy the 'release' now or later so at any point of time there could be possible that there are multiple releases are waiting to be picked and deploy on PROD environment (say release-1.0, release-1.1, release-1.2 etc.).
My question is :
1. What could be a branching strategy that allows multiple releases available in pipeline (I'm using standard Git flow and it doesn't allow creating new release branch(for release-1.1) without closing current release branch(release-1.0). I can't close current release branch as this release is still in pipeline and haven't deployed to Production yet?
2. As each new releases are developed on latest code, What happen if business decide to deploy latest arrived release than the older release which was there in pipeline? (i.e. release-1.0 is in pipeline and not yet deployed to production, release-1.1 developed on top of release-1.0 code and say it is ready for production release and business decides to deploy release-1.1 to production but release-1.1 also contains changes of release-1.0 as it is developed after release-1.0).