First revert the full commit (puts it in index) but don't commit, where -n is short for --no-commit:
git revert -n <sha1 to reverse>
Then interactively remove ("destage") the reverted GOOD changes from the index, where -p is short for --patch:
git reset -p