ある日、hoge1ブランチにhoge2ブランチを取り込もうとして、pull requestを出したんだ。
その後、mergeされて不要になったブランチを消すコマンドを実行したんだ。
このとき、hoge1ブランチはまだどのブランチも取り込んでいない処女だった。
だからかどうか知らないけど、事件は起こった。
hoge1は、まだどのブランチとも関係を持っていないが故に、hoge1さんは消えてしまったのだ。
以下、その痛々しい瑕痕である。
$ git fetch
$ git remote show origin
* remote origin
Fetch URL: git@github.com:shigemk2/Hello-World.git
Push URL: git@github.com:shigemk2/Hello-World.git
HEAD branch (remote HEAD is ambiguous, may be one of the following):
hoge1
master
Remote branches:
hoge1 tracked
hoge2 tracked
master tracked
Local branches configured for 'git pull':
hoge1 merges with remote master
hoge2 merges with remote master
master merges with remote master
Local refs configured for 'git push':
hoge1 pushes to hoge1 (up to date)
hoge2 pushes to hoge2 (up to date)
master pushes to master (up to date)
$ git remote prune origin
$ for i in `git branch -r --merged origin/master | fgrep -v origin/master | sed -e "s@^ origin/@@g"`; do git push origin :$i; done
To git@github.com:shigemk2/Hello-World.git
- [deleted] hoge1
$ git remote show origin
* remote origin
Fetch URL: git@github.com:shigemk2/Hello-World.git
Push URL: git@github.com:shigemk2/Hello-World.git
HEAD branch: master
Remote branches:
hoge2 tracked
master tracked
Local branches configured for 'git pull':
hoge1 merges with remote master
hoge2 merges with remote master
master merges with remote master
Local refs configured for 'git push':
hoge2 pushes to hoge2 (up to date)
master pushes to master (up to date)ね、hoge1ブランチが消えちゃったでしょ?
消えただけならまだいいけど、hoge2→hoge1のブランチも、自動的にcloseしてしまっていた。

勝手にcloseされたプルリク、reopenすら出来ない状況…
しょうがないので、hoge1さんをもう一度リモートにpushしたら、プルリクも復活した。
めでたしめでたし。