I have modified, committed and pushed: fileA, fileB, and fileC. I should only have pushed "fileA" and "fileB", and my pull request has been declined due to this unwanted fileC.
Baring in mind that I have pushed these changes to the remote repository, is there a way for me to fix this locally so my pull request will not include fileC any more?
Simply create a new head with all necessary commits, starting to branch-off at the same parent where your 'wrong' changeset is based on. Then create a new pull-request for that new head you thus created.
Afterwards, you can opt to remove the unwanted head with the changeset(s) which include the unwanted fileC, however that should not be necessary. The
strip
command will come in handy for that (it's an extension and needs activation in your mercurial config file)