"Miles Bader" [off-list ref] writes:
Maybe I"m weird, but I tend to think of the refs/... syntax as being
for "only if you're doing something funny" cases.
The "refs/" syntax is there as the lowest level that is
universally usable to create and any ref. It can be used to
push to branches, tags, or even remotes (aka "simulated fetch in
reverse").
It is just nobody felt strong enough reason to sugarcoat the
normalized syntax with something like:
git push --create remote foo v1.2.0
You can be a hero by updating git-push to take such, and make it
interpret as if the user passed the normalized syntax which is:
git push remote foo:refs/heads/foo v1.2.0:refs/tags/v1.2.0