Does anybody know how to easily undo a git rebase?

The only way that comes to mind is to go at it manually:

git checkout the commit parent to both of the branches

then create a temp branch from there

cherry-pick all commits by hand

replace the branch in which I rebased by the manually-created branch

In my current situation this is gonna work because I can easily spot commits from both branches (one was my stuff, the other was my colleague's stuff).

However my approach strikes me as suboptimal and error-prone (let's say I had just rebased with 2 of my own branches).

Any ideas?

Clarification: I'm talking about a rebase during which a bunch of commits were replayed. Not only one.