I'm working on a Kafka platform development project, the team is keeping all the code in master with no branches, next moving to QA, Stg, Prod. If in between these stages if they don't need any changes to move to next stage, they then revert all the unwanted changes and deploy the code and then put the unwanted changes back again in master. It's hard to go over every commit and check manually to revert the changes.
Is there any other way to avoid these reverts by creating any branches or any other strategies (CI/CD new structure plan)?