ある日、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したら、プルリクも復活した。
めでたしめでたし。