Jonathan Nieder [off-list ref] writes:
git branch -M master
This seems like a valuable exception to allow, because then "git
branch -M foo" would _always_ be allowed --- either 'foo' is not the
current branch, and it does the obvious thing, or 'foo' is the current
branch, and nothing happens.
Buildbot uses this idiom and was broken in 1.7.7 (it would emit the
message "Cannot force update the current branch").
Although I am not sure the practice deserves to be called "idiom", I agree
that there is no reason to forbid renaming the current branch to the tip
commit of itself.
Will queue.