One approach might be to revert Commit_2, which would add a new commit which would completely undo the changes to every file modified in Commit_2. This would be perfect if you wanted to remove all changes, but you want to retain some of the changes.

Run the following command to see which files were changed in Commit_2:

git show --pretty="" --name-only dfsdc4yc

Now identify which files you want to keep, and then for each file type the following:

git checkout 54sdf4f4 file/to/restore

where 54sdf4f4 is the SHA-1 hash of Commit_3. This will effectively redo everything which was done to files you want to keep.

Now you can commit this change. You could amend the revert commit since you haven't yet pushed your local work, via: