Well if you have already pushed out the change then that is an issue.
There are two options ,
1.Add more commits and correct the errors that you made. Make sure the commit message explains why you are doing that. This will make sure history is maintained correctly.
2.The second option deals with messing up the history. So if you decide to do this remember you are going to mess up history so you have to risk it ! This is not a standard practice and highly discouraged.
Do a gitk
on the branch you expect to fix.
Click on the commit where you want to reset the branch to. Right click and select reset branch to here
.
Now do the merge correctly.
Force push the branch upto the repo.
Now if you have not pushed out the changes then it becomes simpler.
Just reset your local feature branch to where you want it to be.
Redo the merge.
Rebase against the master
and push it out.