After reading around I found that there were various git workflows being used but there aren't enough (or I just haven't found them yet) info on how to use git properly with having test builds.
I was hoping someone here could shed some light regarding the problem me and my team are facing.
This image below is a high level representation of how we use git.
I am sure everyone understand the representation but let me just explain.
From Master (point A), a fork (Point B) is created to start development on a feature.
In Parallel: From Master (point A), another fork (Point C) is created to start development on another feature.
From fork A (Point D) is merged to the UAT branch (Point E), UAT branch is used for testing in the UAT Environment.
From fork B (Point F) is merged to the UAT branch (Point G), But Fork B cannot be merged until it gets the latest version from the UAT branch.
From this point, Fork B now has has Fork A's changes. (This is done because UAT version need to have all the features that QA needs to test).
Now when its time to finally merge back Fork B to master, we cannot pull request Fork B to master because fork B now has Fork A's changes. (at the same time we cannot Pull request UAT branch to master because it also has fork A's changes).
I've read about cherry picking and how it is not recommended (not sure why) or is it? Basically I just want to see what people has to say regarding this.
- How can we achieve only having Fork A's features to Master?
- OR is this workflow just wrong? what is the proper way to do this?
Any insights are much appreciated.