We recently had to revert a merge into the master branch due to a suspected bug it introduced.
Later, it turned out it wasn't a bug in my branch after all. But re-merging the same changes again turned out to be a challenge. Since git knew about the original merge, it (understandingly) stubbornly refused to merge the same changes into master again. I also didn't find a way to cleanly "replay" the changes I did into a new branch, probably because I merged changes from master into my branch now and then.
At the end, I made a diff on master from the state after the merge revert commit to the state before the said commit. So that this diff, when applied, would revert the changes from "merge revert" and thus would reapply my changes. I created a new branch based on the snapshot after merge revert, applied my diff onto it and had my new branch successfully merged into master.
All this worked well, but I wonder if there is a more straightforward way to reintroduce changes from a reverted merge. There were further commits and merges after the reverted merge, so simply restoring the repository from a backup etc. was not an option.