間違って作っちゃったリモートのタグやブランチを削除する方法

jewelerでrake git:release すると、

$ rake git:release
(in /Users/takeshi/workspace/warekky)
Tagging v0.1.1
Pushing v0.1.1 to origin

という風にvで始まるバージョンが付けられてしまう。vで始まるのはやだー!っていうわけで作られたタグを

$ git tag -d v0.1.1

で消すことはできるんだけど、これを git push --tags とかやっても既にpushされたoriginのv0.1.1は消されない。困ってググったらトップに書いてあった。

Deleting a remote branch or tag

This command is a bit arcane at first glance… git push REMOTENAME :BRANCHNAME. If you look at the advanced push syntax above it should make a bit more sense. You are literally telling git “push nothing into BRANCHNAME on REMOTENAME”.

ということなので、

$ git push origin :v0.1.1
To git@github.com:akm/warekky.git
 - [deleted]         v0.1.1

で、めでたしめでたし。