@b0rk I tend to do a lot of "git branch -f" because I work with submodules which leads to not having a branch checked out.
If you do have a branch checked out, then I feel like moving it would involve some combination of branch -f + checkout, which would probably be a lot safer and more intuitive than git reset, come to think of it..
I guess you'd do something like
git checkout [flags] commit && git branch -f branch commit && git checkout branch