"value":"\n <p>I previously worked on a project where, after a code change had been reviewed and merged, it was pushed to a UAT environment for the client to test.<\/p>\n\n<p>This usually resulted in a group of changes pushed to the UAT environment, waiting for the client to test them.<\/p>\n\n<p>They would, and then decide which changes they wanted to be moved to production.<\/p>\n\n<p>Maybe changes 1, 2 and 4 would be asked to be deployed, but not 3 or 5.<\/p>\n\n<p>Someone would then cherry pick the relevant commits onto the mainline branch and deploy them to production.<\/p>\n\n<p>But, if the code isn't the same as on that UAT environment, how do you know it still works?<\/p>\n\n<p>Could a commit have been missed or could not including a non-selected commit have caused a regression or unintended side effects?<\/p>\n\n<p><code>git cherry-pick<\/code> isn't a command I use often, and definitely not in this scenario.<\/p>\n\n<p>If you want to select which changes go live, feature flags are a better option as you don't need to change the commits or code you're pushing.<\/p>\n\n<p>You push all the commits from UAT to production and enable the feature flags for the things you want to release.<\/p>\n\n ",
"format":"full_html",
"processed":"\n <p>I previously worked on a project where, after a code change had been reviewed and merged, it was pushed to a UAT environment for the client to test.<\/p>\n\n<p>This usually resulted in a group of changes pushed to the UAT environment, waiting for the client to test them.<\/p>\n\n<p>They would, and then decide which changes they wanted to be moved to production.<\/p>\n\n<p>Maybe changes 1, 2 and 4 would be asked to be deployed, but not 3 or 5.<\/p>\n\n<p>Someone would then cherry pick the relevant commits onto the mainline branch and deploy them to production.<\/p>\n\n<p>But, if the code isn't the same as on that UAT environment, how do you know it still works?<\/p>\n\n<p>Could a commit have been missed or could not including a non-selected commit have caused a regression or unintended side effects?<\/p>\n\n<p><code>git cherry-pick<\/code> isn't a command I use often, and definitely not in this scenario.<\/p>\n\n<p>If you want to select which changes go live, feature flags are a better option as you don't need to change the commits or code you're pushing.<\/p>\n\n<p>You push all the commits from UAT to production and enable the feature flags for the things you want to release.<\/p>\n\n ",