Daniel Barkalow [off-list ref] writes:
In fact, if you expect to be pushing to a non-bare repository, you
probably want to have HEAD contain the actual commit currently checked
out (instead of a reference to externally mutable storage), which you
can do with "git checkout refs/heads/master".
"git checkout master^0" is shorter ;-)
For people who do not follow the git list regularly, a "HEAD contain the
actual commit" is often called "detached".