git でリモートブランチを削除してしまう間違った push

実際にやってしまったミス。

git push のフォーマットは

$ git push <送信先リポジトリ> <ローカルブランチ>:<リモートブランチ>

なので、ローカルブランチが (no branch) の場合、してしなくても良いのだと思い

$ git push origin :foo

などと入力したところ

To git://172.26.xxx.xxx/xxx.git
 - [deleted]         foo

というメッセージが表示された。


後でわかったことだが、ローカルブランチを書かずに push すると、それはリモートブランチを削除する意味だったのだ。

削除してしまったリモートブランチはもうそのリモートブランチ上で作業ができないので、コミットなどと違い取り消すことができず、結局ブランチを作りなおして復旧した。

みなさん、お気を付けください。