We are redefining the way we move commits from dev branch to prod branch. We are mostly following Kanban based approach where stories comes in develop it, move to QA, stays at QA and then moves to preprod when it was tagged for release and finally to release.
We got a dev branch, then we got a QA and Release. Developers will work on dev branch then cherry pick the commit to QA and QA team validates the story. The changes will stays at QA and moved only when it was tagged to a release. Once it is tagged then cherry pick to Release.
Since the tickets was not moved immediately after the developing it, working on a release is a pain full tasks to cherry pick all the changes from QA to Preprod. There are some situations where some commits missed during cherry pick.
Proposed approach
Another approach was discussed that the user will create a feature branch from dev and merge the changes back to dev once the MVP completed. Then cherry pick the merge commit to QA and release. So for a release of 25 stories, we will have only 25 commits ideally all of them are merge commits with Jira Id.
Please suggest any drawbacks any other suggestion to improve our process. The use of feature flags are not considered at the moment.
We are using GitLab
as the source control application
Thanks for your time.