Say we have a development branch, and a few issue/feature branches that have had work done on them, call them iss-24, iss-28, tracking-module, form-submission-feedback. Assume that none of the branches are deleted after merging.
1) We do some work on iss-24, then we git checkout development, and do git merge iss-24
2) We do some work on tracking-module, then we git checkout development, and do git merge tracking-module
3) We do some work on iss-28, then we git checkout development, and do git merge iss-28
4) We do some work on form-submission-feedback, then we git checkout development, and do git merge form-submission-feedback
5) After all of these branches are merged into development, we realize we need to make a quick edit to the development branch, so we make that, commit it, and deploy/push to the webserver for client review.
6) Client reviews, approves everything, but then they decide that they want to delay the tracking-module feature.
My question is, how do we safely remove or undo that tracking-module merge while preserving history?
 
     
    